A quick hack to understand and use EigenDA. Application mimics radio station. Users can subscribe to certain channels to listen for new messages. Anyone can send a message to a particular channel to alert all listeners of the channel.
eigenda-proto
contains autogenerated clients to interact with the EigenDA disperser.
dawave
contains the CLI application.
Currently hard-coded to Holesky testnet.
For mainnet, replace the disperser url and contract address.
Can install as an executable via cargo install --path .
or just run it using cargo
.
# to listen to a particular channel
# NODE_URL is a websocket endpoint, i.e. wss://eth-holesky.public.blastapi.io
cargo run --release -- listen <NODE_URL> <CHANNEL_NAME>
# to send a message to a particular channel
cargo run --release -- send-message <CHANNEL_NAME> <MESSAGE>
# or if you installed the executable
dawave listen <NODE_URL> <CHANNEL_NAME>
# to send a message to a particular channel
dawave send-message <CHANNEL_NAME> <MESSAGE>
- proto files obtained from here.
- Disperser registers blobs approx once every 3 mins.
- No real way to get all blobs outside of listening to new events on the contract and attempting to retrieve all blob indices starting from 1, 2, ... until an error.
Maybe a
GetBlobCount
method or something might be useful. - Seeing some latency between seeing the event emitted and being able to retrieve blobs.