Skip to content

consensus: update sketch implementation plan for Ouroboros Genesis #3063

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

Closed
wants to merge 3 commits into from

Conversation

nfrisby
Copy link
Contributor

@nfrisby nfrisby commented Apr 14, 2021

Update the sketched plan after our discussion on 2021 April 13 and again on 2021 August 9 and 2021 August 12.

@nfrisby nfrisby added consensus issues related to ouroboros-consensus documentation Network Documentation related tasks labels Apr 14, 2021
@nfrisby
Copy link
Contributor Author

nfrisby commented Apr 14, 2021

That discussion didn't reach any conclusions, so we'll be having more. This PR just writes-up what came up during that first meeting.

@nfrisby nfrisby force-pushed the nfrisby/update-genesis-plan branch from b4b331b to a4ae12f Compare April 15, 2021 13:35
@nfrisby nfrisby force-pushed the nfrisby/update-genesis-plan branch from a4ae12f to d37ce79 Compare August 9, 2021 22:28
@nfrisby
Copy link
Contributor Author

nfrisby commented Aug 9, 2021

I've added a draft commit with another overall sketch -- this one reflects much additional thought about what exactly BlockFetch can and can't do, when we should respect the peers' claimed tips, and related timeouts.

@nfrisby nfrisby force-pushed the nfrisby/update-genesis-plan branch from d37ce79 to ec33107 Compare August 9, 2021 22:41
true).

- TODO Do we actually need that exception? Under what circumstances
would it be relevant, during Syncing?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If their latest header is beyond our forecast range that means it is more than 3k/f slots ahead of the intersection from our chain. Can't we in that case already decide which one is denser as it is also the length of the genesis window?

block (which the honest nodes would always do, up to their immutable
tip), then they're allowed to be somewhat slower, since we'll
disconnect from them if either they don't deliver that block or if
the eventual densest chain does not include that block.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume this is the case but I want to confirm it. We are going to disconnect from adversarial peers and then wait until we reconnect to enough peers to continue?

disconnect from them if either they don't deliver that block or if
the eventual densest chain does not include that block.

- A possible refinment: each peer can offer _jump points_ that are
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will happen in ChainSync, right?

hold back at least one of the other conjuncts. On the other hand, it
seems fine if we do need this, because of the timeout discussed
above.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't we also consider the case when the wallclock is closer than a genesis window length from the first intersection with out chain? In that case every chain tip is necessarily inside the genesis window, and we judge based on length. Or maybe this case is redundant with cases above.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This probably would also imply the opposite situation, when the wallclock is further than a genesis window length from the [last?] intersection with our chain it means that if block production is not halted, all the forks will fill the genesis window and then we can decide on the only chain that is the honest one.

interaction.

- TODO Sketch: we transition as soon N (?) of our peers' tips have a
time point that is more than LIM (?) behind our wallclock.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As mentioned above, not sure if this would have to be something like "the intersection is a genesis window length behind our wallclock"

@JaredCorduan JaredCorduan requested a review from dnadales as a code owner April 24, 2023 22:50
@nfrisby
Copy link
Contributor Author

nfrisby commented Nov 2, 2023

Closing; migrated to IntersectMBO/ouroboros-consensus#487

@nfrisby nfrisby closed this Nov 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
consensus issues related to ouroboros-consensus documentation Network Documentation related tasks
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants