This is the tracking issue for the state update rfc that outlines how state updates are handled, in particular multiple chain handling, reorgs, and finalization of blocks, and how finalized vs un-finalized blocks are handled.
Request::Transaction(transaction::Hash) - #1220To check that Chain operations are implemented correctly, I think that we should use the following proptests:
For any sequence of n+m blocks, check that the following give the same chain:
push to build a chain of all n+m blocks and then calling fork to remove the top m blocks;push to build a chain of the first n blocks;For any sequence of n+m blocks, check that the following give the same chain:
push to build a chain of all n+m blocks and then calling finalize to remove the bottom n blocks;push to build a chain of the last m blocks;This probably requires making a new proptest Strategy that can generate sequences of blocks with correct parent hashes. This has some overlap with #919. I don't think it's required for this work, but eventually we could evolve that strategy into one that generates not just sequences of blocks with correct parent hashes but with valid transactions, etc.
@hdevalence I moved Request::Transaction(transaction::Hash) to a new ticket #1220, because it doesn't need to be done in the first alpha. We can schedule that work whenever we have time.
Notes from our testing catch-up:
Goals
Scope
Consensus Rule List
Easy Tests
Design Tests - less important
TODOs:
I see we now have new tracking issues created.
Do we want to wait until those are completed before closing this issue or are we going to track outstanding work in the Finalized, Non-Finalized, and Service tracking issues?
I was going to close those first and then close this one, using it as a low detail higher level tracking issue.
Seems like all items are ticked off now, can we close this one? :D
sounds good to me :D