μBlob
μBlob is an efficient market platform optimizing Ethereum blob data storage by merging small data pieces (μBlobs) into DA Blobs.
Screenshots




Problem Statement
This platform enables anyone to submit μBlobs to a public auction in order to fill DA Blobs. The goal is to propose a new innovative infrastructure to maximize blobspace efficiency and enable a thousand rollup future and democratize DA access for NFT, and gaming projects!An example flow:Project wants to use Ethereum blob as a DA, and requires only 10kb of dataProject sends ETH to uBlob smart contract to gain credit points (0xdfBA2a12477B8AE3Ad99C98B7D902EA63C09D247 on holesky)Project creates a μBlob by submitting data, signature of the data with the credited wallet and a wei_per_gas_feeAn auction based on the wei_per_gas_fee is in progress until the platform can create a Blob and submit it on Ethereum DAOnce blob is submitted, anyone can check the composition of the submitted blob (which μBlobs, in which order are in the Blob). All the senders of the successful μBlobs credits are reduced by μBlob_size * wei_per_gas_fee. If sender does not have enough credit, its μBlob was not included in the Blob. If Blob submission fails, the Blob tx is updated until it is included by the Ethereum network.Project contract, apis and frontend are deployed on Holesky testnet on https://ublob.netSubmitted Blob data format detail:a Blob is made of a list of μBlobs put one after the other with the following format:header + μBlob datawhere:header is `` size + signature` where size is uint32 (4 bytes) and signature (65 bytes)```` μBlob data` is the content of the μBlobNext improvements:Support multiple DA engine (Ethereum mainnet, Celestia, Avail etc.) and propose μBlob creators to select their DA target(s). Each DA would have its own independent μBlob auction.Decentralize the project by creating a network of validators performing the auctions in a permissionless manner (with shared mempool of μBlob and consensus on auction and verification of blob submissions)Allow crediting in ERC20.Deploy to mainnet.
Solution
μBlob is made of several components:Golang backend made of 2 servicesexposing a REST API to handle μBlobs CRUD operationsmanaging the μBlobs auctioncrafting the Blob by merging μBlobsmanaging the Blobs submissions, or submission updates if necessaryindexing the crediting operations made to the credit contract for accountingA react ts frontend available at https://ublob.net:displays the current auction state, with live animations to render bidding updates and creationsdisplays the list of submitted blobs and their completiondisplays the blobs datadisplays the blobs' μBlobs with easy to use widgetsAn orchestrator service, creating many random μBlobs to simulate activity on testnetA credit Solidity smart contract, that emits Crediting event when receiving ETH and forwards the ETH value to the project address.Documentation on the project README.md
Hackathon
ETHGlobal London
2024
Prizes
- 🏆
Pool Prize
Chiliz
- 🏆
Qualifying Arbitrum Submissions
Arbitrum
- 🏆
🏆 ETHGlobal London Finalist
ETHGlobal
Contributors
- LeTamanoir
17 contributions
- gauthiermyr
8 contributions
- loicttn
7 contributions
- Pierregvx
2 contributions