Skip to content

Msg Validation Rules for the Gloas Fork (SIP-94) - #4

Open
iurii-ssv wants to merge 1 commit into
mainfrom
gloas-msg-validation
Open

iurii-ssv wants to merge 1 commit into
mainfrom
gloas-msg-validation

Conversation

@iurii-ssv

Copy link
Copy Markdown

Overview

This PR adds the message validation rules for the Gloas fork (ePBS), per SIP-94 §7, as a new section of Rules.md. Every existing rule keeps applying. Each row in the new section is marked as new, or as modifying an existing rule.

  • New roles: RolePTCAttester (7), with PTCAttesterPartialSig, and RoleProposerPreferences (8), with ProposerPreferencesPartialSig and RequestAuthPartialSig. Both are validator-scoped, and consensus messages are rejected for both.
  • Fork gates:
    • PTC and proposer-preferences messages are rejected at pre-fork slots;
    • validator registrations are rejected at Gloas slots;
    • validator registrations are ignored at any slot once the wall-clock epoch is past the fork.
  • Entry limits: a validator-role packet carries one entry, except 1–8 for RequestAuthPartialSig and up to 2 for the proposer's post-consensus packet at Gloas slots (the block root and the execution-payload envelope root). Every entry carries the same validator index.
  • Proposer preferences:
    • exempt from the slot-advance rule;
    • accepted from the start of epoch epoch(slot) - MIN_SEED_LOOKAHEAD until 2 slots after the proposal slot;
    • budgeted per signer and slot at 4 distinct preference roots and 8 distinct request-auth roots. A repeated root, or one over budget, is ignored rather than rejected.
  • PTC attestation: one partial per slot, a 3-slot lateness TTL, and 2 duties per epoch.
  • Duty-assignment checks for both roles, tolerating a not-yet-fetched or stale duty view, plus state retention for the whole acceptance window.

The rules match the node implementation in ssvlabs/ssv#2901. This follows up on the SIP-94 thread.

Notes

Adds a Gloas (ePBS) section to Rules.md with the rules SIP-94 §7 adds or modifies:
the PTC attestation and proposer-preferences roles, the fork gates, per-packet
entry limits (including the proposer's two-entry post-consensus packet at Gloas
slots), the distinct signing-root budgets, the proposer-preferences time window,
duty-assignment checks with their not-yet-fetched and stale-view tolerance, and
state retention. Existing rules are unchanged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant