{"id":1365,"date":"2023-07-14T00:27:06","date_gmt":"2023-07-13T23:27:06","guid":{"rendered":"https:\/\/exponentialdecay.co.uk\/blog\/?p=1365"},"modified":"2025-06-26T19:34:59","modified_gmt":"2025-06-26T19:34:59","slug":"signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1","status":"publish","type":"post","link":"https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/","title":{"rendered":"What is the checksum of a directory? Introducing sumfolder1"},"content":{"rendered":"<p>In <a href=\"https:\/\/exponentialdecay.co.uk\/blog\/published-fractal-in-detail-what-information-is-in-a-file-format-identification-report\/\" target=\"_blank\" rel=\"noopener\">Fractal in detail: What information is in a file-format identification report?<\/a> I describe the different ways of dissecting the information in a file-format identification report.<\/p>\n<p>A file-format identification report is a data-rich artifact created during the processing of digital collections.<\/p>\n<p>I had the idea of using this type of report to attach a checksum to an archival collection (files, <em>and<\/em> directories) as a whole. This is done using methods akin to a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Merkle_tree\" target=\"_blank\" rel=\"noopener\">Merkle Tree<\/a>, similar to those in source control systems such as Git, and Web3 Blockchain projects like Bitcoin.<\/p>\n<p>This project is called <a href=\"https:\/\/github.com\/ross-spencer\/sumfolder1\" target=\"_blank\" rel=\"noopener\">sumfolder1<\/a>.<\/p>\n<p><!--more--><\/p>\n<p>sumfolder1 may be useful in proving the integrity of collections of files and helping to assert the existence or non-existence of files (or directory groupings) in a hierarchy of objects.<\/p>\n<p>The approach is purely content based and so collections can be analysed even if file or directory names have been changed. This is one of the benefits of checksums for digital files, but as directories don&#8217;t have any inherent payload, a heuristic must be used to calculate a checksum using a sum of the checksums of a folder&#8217;s contents, or non-contents in the case of empty directories.<\/p>\n<p>It was a fun tool to write, and practically, the tool, or even just the heuristic can be used immediately to provide directory and top-level checksums for collections in archival software. I&#8217;d love to see folks use it, but while it&#8217;s something I am proud to have developed and made available, I&#8217;m not sure the world is calling out for it just yet.<\/p>\n<p>NB. and while the tool uses file-format identification reports, it can also be extended to use the output of tools such as sha256deep, md5sum, and so on.<\/p>\n<p>I have written extensively about the tool in an Open Preservation Foundation (OPF) blog: <a href=\"https:\/\/openpreservation.org\/blogs\/what-is-the-checksum-of-a-directory\/\" target=\"_blank\" rel=\"noopener\">https:\/\/openpreservation.org\/blogs\/what-is-the-checksum-of-a-directory\/<\/a><\/p>\n<p>And the README for the tool is also chocked full with info: <a href=\"https:\/\/github.com\/ross-spencer\/sumfolder1\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/ross-spencer\/sumfolder1<\/a><\/p>\n<p>Let me know if you like the concept or how it goes for you if you give <a href=\"https:\/\/github.com\/ross-spencer\/sumfolder1\" target=\"_blank\" rel=\"noopener\">sumfolder1<\/a> a whirl.<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_1365\" class=\"pvc_stats total_only  \" data-element-id=\"1365\" style=\"\"><i class=\"pvc-stats-icon small\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>In <a href=\"https:\/\/exponentialdecay.co.uk\/blog\/published-fractal-in-detail-what-information-is-in-a-file-format-identification-report\/\" target=\"_blank\" rel=\"noopener\">Fractal in detail: What information is in a file-format identification report?<\/a> I describe the different ways of dissecting the information in a file-format identification report.<\/p>\n<p>A file-format identification report is a data-rich artifact created during the processing of digital collections.<\/p>\n<p>I had the idea of using this type of report to attach a checksum to an archival collection (files, <em>and<\/em> directories) as a whole. This is done using methods akin to a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Merkle_tree\" target=\"_blank\" rel=\"noopener\">Merkle Tree<\/a>, similar to those in source control systems such as Git, and Web3 Blockchain projects like Bitcoin.<\/p>\n<p>This project is called <a href=\"https:\/\/github.com\/ross-spencer\/sumfolder1\" target=\"_blank\" rel=\"noopener\">sumfolder1<\/a>.<\/p>\n<div class=\"link-more\"><a href=\"https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &ldquo;What is the checksum of a directory? Introducing sumfolder1&rdquo;<\/span>&hellip;<\/a><\/div>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_1365\" class=\"pvc_stats total_only  \" data-element-id=\"1365\" style=\"\"><i class=\"pvc-stats-icon small\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":1,"featured_media":1346,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":""},"categories":[86,3,20,19],"tags":[59,370,300,371,147,71,15,369,72,97,218],"class_list":["post-1365","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-archives","category-digital-preservation","category-just-code","category-python","tag-archives","tag-bitcoin","tag-checksums","tag-collection-integrity","tag-digipres","tag-digital-preservation","tag-droid","tag-merkle-tree","tag-python","tag-software-development","tag-web3","entry"],"a3_pvc":{"activated":true,"total_views":55,"today_views":0},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>What is the checksum of a directory? Introducing sumfolder1 - ross spencer :: exponentialdecay.digipres :: blog<\/title>\n<meta name=\"description\" content=\"Introducing sumfolder1. How might we reason about digital collections with directory and collection level checksums?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is the checksum of a directory? Introducing sumfolder1 - ross spencer :: exponentialdecay.digipres :: blog\" \/>\n<meta property=\"og:description\" content=\"Introducing sumfolder1. How might we reason about digital collections with directory and collection level checksums?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/\" \/>\n<meta property=\"og:site_name\" content=\"ross spencer :: exponentialdecay.digipres :: blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-13T23:27:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-26T19:34:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2023\/07\/sumfolder1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"786\" \/>\n\t<meta property=\"og:image:height\" content=\"204\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ross Spencer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@beet_keeper\" \/>\n<meta name=\"twitter:site\" content=\"@beet_keeper\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ross Spencer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\\\/\"},\"author\":{\"name\":\"Ross Spencer\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"headline\":\"What is the checksum of a directory? Introducing sumfolder1\",\"datePublished\":\"2023-07-13T23:27:06+00:00\",\"dateModified\":\"2025-06-26T19:34:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\\\/\"},\"wordCount\":355,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"image\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/sumfolder1.png\",\"keywords\":[\"Archives\",\"Bitcoin\",\"checksums\",\"collection integrity\",\"digipres\",\"Digital Preservation\",\"DROID\",\"Merkle Tree\",\"Python\",\"Software Development\",\"web3\"],\"articleSection\":[\"Archives\",\"Digital Preservation\",\"Just Code\",\"Python\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\\\/\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\\\/\",\"name\":\"What is the checksum of a directory? Introducing sumfolder1 - ross spencer :: exponentialdecay.digipres :: blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/sumfolder1.png\",\"datePublished\":\"2023-07-13T23:27:06+00:00\",\"dateModified\":\"2025-06-26T19:34:59+00:00\",\"description\":\"Introducing sumfolder1. How might we reason about digital collections with directory and collection level checksums?\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\\\/#primaryimage\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/sumfolder1.png\",\"contentUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/sumfolder1.png\",\"width\":786,\"height\":204},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is the checksum of a directory? Introducing sumfolder1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/\",\"name\":\"ross spencer :: exponentialdecay.digipres :: blog\",\"description\":\"Digital preservation analyst, researcher, and software developer\",\"publisher\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\",\"name\":\"Ross Spencer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"contentUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"width\":2560,\"height\":2560,\"caption\":\"Ross Spencer\"},\"logo\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\"},\"description\":\"Digital preservation domain expert and full-stack software developer.\",\"sameAs\":[\"http:\\\/\\\/www.exponentialdecay.co.uk\\\/blog\",\"https:\\\/\\\/www.instagram.com\\\/b33tk33p3r\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/ross-spencer-b6b9b758\\\/\",\"https:\\\/\\\/x.com\\\/beet_keeper\"],\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/author\\\/exponentialdecay\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What is the checksum of a directory? Introducing sumfolder1 - ross spencer :: exponentialdecay.digipres :: blog","description":"Introducing sumfolder1. How might we reason about digital collections with directory and collection level checksums?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/","og_locale":"en_US","og_type":"article","og_title":"What is the checksum of a directory? Introducing sumfolder1 - ross spencer :: exponentialdecay.digipres :: blog","og_description":"Introducing sumfolder1. How might we reason about digital collections with directory and collection level checksums?","og_url":"https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/","og_site_name":"ross spencer :: exponentialdecay.digipres :: blog","article_published_time":"2023-07-13T23:27:06+00:00","article_modified_time":"2025-06-26T19:34:59+00:00","og_image":[{"width":786,"height":204,"url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2023\/07\/sumfolder1.png","type":"image\/png"}],"author":"Ross Spencer","twitter_card":"summary_large_image","twitter_creator":"@beet_keeper","twitter_site":"@beet_keeper","twitter_misc":{"Written by":"Ross Spencer","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/#article","isPartOf":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/"},"author":{"name":"Ross Spencer","@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"headline":"What is the checksum of a directory? Introducing sumfolder1","datePublished":"2023-07-13T23:27:06+00:00","dateModified":"2025-06-26T19:34:59+00:00","mainEntityOfPage":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/"},"wordCount":355,"commentCount":0,"publisher":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"image":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/#primaryimage"},"thumbnailUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2023\/07\/sumfolder1.png","keywords":["Archives","Bitcoin","checksums","collection integrity","digipres","Digital Preservation","DROID","Merkle Tree","Python","Software Development","web3"],"articleSection":["Archives","Digital Preservation","Just Code","Python"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/","url":"https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/","name":"What is the checksum of a directory? Introducing sumfolder1 - ross spencer :: exponentialdecay.digipres :: blog","isPartOf":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/#primaryimage"},"image":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/#primaryimage"},"thumbnailUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2023\/07\/sumfolder1.png","datePublished":"2023-07-13T23:27:06+00:00","dateModified":"2025-06-26T19:34:59+00:00","description":"Introducing sumfolder1. How might we reason about digital collections with directory and collection level checksums?","breadcrumb":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/#primaryimage","url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2023\/07\/sumfolder1.png","contentUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2023\/07\/sumfolder1.png","width":786,"height":204},{"@type":"BreadcrumbList","@id":"https:\/\/exponentialdecay.co.uk\/blog\/signposting-what-is-the-checksum-of-a-directory-introducing-sumfolder1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/exponentialdecay.co.uk\/blog\/"},{"@type":"ListItem","position":2,"name":"What is the checksum of a directory? Introducing sumfolder1"}]},{"@type":"WebSite","@id":"https:\/\/exponentialdecay.co.uk\/blog\/#website","url":"https:\/\/exponentialdecay.co.uk\/blog\/","name":"ross spencer :: exponentialdecay.digipres :: blog","description":"Digital preservation analyst, researcher, and software developer","publisher":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/exponentialdecay.co.uk\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716","name":"Ross Spencer","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","contentUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","width":2560,"height":2560,"caption":"Ross Spencer"},"logo":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png"},"description":"Digital preservation domain expert and full-stack software developer.","sameAs":["http:\/\/www.exponentialdecay.co.uk\/blog","https:\/\/www.instagram.com\/b33tk33p3r\/","https:\/\/www.linkedin.com\/in\/ross-spencer-b6b9b758\/","https:\/\/x.com\/beet_keeper"],"url":"https:\/\/exponentialdecay.co.uk\/blog\/author\/exponentialdecay\/"}]}},"views":1371,"_links":{"self":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1365","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=1365"}],"version-history":[{"count":4,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1365\/revisions"}],"predecessor-version":[{"id":2553,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1365\/revisions\/2553"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/media\/1346"}],"wp:attachment":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=1365"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=1365"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=1365"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}