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

[BUG] - A relay only downloads one block at the time in Blockfetch deadline mode. #1420

Closed
karknu opened this issue Jul 9, 2020 · 1 comment
Assignees
Labels
enhancement New feature or request networking Issues and PRs related to networking

Comments

@karknu
Copy link
Contributor

karknu commented Jul 9, 2020

Internal

Describe the feature you'd like
The following scenario has been observed on the Shelley testnet.

Node A, IOHK and C are close, node B is far away.

  1. A header for a new block, H_n from node A arrives at IOHK’s relay
  2. It is for a new slot so IOHK’s relay decides to download it
  3. A header for a new block H_n’ from node B arrives at IOHK’s relay, it is
    for the same slot but with a lower vrf value.
    IOHK’s relay knows that it will switch to it but it can’t start the download
    because it is limited by bfcMaxConcurrencyDeadline.
  4. Block H_n arrives, and is adopted by IOHK’s relay so it announces it
    to all its peers, even if it knows it would like to switch ASAP.
  5. Node C learns of H_n from IOHK and ask for it.
  6. Block H_n arrives at Node C and is adopted.
  7. Node C produces a new block
  8. Block H_n’ arrives at IOHK’s relay. It switches and announces it to
    its peers.

Make bfcMaxConcurrencyDeadline and bfcMaxConcurrencyBulkSync configurable.
bfcMaxConcurrencyDeadline of one will work fine for normal clients (Daedalus) but should be set to two or more for pool relays.

Describe alternatives you've considered
One could increase the hardcoded bfcMaxConcurrencyDeadline in ouroboros-network, but it that would mean that it is active for all nodes.

@karknu karknu added the enhancement New feature or request label Jul 9, 2020
@karknu
Copy link
Contributor Author

karknu commented Jul 9, 2020

Depends on IntersectMBO/ouroboros-network#2363

@karknu karknu changed the title [BUG] - A relay only downloads one header at the time in Blockfetch deadline mode. [BUG] - A relay only downloads one block at the time in Blockfetch deadline mode. Jul 9, 2020
@coot coot added the networking Issues and PRs related to networking label Jul 15, 2020
iohk-bors bot added a commit that referenced this issue Jul 15, 2020
1469: Blockfetch Config r=karknu a=karknu

Implements #1420 

Should be rebased when #1465 is merged.

Co-authored-by: Karl Knutsson <karl.knutsson@iohk.io>
@karknu karknu closed this as completed Jul 21, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request networking Issues and PRs related to networking
Projects
None yet
Development

No branches or pull requests

2 participants