Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Nakamoto] Block inventory sync network state machine #4062

Closed
jcnelson opened this issue Nov 15, 2023 · 2 comments
Closed

[Nakamoto] Block inventory sync network state machine #4062

jcnelson opened this issue Nov 15, 2023 · 2 comments

Comments

@jcnelson
Copy link
Member

There needs to be a Nakamoto-specific network state machine for synchronizing block inventories. Per the SIP, the inventory bit-vectors exchanged are framed by reward cycle, and there exists a 1-bit in the ith slot in the vector if there was a tenure-change in that sortition, and a 0-bit if not. As before, nodes need to synchronize the entirety of their neighbors' block inventory vectors on boot-up, and then only need to track the last two reward cycles' inventories when out of IBD. Unlike before, there is no need to separately synchronize the PoX bit vector since Nakamoto cannot fork.

@jcnelson jcnelson self-assigned this Nov 15, 2023
@saralab saralab added this to the 0.3-Argon 3.0 milestone Nov 15, 2023
@saralab
Copy link
Contributor

saralab commented Nov 15, 2023

  • Limit the scope of this PR with tenurechange validation logic for easy review and testability
  • N/w state machine and inventory logic is self contained

Task 1: Calculate local inventory vector , needs caching strategy like today - S
Task 1.1: Bit vector Synchronization
Task 1.2: Tenurechanges

Task 2: Create message types and validation - S
Task 3: make the state machine - M

@saralab saralab closed this as completed Feb 5, 2024
@jcnelson jcnelson reopened this Feb 5, 2024
@jcnelson
Copy link
Member Author

jcnelson commented Feb 5, 2024

The client logic is done, but not the state machine itself

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

No branches or pull requests

2 participants