Skip to content

Conversation

Tristan-Wilson
Copy link
Member

This change enables the go-ethereum signer library to accept and validate both Version 0 (legacy) and Version 1 (cell proof) blob transaction sidecars, which is necessary for the Fusaka/Osaka hardfork that introduces PeerDAS (Peer Data Availability Sampling).

Changes to signer/core/apitypes/types.go:

The validateTxSidecar() function now accepts two proof formats:

  • Version 0: 1 proof per blob (existing format, pre-Fusaka)
  • Version 1: 128 cell proofs per blob (new Fusaka format)

The validation logic detects which version by checking the proof count:

  • If len(proofs) == len(blobs): Use VerifyBlobProof for each blob
  • If len(proofs) == len(blobs) * 128: Use VerifyCellProofs for all blobs

When converting SendTxArgs to a Transaction, the correct sidecar version is automatically selected based on the number of proofs provided.

Added TestBlobTxsWithCellProofs to verify:

  • Cell proof generation produces exactly 128 proofs per blob
  • SendTxArgs correctly accepts 128 cell proofs per blob
  • ToTransaction() creates a Version 1 sidecar when given cell proofs
  • The resulting transaction properly serializes with cell proofs

This change enables the go-ethereum signer library to accept and validate
both Version 0 (legacy) and Version 1 (cell proof) blob transaction sidecars,
which is necessary for the Fusaka/Osaka hardfork that introduces PeerDAS
(Peer Data Availability Sampling).

Changes to signer/core/apitypes/types.go:

The validateTxSidecar() function now accepts two proof formats:
- Version 0: 1 proof per blob (existing format, pre-Fusaka)
- Version 1: 128 cell proofs per blob (new Fusaka format)

The validation logic detects which version by checking the proof count:
- If len(proofs) == len(blobs): Use VerifyBlobProof for each blob
- If len(proofs) == len(blobs) * 128: Use VerifyCellProofs for all blobs

When converting SendTxArgs to a Transaction, the correct sidecar version
is automatically selected based on the number of proofs provided.

Added TestBlobTxsWithCellProofs to verify:
- Cell proof generation produces exactly 128 proofs per blob
- SendTxArgs correctly accepts 128 cell proofs per blob
- ToTransaction() creates a Version 1 sidecar when given cell proofs
- The resulting transaction properly serializes with cell proofs
@cla-bot cla-bot bot added the s CLA signed label Oct 14, 2025
@amsanghi amsanghi assigned eljobe and unassigned amsanghi Oct 14, 2025
@eljobe eljobe enabled auto-merge October 14, 2025 10:40
@eljobe eljobe changed the title Support cell proofs (Version 1 blob sidecars) in signer library core: Support cell proofs (Version 1 blob sidecars) in signer library Oct 14, 2025
@eljobe eljobe merged commit 908d07e into master Oct 14, 2025
17 of 19 checks passed
@eljobe eljobe deleted the cell-proof-validation branch October 14, 2025 11:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants