Skip to content

Header store and sync

Closed Nov 21, 2023 100% complete

Requirements Summary:

  • P2P Protocols
    • Exchange server
      • Serves header requests from the store analog to the go implementation
    • Exchange client
      • Takes requests from the syncer and over an external API to retrieve headers to be put in store.
        • Requests from trusted peers
        • Head, Get, GetByHeight, GetVerifiedRange request types to be implemented
    • HeaderSub
      • S…

Requirements Summary:

  • P2P Protocols
    • Exchange server
      • Serves header requests from the store analog to the go implementation
    • Exchange client
      • Takes requests from the syncer and over an external API to retrieve headers to be put in store.
        • Requests from trusted peers
        • Head, Get, GetByHeight, GetVerifiedRange request types to be implemented
    • HeaderSub
      • Subscribes to new headers from the network
      • Verifies them against latest subjective head in the store
        • If successful, sets subjective head in store to the new network head and re-broadcasts further
  • Store
    • Key-Value store from hash → header that is used by the other services
    • Index of height → hash
    • Accessible over an interface for external usage
  • Syncer
    • Routine for header sync
      • Starts syncing from head of the store to the subjective head
      • Sync target updated continuously from headersub

Stretch Goals:

  • Not relying on trusted peers for all requests (implementation of a peer tracker)
  • Dividing range requests among multiple peers (implementation of session)

Success Criteria:

A success can be shown given a usage example where a user initializes and starts the Syncer (passing in the trusted peers and network id), which can catch up to the network head on the Arabica testnet and stay synced with incoming headers. Upon restart, it must continue where it left off.

This milestone is closed.

No open issues remain. View closed issues or see open milestones in this repository.