Migrate EB announcement and certification flag to Praos header#1978
Draft
bladyjoker wants to merge 3 commits intoleios-prototypefrom
Draft
Migrate EB announcement and certification flag to Praos header#1978bladyjoker wants to merge 3 commits intoleios-prototypefrom
bladyjoker wants to merge 3 commits intoleios-prototypefrom
Conversation
3 tasks
2db7298 to
5c62210
Compare
2db7298 to
75a2479
Compare
75a2479 to
5e5a4d8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves input-output-hk/ouroboros-leios#837
DONE
data BodyType = LedgerBlock | LeiosCertificatewhich would better be nameddata RbType = LedgerRbType | CertRbTypeordata BodyType = LedgerBlockBody | CertificateBodyMove the Certificate from the Ledger into ConsensusNOTES
ResolveLeiosBlockmachinery is a hack that works! We're blindly guessing thatblkmight contain something that can be resolved like a LeiosCertificate and it returns ablkthat hopefully has a fully resolvedblkthat can be applied. Imo a morally correct approach would to havedata RankingBlock blk = LedgerRb blk | CertRb LeiosCertificatewhich we can use to make such distinction and manage the resolution process here and elsewhere in the abstract code base where that distinction matters (like the ForgeLoop)applyBlockcurrently doesresolveLeiosBlockand thentickAndReapplywhich is not incorrect as in the case of there being a Leios Cert, we need to base changes from the associated EB on top of theprevLedger State (I think that means we shouldn't tick?)tx-centrifugeit doesn't seem like there's any way around breaking the APIBlockFetch. For the current pragmatic solutions we hide theCertificatebehind theblkand thereforeBlockFetchwill happily return you a Certificate which will breaktx-centrifuge. That being said,ChainSyncis also necessarily having a breaking change since we added 2 new fields to the PraosHeader.