ssvlabs / ssv-spec

GNU General Public License v3.0
25 stars 21 forks source link

Fork Wishlist #368

Open GalRogozinski opened 3 months ago

GalRogozinski commented 3 months ago

Description

This issue keeps track for changes devs and community would like to be seen included in a fork.

olegshmuelov commented 3 months ago

Suggestion for ConsensusData and Duty Struct Changes

I'd like to suggest some changes to the ConsensusData and Duty structs to improve efficiency and reduce unnecessary data broadcast over the network.

Current ConsensusData struct:

type ConsensusData struct {
    Duty    Duty
    Version spec.DataVersion
    PreConsensusJustifications []*SignedPartialSignatureMessage `ssz-max:"13"`
    DataSSZ []byte `ssz-max:"4194304"`
}

Proposed Changes:

  1. Split Duty Struct into Specific Duty Types: The current Duty struct is a one-size-fits-all solution that includes fields irrelevant to specific duty types (attest, propose, sync committee contributions). I propose splitting this into separate structs for each duty type, which would allow us to only include relevant fields for each specific duty. This could lead to a reduction in unnecessary data being transmitted and processed.

Edit: Both Version and Duty fields can be omitted. They can be retrieved without consensus data...

GalRogozinski commented 3 months ago

373

GalRogozinski commented 3 months ago

Use SSZ encoding for SignedSSVMessage

GalRogozinski commented 1 month ago

SignerID should be taken out of PartialSignatureMessage MessageID should have the same field types for all runners

GalRogozinski commented 1 month ago

Currently we send fullData in proposal justification (RC messages). This just takes up needless space.