Intro tweet thread: Tweet
Blobster is a blazing fast and cheap long term Ethereum Blob storage solution.
Currently, the system can be used locally with the Reth development settings and comes with a Consensus Layer client to send simulated blobs to the node. We will move to using Holesky once the node is done syncing (soon!).
The motivation behind creating a network to offer longer term storage solutions to blob storage is to build support and tooling to support the underexplored world of blobs and to test out Danksharding techniques in a real world setting. We think by taking advantage of the KZG commitment nature of blobs, we can streamline a SNARK proving system for storage nodes. Also taking advantage of erasure encoding and some mixing techniques, we believe we can achieve lower storage requirements than replication while still maintaining significant economic security. These ideas are a WIP and may change or be proven incorrect, however we think we have enough of a base to field outside opinions.
We run an Reth Node w/ an ExEx that detects blobs, queries the consensus layer, erasure encodes the blobs and stores them in a series of storage nodes erasure encoding for cheap and efficient long term storage of blobs.
Curious about blobs? Check this guide by Ethereum and the EIP-4844 website.
blobster-.2.mp4
- Clone the Repo
git clone https://github.com/align_network/blobster
- Run Reth and the ExEx
cargo run --bin exex --release -- node --dev
- Run the Mock Consensus Layer
Ensure you have libsql installed
sudo apt-get install libsqlite3-dev
cargo run --bin mock-cl --release
- Send 10 Random data blobs
cargo run --bin update_blocks --release
Storage Nodes are currently setup to have a max of 3
- Run a Storage node
cargo run --release --bin storage-node -- --node-id=1 --storage-dir=storage/node1
Currently the system can be run locally, and we are working to supporting bringing the system live on Holesky after we complete the following steps.
High level goals: