-
Notifications
You must be signed in to change notification settings - Fork 232
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
Asynchronous Block Download and Verification #3958
Asynchronous Block Download and Verification #3958
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
f85dbc0
to
f02cf97
Compare
4fbb0e3
to
0838474
Compare
a86ed45
to
cee99c3
Compare
I think we shouldn't ckb/sync/src/synchronizer/mod.rs Lines 231 to 239 in 8dffa39
|
Since the |
9a677dd
to
1d4d952
Compare
6bbb93c
to
571d3f2
Compare
Signed-off-by: Eval EXEC <[email protected]>
…ng_unverified_blocks_on_startup` Signed-off-by: Eval EXEC <[email protected]>
Signed-off-by: Eval EXEC <[email protected]>
56cd8ad
to
b9fba57
Compare
Need to fix CI issues before release ckb-async-download-rc0. |
Signed-off-by: Eval EXEC <[email protected]>
cc9c686
to
cfd7aed
Compare
e2045d2
into
nervosnetwork:ckb-async-download
What problem does this PR solve?
Working in progress.
Thinking and trying to make Synchronizer download block and ChainService verify block asynchronous.
What's Changed:
a sequence diagram to describe the IBD phase
The IBD phase on develop branch (before v0.111.0)
The IBD phase by this PR:
Related changes
Synchronizer
receive a block from remote peer, transfer it toChainService
.ChainService
performs all validation tasks except forScriptVerify
, and optimistically assumes that the block is valid, storing blocks first in RocksDB, and usingUnverifiedTip
to represent the highest chain that has not been verified.ScriptVerify
task in a a asynchronous thread and updateTipHeader
OrphanBlock
tockb_chain
BlockStatus
andHeaderMap
tockb_shared
, because bothSynchronizer
andChainService
need themCheck List
Tests
Side effects
Release note