Repository navigation
implement initial sync from latest block to genesis block #97
Copy link
Copy link
Closed
Description
Activity
- added a commit that references this issue
on Nov 3, 2017 - added a commit that references this issue
on Nov 3, 2017 - added a commit that references this issue
on Nov 6, 2017 - added a commit that references this issue
on Nov 6, 2017 - added a commit that references this issue
on Nov 7, 2017 - added a commit that references this issue
on Nov 9, 2017 - added a commit that references this issue
on Nov 9, 2017 - added a commit that references this issue
on Nov 14, 2017 - added a commit that references this issue
on Nov 14, 2017 8 remaining items
- added a commit that references this issue
on Nov 20, 2017 - added a commit that references this issue
on Nov 20, 2017 - added a commit that references this issue
on Nov 20, 2017 - added a commit that references this issue
on Nov 22, 2017 - added a commit that references this issue
on Nov 22, 2017 - added a commit that references this issue
on Nov 22, 2017 - added a commit that references this issue
on Nov 22, 2017 - added a commit that references this issue
on Nov 23, 2017 - added a commit that references this issue
on Nov 23, 2017 This was fixed by #126.
Reacted by Philipp Piwo
Metadata
Metadata
Assignees
Labels
No labels
#88 has to be finished first
only do this in pair programming
a. "single" validate transactions without chainstate, coinbase sum, version and root_hash(discard if invalid)
b. get parent if we don't have parent
a. if parent is not validate. Validate parent.
b. If parent does not exist skip.
c. validate the block
a. generate list of block between chainstate and highest block by traversing from top. If you find an marked as "invalid" block, mark all of it's children as invalid. (all blocks from top block to that block including top)
b. if you get to genesis while looking for chainstate block: regenerate chainstate from genesis. (We have to have some chainstate snapshots in future to avoid that)
c. validate blocks in order beginning with child of chainstate block. Update chainstate while doing that.
d. if validation fails at one point mark the block as "invalid" and mark all it's children as "invalid".
e. if validation failed at one point try again to get the topmost block and if it's not chainstate block try to advance chainstate as above described.