refactor(types): rename TypeOneMultiSignature to SingleMessageAggregate#481
Conversation
Mirrors leanSpec PR #799, which renamed the multi-signature container
types to describe what they bind rather than the lean-multisig prover
convention. ethlambda already renamed TypeTwoMultiSignature ->
MultiMessageAggregate, so this completes the pair:
TypeOneMultiSignature -> SingleMessageAggregate
Variables, the SSZ round-trip test name, and prose mentions of the
container follow the rename. The ethlambda-crypto wrapper functions
(merge_type_1s_into_type_2, verify_type_2_signature,
split_type_2_by_message) and the lean-multisig binding names are left
unchanged, paralleling #799's decision to keep the prover binding names.
The SingleMessageAggregate / MultiMessageAggregate docs note the
type-1 / type-2 aliases so the older terminology stays discoverable.
No wire-format or behavior change: SingleMessageAggregate is the same
{ participants, proof } SSZ container under a new name.
🤖 Kimi Code ReviewThis is a straightforward, high-quality refactoring PR that improves readability by replacing the opaque "Type-1 / Type-2" nomenclature with descriptive Summary of changes:
Verification:
Minor note: LGTM – No blockers. Automated review by Kimi (Moonshot AI) · kimi-k2.5 · custom prompt |
🤖 Codex Code ReviewNo functional findings. I traced the rename through the consensus-critical paths ( Residual risk is limited to build/test validation rather than logic: I could not run cargo tests in this environment because Cargo/Rustup wants a writable dependency cache and the git dependency fetch path is blocked by the sandboxed filesystem. The targeted commands failed before compilation for that reason. If this crate has out-of-tree consumers, one thing to double-check is whether the public type rename at crates/common/types/src/block.rs needs a compatibility alias or release-note callout. Automated review by OpenAI Codex · gpt-5.4 · custom prompt |
Greptile SummaryThis PR renames the single-message aggregate proof type across the workspace. The main changes are:
Confidence Score: 5/5This looks safe to merge.
|
| Filename | Overview |
|---|---|
| crates/common/types/src/block.rs | Renamed the proof container while keeping the same field layout, derives, and helper methods. |
| crates/common/types/src/attestation.rs | Updated aggregated attestations to use the renamed proof type. |
| crates/blockchain/src/aggregation.rs | Updated aggregation job and proof-selection types to the new name. |
| crates/blockchain/src/block_builder.rs | Updated block-building proof selection, compaction, and tests to the renamed type. |
| crates/blockchain/src/lib.rs | Updated block prebuild and merge-input naming around single-message aggregates. |
| crates/blockchain/src/reaggregate.rs | Updated split-and-merge reaggregation flow to use the renamed proof container. |
| crates/blockchain/src/store.rs | Updated block production signatures and verification prose for the new aggregate terminology. |
| crates/storage/src/store.rs | Updated payload buffer storage APIs to carry the renamed aggregate type. |
| crates/blockchain/tests/forkchoice_spectests.rs | Updated fork-choice spectest helper proof construction to the new type name. |
| crates/net/rpc/src/test_driver.rs | Updated RPC fork-choice test-driver aggregated attestation construction. |
Reviews (1): Last reviewed commit: "refactor(types): rename TypeOneMultiSign..." | Re-trigger Greptile
🤖 Claude Code ReviewAll eight angles returned clean, and the single in-scope conventions candidate was REFUTED. Here is the review: Review:
|
Summary
Mirrors leanSpec PR #799, which renamed the multi-signature container types to express what they bind rather than the lean-multisig prover convention (
type-1/type-2).ethlambda had already renamed
TypeTwoMultiSignature→MultiMessageAggregatein an earlier change, so this completes the pair:TypeOneMultiSignatureSingleMessageAggregateWhat changed
TypeOneMultiSignature→SingleMessageAggregateand all ~90 references across the workspace.type_one_proofs→single_message_aggregates,block_t1→block_single_message_aggregate), the SSZ round-trip test name, log messages, and doc/prose mentions of the container.SingleMessageAggregateandMultiMessageAggregatethat they are also known as type-1 / type-2 proofs, so the older lean-multisig terminology stays discoverable.What was intentionally left unchanged
Paralleling #799's decision to keep the prover binding names, the
ethlambda-cryptowrapper functions and their docs keep thetype_1/type_2terminology, since they wrap the lean-multisig primitives directly:merge_type_1s_into_type_2,verify_type_2_signature,split_type_2_by_messagedecompress_type1,compress_type1_to_byte_list,compress_type2_to_byte_listLMType1/LMType2aliases and theType2ComponentCountMismatcherror variantNotes
SingleMessageAggregateis the same{ participants, proof }SSZ container under a new name;hash_tree_rootand on-wire encoding are unaffected.Test plan
make fmtmake lint(clippy-D warnings) cleancargo test --workspace --release— all green (30 suites, 0 failures)forkchoice_spectests— 116 passed