Skip to content

feat(starfish): track unknown headers per connection only for peers that ask for them #12681

Description

@polinikita

Part of #12679.

Every accepted header is recorded as unknown in the per-connection state of all other peers, and every accepted shard likewise, even though a connection is only ever read for the authors that peer has advertised. That is one copy of each reference per peer, plus a fan-out from the cordial knowledge task to every connection per header, both growing with the committee size. In a healthy network almost none of that state is ever taken.

Key points:

  • Headers first; shards keep today's layout, they would need their own index
  • A connection should hold entries only for the authors that peer currently advertises, seeded when the advertisement arrives so a peer that starts asking still receives the retained chain
  • A header already sent to a peer must not be offered again after a later advertisement
  • What an advertising peer receives must not change; the existing bundle-content tests should still hold
  • The steady-state size should be visible in the existing cordial knowledge gauges

Metadata

Metadata

Assignees

Labels

consensusIssues related to the Core Consensus team

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions