A reader SHOULD NOT read more than max_encoded_len(n) bytes after reading the SSZ length prefix n from the header.
A reader SHOULD consider the following cases [...] as invalid input ... and "In case of an invalid input, a reader MUST" respond with nothing or InvalidRequest as appropriate.
All messages that contain only a single field MUST be encoded directly as the type of that field and MUST NOT be encoded as an SSZ container.
Clients MUST keep a record of signed blocks seen since the since the start of the weak subjectivity period and MUST support serving requests of blocks up to their own head_block_root.
The response MUST contain no more than count blocks.
Clients MUST respond with blocks from their view of the current fork choice. In particular, blocks from slots before the finalization MUST lead to the finalized block reported in the Status handshake.
ENRs MUST carry a generic eth2 key with an 16-byte value of the node's current fork digest, next fork version, and next fork epoch to ensure connections are made with peers on the intended eth2 network. (Details in link)
Clients SHOULD connect to peers with fork_digest, next_fork_version, and next_fork_epoch that match local values.
Clients MAY connect to peers with the same fork_digest but a different next_fork_version/next_fork_epoch. Unless ENRForkID is manually updated to matching prior to the earlier next_fork_epoch of the two clients, these connecting clients will be unable to successfully interact starting at the earlier next_fork_epoch.
The text was updated successfully, but these errors were encountered:
Noise (https://github.com/ethereum/eth2.0-specs/blob/v0.11.1/specs/phase0/p2p-interface.md#mainnet-1):
The Libp2p-noise secure channel handshake with
secp256k1
identities will be used for mainnet.clients MUST support the XX handshake pattern
Snappy support (https://github.com/ethereum/eth2.0-specs/blob/v0.11.1/specs/phase0/p2p-interface.md#ssz-encoding-strategy-with-or-without-snappy):
SSZ en/decoding (https://github.com/ethereum/eth2.0-specs/blob/v0.11.1/specs/phase0/p2p-interface.md#ssz-encoding-strategy-with-or-without-snappy):
A reader SHOULD NOT read more than max_encoded_len(n) bytes after reading the SSZ length prefix n from the header.
A reader SHOULD consider the following cases [...] as invalid input ... and "In case of an invalid input, a reader MUST" respond with nothing or
InvalidRequest
as appropriate.All messages that contain only a single field MUST be encoded directly as the type of that field and MUST NOT be encoded as an SSZ container.
BeaconBlocksByRange
(https://github.com/ethereum/eth2.0-specs/blob/v0.11.1/specs/phase0/p2p-interface.md#beaconblocksbyrange):Clients MUST keep a record of signed blocks seen since the since the start of the weak subjectivity period and MUST support serving requests of blocks up to their own head_block_root.
The response MUST contain no more than
count
blocks.Clients MUST respond with blocks from their view of the current fork choice. In particular, blocks from slots before the finalization MUST lead to the finalized block reported in the
Status
handshake.Ping
(https://github.com/ethereum/eth2.0-specs/blob/v0.11.1/specs/phase0/p2p-interface.md#ping):If the peer does not respond to the
Ping
request, the client MAY disconnect from the peer.The request MUST be encoded as an SSZ-field.
The response MUST consist of a single
response_chunk
.GetMetaData
(https://github.com/ethereum/eth2.0-specs/blob/v0.11.1/specs/phase0/p2p-interface.md#metadata and https://github.com/ethereum/eth2.0-specs/blob/v0.11.1/specs/phase0/p2p-interface.md#getmetadata):Clients MUST locally store the [details in first link]
MetaData
Once established the receiving peer responds with it's local most up-to-date MetaData. The response MUST be encoded as an SSZ-container.
The response MUST consist of a single
response_chunk
.ENR (https://github.com/ethereum/eth2.0-specs/blob/v0.11.1/specs/phase0/p2p-interface.md#eth2-field):
ENRs MUST carry a generic eth2 key with an 16-byte value of the node's current fork digest, next fork version, and next fork epoch to ensure connections are made with peers on the intended eth2 network. (Details in link)
Clients SHOULD connect to peers with
fork_digest
,next_fork_version
, andnext_fork_epoch
that match local values.Clients MAY connect to peers with the same
fork_digest
but a differentnext_fork_version
/next_fork_epoch
. UnlessENRForkID
is manually updated to matching prior to the earliernext_fork_epoch
of the two clients, these connecting clients will be unable to successfully interact starting at the earliernext_fork_epoch
.The text was updated successfully, but these errors were encountered: