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

Download Block Logic #66

Closed
5 tasks
coot opened this issue Nov 15, 2018 · 1 comment
Closed
5 tasks

Download Block Logic #66

coot opened this issue Nov 15, 2018 · 1 comment
Assignees

Comments

@coot
Copy link
Contributor

coot commented Nov 15, 2018

net_impl_block_download_logic
Implement the logic for which blocks to download given the chains, peers and policy

This is a critical component of the network and consensus design that continuously monitors the node's current chain length, the available candidate chains of headers, fetched blocks and decides if and when to download block bodies, and which peers to download them from. It is critical to the header/body split within the consensus layer.

The function of the component is to look at the chains of headers that are available from each peer and decide which blocks to download. Downloaded blocks are handed back to the consensus layer to consider in extending the chain (ie to validate and run ledger rules). The download logic must take into account the maximum desired level of network concurrency to keep network resource use within acceptable levels. When resource constraints force choices, it must try to choose which peers to download blocks from to maximise the chances of fetching blocks within the deadlines imposed by the consensus layer. The policies embedded in this component

This work package involves creating a first working version of this component, but not the final version. The completion criteria for this work package are

  • a first working PoC of the block download logic, using the block fetching protocol in simulation with test block providers
  • a test demonstrating that it can succesfully fetch all the blocks for a longest chain
  • document the design of this critical component and the policies it does or will need to embed and how these lead to the desired network level outcomes
  • specify further system level simulation tests that will need to be done later to demonstrate that the network level outcomes
  • specify further tests in simulation to exercise difficult cases in the block download logic, e.g. with slow or disconnecting peers, or peers that provide incorrect responses
@coot coot added the enhancement New feature or request label Nov 15, 2018
@dcoutts
Copy link
Contributor

dcoutts commented Nov 29, 2018

#91 tiny PR needed for timing for DeltaQ and block logic

Current WIP branch https://github.com/input-output-hk/ouroboros-network/tree/wip/block-fetch

@coot coot mentioned this issue Nov 30, 2018
7 tasks
@dcoutts dcoutts mentioned this issue Dec 5, 2018
3 tasks
@coot coot added product-backlog and removed enhancement New feature or request labels Dec 6, 2018
@coot coot closed this as completed Oct 8, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants