Show HN: Epochnbd – Crash-Consistent Linux NBD Block Device on GCS/Google Drive A developer released epochnbd, an experimental pure-Go Linux Network Block Device engine that exposes a raw block device backed by Google Cloud Storage, Google Drive, or a local directory, with a CRC32-verified write-ahead log and atomic compare-and-swap epoch checkpoints. The project, built with Gemini Argon and published as a Show HN post, uses 512 KiB chunks on GCS and local storage and 4 MiB chunks on Google Drive, and advances its manifest.json only after every dirty chunk in an epoch uploads successfully via GCS ifGenerationMatch preconditions. The author labels epochnbd a personal hobby project provided "AS IS" without warranty, warning of data loss, corruption, and cloud billing risks and urging independent backups. Caution Disclaimer — Experimental Hobby Project Use at Your Own Risk epochnbd is a personal hobby project developed with Gemini Argon . It is provided "AS IS" without warranty of any kind. Storage engines and kernel block devices carry inherent risks of bugs, corruption, or cloud billing surprises. Use this software entirely at your own risk —always maintain independent backups of important data. The author assumes no responsibility or liability for any data loss, corruption, system instability, or other damages resulting from its use. epochnbd is a pure-Go CGO ENABLED=0 Linux Network Block Device NBD engine that exposes a true POSIX raw block device /dev/nbdX or TCP NBD export backed by Google Cloud Storage gs:// , Google Drive gdrive:// , or a local directory file:// , with local sparse caching, a CRC32-verified Write-Ahead Log WAL , and atomic Compare-And-Swap CAS epoch checkpoints. Unlike FUSE object-storage mounts gcsfuse , s3fs , epochnbd operates strictly at the raw block layer : - Full POSIX & Database Compatibility: Supports mmap , flock / fcntl locks, fsync flush barriers, SQLite in WAL mode, Git repositories, and standard Linux filesystems ext4 , xfs , btrfs . - Bring Your Own Encryption Zero-Knowledge Cloud Storage : Stack standard Linux LUKS2 dm-crypt , VeraCrypt, or any block/filesystem encryption on top of /dev/nbd0 —or run unencrypted when desired. When encrypted at the block layer, cloud storage only ever sees opaque fixed-size ciphertext chunks 512 KiB default on GCS/LocalFS, 4 MiB default on Google Drive . - Zero Torn Cloud Checkpoints: Dirty chunks are uploaded to immutable, epoch-tagged objects chunks/000042 e7.bin , and manifest.json advances atomically via GCS generation preconditions ifGenerationMatch only after every dirty chunk in the epoch succeeds. Application / SQLite / Git │ ▼ Filesystem ext4 / xfs / btrfs ┐ │ │ Optional user-space / kernel stack Encryption LUKS2 / VeraCrypt / none ┘ Managed automatically if --mount-dir is set │ ▼ Linux Kernel /dev/nbd0 │ NBD CMD READ / WRITE / FLUSH / DISC ▼ ┌─────────────────────────────────────────────────────────────┐ │ epochnbd Daemon │ │ │ │ ┌─────────────────────┐ ┌──────────────────────────┐ │ │ │ Sparse cache.img │◄────►│ CRC32 Write-Ahead Log │ │ │ │ + Presence/Dirty │ │ wal.log + fsync │ │ │ │ Chunk Bitmaps │ └──────────────────────────┘ │ │ └──────────┬──────────┘ │ │ │ │ Debounced Compactor │ cloud-strict │ │ ▼ ▼ │ │ ┌───────────────────────────────────────────────────────┐ │ │ │ StorageBackend: GCS / Google Drive / LocalFS │ │ │ └───────────────────────────────────────────────────────┘ │ └─────────────────────────────┬───────────────────────────────┘ │ ▼ Cloud Bucket / Drive Folder e.g. gs://my-bucket/vault or gdrive://root/vault ├── manifest.json Atomic CAS pointer + single-writer lease ├── chunks/000000 e1.bin Immutable 512 KiB blocks per epoch ├── chunks/000003 e2.bin └── wal/seq 00000012.seg Optional cloud-strict WAL segments