-
Notifications
You must be signed in to change notification settings - Fork 774
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for EIP-4844 Shard Blob Transaction #1742
Comments
Could you share a couple test vectors? I could work on a branch that does that, just would like to ensure I get the serialization right. I like the idea of using ssz-rs. |
Please find a sample JSON file with test vectors here: eip4844_test_vectors_sample_1.json The code to generate the sample is also available here: test-vectors To generate new test vectors you can: go test Discord: https://discord.com/channels/595666850260713488/595701195843174434/1024344939959697498 |
Sweet. Will give a shot by this weekend. |
Dived into this, rough notes below. The biggest thing we're missing is a Rust function for Generating a proof will mean we need to also have the KZG G1 trusted setup parameters loaded. Presumably these would be loaded via the Provider/SignerMiddleware, and we could consider distributing them with the library as an optional feature. ethers-rs / eip4844 changes
Misc:
|
We might be able to use this library for the proof / commitments gen https://github.com/crate-crypto/proto-danksharding-crypto/tree/master/crypto |
For ssz seralize, lighthouse's internal ssz crate is worth looking into as it's battle tested and used on mainnet. |
Flagging @asn-d6's library too https://github.com/asn-d6/blobbers |
Any update on this? With 4844 approaching this seems like something that would be helpful |
Context
EIP-4844 introduces a new transaction type, using EIP-2718 mechanism.
As @gakonst mentioned:
Originally posted by @gakonst in #1685 (comment)
Feature
Implement a new transaction type in
ethers-rs
to enable developers to use shard blob transactions.According to the EIP specification, the new transaction type encoding is the following:
SSZ encoding
The new transaction is then: a single byte
BLOB_TX_TYPE
(0x05) followed by an SSZ encoding of theSignedBlobTransaction
container.It means that
ethers-rs
needs a way to encode and decode using SSZ format. As far as I know, currently there is no way to use SSZ encoding. We should then think about how we want to add this encoding, some alternatives:Open design questions
External implementations and tooling
There is currently a Devnet v1 running with a Geth fork for the EL and a Prysm fork for the CL.
Geth
For the Geth fork this is the implementation of shard blob transactions: see data_blob_tx.go
blob-utils
blob-utils
is a CLI tool to send and download blobs on the proto-danksharding devnet.The text was updated successfully, but these errors were encountered: