You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the initial noise handshake the node has a hard limit of 1024 bytes for the message and it soft-bans the peer that exceeds this limit.
This is fine at the moment, but it will stop being fine after enough protocol updates. With each new protocol 32 bytes are added to the handshake to include the extra regenesis hash.
/// Creates a "high-level" handshake request to be sent to new peers.pubfnproduce_handshake_request(&self) -> anyhow::Result<Vec<u8>>{let handshake_request = netmsg!(NetworkRequest,
NetworkRequest::Handshake(Handshake{
remote_id: self.self_peer.id,
remote_port: self.self_peer.port(),
networks: read_or_die!(self.networks()).iter().copied().collect(),
node_version: Version::parse(env!("CARGO_PKG_VERSION"))?,
wire_versions: WIRE_PROTOCOL_VERSIONS.to_vec(),
genesis_blocks: read_or_die!(self.config.regenesis_arc.blocks).clone(),
proof: vec![],
}));letmut serialized = Vec::with_capacity(128);
handshake_request.serialize(&mut serialized)?;Ok(serialized)}
I don't know what the minimum number of protocol updates is that triggers the problem, but after 23 protocol updates the handshake is already too large. It works with 10, and I have not analyzed the sizes in between.
Steps to Reproduce
Start two nodes
Make ? protocol updates (23 is enough, probably a few fewer is enough)
Restart one of the nodes.
Expected Result
The node connects
Actual Result
The node fails with something like
ERROR: [receiving from 127.0.0.1:8000] expected message size (1.4 kiB) exceeds the handshake size limit (1.0 kiB)
Versions
Software Version: <= 6.2
The text was updated successfully, but these errors were encountered:
Bug Description
In the initial noise handshake the node has a hard limit of 1024 bytes for the message and it soft-bans the peer that exceeds this limit.
This is fine at the moment, but it will stop being fine after enough protocol updates. With each new protocol 32 bytes are added to the handshake to include the extra regenesis hash.
I don't know what the minimum number of protocol updates is that triggers the problem, but after 23 protocol updates the handshake is already too large. It works with 10, and I have not analyzed the sizes in between.
Steps to Reproduce
Start two nodes
Make ? protocol updates (23 is enough, probably a few fewer is enough)
Restart one of the nodes.
Expected Result
The node connects
Actual Result
The node fails with something like
Versions
The text was updated successfully, but these errors were encountered: