| # Blobfs: A content-addressable filesystem for Fuchsia | 
 |  | 
 | Blobfs is a filesystem for Fuchsia that stores all files according to their hashes. This is used for | 
 | all binaries and other program-related data for Fuchsia. It is not used for storing dynamic data and | 
 | it has no hierarchy ([minfs](/docs/concepts/filesystems/minfs.md) handles this case). | 
 |  | 
 | The structure of blobfs is described in the [main | 
 | documentation](/docs/concepts/filesystems/blobfs.md). This page documents some internal details. | 
 |  | 
 | ## Version notes | 
 |  | 
 | Blobfs follows the [storage versioning scheme](/src/storage/docs/versioning.md). However, there | 
 | were some versions before this was adopted that do not follow this scheme. | 
 |  | 
 | In major version 8, blobfs used "padded" Merkle trees. In this format, the Merkle tree was padded out | 
 | to the nearest block boundary and immediately preceeded the blob data on the block device. | 
 |  | 
 | In major version 9, blobfs switched to "compact" Merkle trees where the Merkle tree data immediately | 
 | follows the blob data and neither the offset nor the size is block-padded. This saves space. This | 
 | change was made when the minor version was treated as a monotonically increasing "revision" and | 
 | was not reset. As of this writing the format is controlled by a build flag so some builds will have | 
 | major version 8, while others will have major version 9. | 
 |  | 
 | Across versions 8 and 9 are the following minor versions: | 
 |  | 
 |   * 8.1, 9.1: The initial minor version. | 
 |   * 8.2, 9.2: Introduced a backup superblock when running under FVM. | 
 |   * 8.3, 9.3: Removed support for ZSTD seekable compression. |