-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
[R4R]Separate Processing and State Verification on BSC: sync develop branch #763
Merged
Conversation
This file contains 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
…hain#668) * pipeline commit trie add metrics reopen trie * add unit testcase * resolve keefe's comment * resolve igor's comments * update prefetch remove prefetcher * no need to return error for precacheTransaction * fix lint issue * add some comments * remove useless code * add default option is false * fix diffsync nil point * fix panic on GetProofByHash Co-authored-by: zjubfd <zjubfd@google.com>
unclezoro
approved these changes
Feb 14, 2022
j75689
added a commit
that referenced
this pull request
Jun 1, 2022
[R4R] Separate Processing and State Verification on BSC commit 73e6147 Merge: 84bb85c 2f2b98a Author: cryyl <1226241521@qq.com> Date: Fri May 6 16:48:35 2022 +0800 Merge remote-tracking branch 'bnb-chain/develop' into separate-node commit 84bb85c Author: zjubfd <296179868@qq.com> Date: Fri May 6 16:42:40 2022 +0800 refine the description commit cc1940c Author: zjubfd <296179868@qq.com> Date: Fri May 6 16:38:59 2022 +0800 change the flag description commit e440880 Author: dean65 <dean950605@gmail.com> Date: Fri May 6 02:17:24 2022 +0800 fix TestFastNode commit 4001f37 Author: dean65 <dean950605@gmail.com> Date: Fri May 6 02:16:57 2022 +0800 fix sorting difflayer.storage commit e93cced Author: dean65 <dean950605@gmail.com> Date: Fri May 6 01:06:14 2022 +0800 use NewTimer instead of time.After commit f027818 Author: cryyl <1226241521@qq.com> Date: Thu May 5 19:10:52 2022 +0800 fix to resolve comments Signed-off-by: cryyl <1226241521@qq.com> commit ae3bdea Author: cryyl <1226241521@qq.com> Date: Thu May 5 19:10:52 2022 +0800 fix to resolve comments Signed-off-by: cryyl <1226241521@qq.com> commit 2f2b98a Merge: 0f5a4c8 55ef216 Author: zjubfd <296179868@qq.com> Date: Thu May 5 17:26:16 2022 +0800 Merge pull request #888 from bnb-chain/develop [R4R] Release For BSC v1.1.10 commit 2dbc8c5 Merge: e9be0d4 0132f13 Author: realuncle <90668111+realuncle@users.noreply.github.com> Date: Wed May 4 21:37:55 2022 +0800 Merge pull request #14 from node-real/separate-node-test close verifyTask when there is no valid peer and add UT tests commit 0132f13 Author: kyrie-yl <yl.on.the.way@gmail.com> Date: Fri Apr 29 14:39:46 2022 +0800 add UT tests commit e9be0d4 Author: dean65 <dean950605@gmail.com> Date: Fri Apr 29 10:01:16 2022 +0800 close verifyTask when length of verifyPeers is 0 commit 8929510 Author: dean65 <dean950605@gmail.com> Date: Thu Apr 28 17:01:05 2022 +0800 fix tests commit 7490499 Author: dean65 <dean950605@gmail.com> Date: Thu Apr 28 15:22:06 2022 +0800 setup default validator for blockchain commit ef3ec13 Author: dean65 <dean950605@gmail.com> Date: Thu Apr 28 14:49:38 2022 +0800 fix lint error commit 4771d86 Merge: 5f22105 15bc254 Author: dean65 <dean950605@gmail.com> Date: Thu Apr 28 14:36:59 2022 +0800 Merge remote-tracking branch 'origin/develop' into separate-node commit 5f22105 Author: j75689 <j75689@gmail.com> Date: Wed Apr 27 16:20:47 2022 +0800 add unit-test for fastnode commit 5a254c4 Author: j75689 <j75689@gmail.com> Date: Wed Apr 27 10:20:27 2022 +0800 add interval when getting ErrSnapshotStale commit b56c19c Author: j75689 <j75689@gmail.com> Date: Tue Apr 26 11:18:03 2022 +0800 fix diffhash issue commit 0f5a4c8 Author: Leon <316032931@qq.com> Date: Mon Apr 25 10:47:02 2022 +0800 [R4R]fix:Shift panic for zero length of heads (#870) * fix:Shift panic for zero length of heads * fix: make sure peek before shift * refactor and update ut * refactor commit dfff219 Author: j75689 <j75689@gmail.com> Date: Mon Apr 25 10:25:23 2022 +0800 fix close of closed channel issue commit 3150755 Author: j75689 <j75689@gmail.com> Date: Sat Apr 23 16:29:41 2022 +0800 fix log format commit c840e7f Author: j75689 <j75689@gmail.com> Date: Sat Apr 23 06:02:29 2022 +0800 fix diffhash mismatch issue commit 734d17f Author: j75689 <j75689@gmail.com> Date: Sat Apr 23 06:01:23 2022 +0800 fix gracefull shutdown issue commit a73aad6 Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 18:00:32 2022 +0800 fix validateBody commit 23913cf Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 17:53:52 2022 +0800 remove unused code commit 2e6c33b Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 15:52:24 2022 +0800 don't need to send verify task when node start commit e0cf707 Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 15:48:47 2022 +0800 remove unused code commit c57fdd7 Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 15:27:30 2022 +0800 fix comments commit 7ad4d02 Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 15:13:51 2022 +0800 Revert "change type of diffLayerChanCache to sync.Map" This reverts commit f8c6a4a. commit 1e44aa6 Author: j75689 <j75689@gmail.com> Date: Tue Apr 19 17:54:37 2022 +0800 fixup! rewind to last non verified block when restart fast node commit 8c6d5a8 Author: j75689 <j75689@gmail.com> Date: Tue Apr 19 17:37:04 2022 +0800 fixup! rewind to last non verified block when restart fast node commit be53153 Author: j75689 <j75689@gmail.com> Date: Tue Apr 19 14:39:12 2022 +0800 rewind to last non verified block when restart fast node commit b3a701d Author: j75689 <j75689@gmail.com> Date: Tue Apr 19 13:40:17 2022 +0800 refactor block remote validation code commit f8c6a4a Author: j75689 <j75689@gmail.com> Date: Tue Apr 19 12:46:01 2022 +0800 change type of diffLayerChanCache to sync.Map commit 5675916 Author: j75689 <j75689@gmail.com> Date: Thu Apr 14 01:16:00 2022 +0800 fixup! put difflayer into verifyManage cache when node restart commit 34e8ce0 Author: j75689 <j75689@gmail.com> Date: Thu Apr 14 00:19:41 2022 +0800 remove testing code commit 161c467 Merge: b978ed3 1aeadc1 Author: j75689 <j75689@gmail.com> Date: Thu Apr 14 00:18:02 2022 +0800 Merge branch 'develop' into fast-node-fix commit b978ed3 Author: j75689 <j75689@gmail.com> Date: Wed Apr 13 18:40:49 2022 +0800 put difflayer into verifyManage cache when node restart commit 1aaab76 Author: kyrie-yl <yl.on.the.way@gmail.com> Date: Thu Apr 7 00:21:26 2022 +0800 verify task get difflayer cache synchronously Signed-off-by: kyrie-yl <yl.on.the.way@gmail.com> commit 74ecbf2 Merge: 859186f 1aeadc1 Author: zjubfd <296179868@qq.com> Date: Fri Apr 8 19:06:42 2022 +0800 Merge pull request #850 from bnb-chain/develop [R4R] Release v1.1.9 commit 7b070c0 Author: kyrie-yl <yl.on.the.way@gmail.com> Date: Wed Mar 2 10:07:14 2022 +0800 resolve comments Signed-off-by: kyrie-yl <yl.on.the.way@gmail.com> commit 2ed75ab Author: kyrie-yl <yl.on.the.way@gmail.com> Date: Tue Mar 1 13:58:20 2022 +0800 add metrics Signed-off-by: kyrie-yl <yl.on.the.way@gmail.com> commit f7ef016 Author: kyrie-yl <yl.on.the.way@gmail.com> Date: Thu Feb 24 17:13:40 2022 +0800 fast node verification and fix conflicts Signed-off-by: kyrie-yl <yl.on.the.way@gmail.com> commit 1e46537 Merge: 6fffa8e 0ca4bc1 Author: zjubfd <296179868@qq.com> Date: Mon Feb 14 16:59:55 2022 +0800 Merge pull request #763 from KeefeL/dev [R4R]Separate Processing and State Verification on BSC: sync develop branch commit 0ca4bc1 Merge: 6fffa8e fed2f35 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Mon Feb 14 12:33:53 2022 +0800 Merge branch 'develop' into separate-node commit fed2f35 Author: KeefeL <90749943+KeefeL@users.noreply.github.com> Date: Thu Jan 27 16:50:59 2022 +0800 testcases for trust protocol (#742) commit 529e66e Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Tue Jan 25 21:18:56 2022 +0800 fix misc bugs of verify node commit 0405b68 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Fri Jan 21 18:17:06 2022 +0800 generate diff layer by replaying block commit 4905aab Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Thu Jan 20 15:22:06 2022 +0800 testcases for getting root by diff hash commit c6e8652 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Tue Jan 11 16:17:03 2022 +0800 implement trust protocol and verify node commit 359906c Author: RealUncle <walt@nodereal.io> Date: Thu Dec 2 17:40:47 2021 +0800 implement the framework of fast node commit 859186f Merge: 74f6b61 21a3b11 Author: zjubfd <296179868@qq.com> Date: Fri Jan 28 11:44:08 2022 +0800 Merge pull request #743 from binance-chain/develop [R4R] Release v1.1.8 commit 6fffa8e Author: KeefeL <90749943+KeefeL@users.noreply.github.com> Date: Thu Jan 27 16:50:59 2022 +0800 testcases for trust protocol (#742) commit 0b296e8 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Tue Jan 25 21:18:56 2022 +0800 fix misc bugs of verify node commit 6306002 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Fri Jan 21 18:17:06 2022 +0800 generate diff layer by replaying block commit 66dd9ea Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Thu Jan 20 15:22:06 2022 +0800 testcases for getting root by diff hash commit 885aeb9 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Tue Jan 11 16:17:03 2022 +0800 implement trust protocol and verify node commit 3f266bf Author: RealUncle <walt@nodereal.io> Date: Thu Dec 2 17:40:47 2021 +0800 implement the framework of fast node
j75689
added a commit
that referenced
this pull request
Jun 1, 2022
[R4R] Separate Processing and State Verification on BSC commit 73e6147 Merge: 84bb85c 2f2b98a Author: cryyl <1226241521@qq.com> Date: Fri May 6 16:48:35 2022 +0800 Merge remote-tracking branch 'bnb-chain/develop' into separate-node commit 84bb85c Author: zjubfd <296179868@qq.com> Date: Fri May 6 16:42:40 2022 +0800 refine the description commit cc1940c Author: zjubfd <296179868@qq.com> Date: Fri May 6 16:38:59 2022 +0800 change the flag description commit e440880 Author: dean65 <dean950605@gmail.com> Date: Fri May 6 02:17:24 2022 +0800 fix TestFastNode commit 4001f37 Author: dean65 <dean950605@gmail.com> Date: Fri May 6 02:16:57 2022 +0800 fix sorting difflayer.storage commit e93cced Author: dean65 <dean950605@gmail.com> Date: Fri May 6 01:06:14 2022 +0800 use NewTimer instead of time.After commit f027818 Author: cryyl <1226241521@qq.com> Date: Thu May 5 19:10:52 2022 +0800 fix to resolve comments Signed-off-by: cryyl <1226241521@qq.com> commit ae3bdea Author: cryyl <1226241521@qq.com> Date: Thu May 5 19:10:52 2022 +0800 fix to resolve comments Signed-off-by: cryyl <1226241521@qq.com> commit 2f2b98a Merge: 0f5a4c8 55ef216 Author: zjubfd <296179868@qq.com> Date: Thu May 5 17:26:16 2022 +0800 Merge pull request #888 from bnb-chain/develop [R4R] Release For BSC v1.1.10 commit 2dbc8c5 Merge: e9be0d4 0132f13 Author: realuncle <90668111+realuncle@users.noreply.github.com> Date: Wed May 4 21:37:55 2022 +0800 Merge pull request #14 from node-real/separate-node-test close verifyTask when there is no valid peer and add UT tests commit 0132f13 Author: kyrie-yl <yl.on.the.way@gmail.com> Date: Fri Apr 29 14:39:46 2022 +0800 add UT tests commit e9be0d4 Author: dean65 <dean950605@gmail.com> Date: Fri Apr 29 10:01:16 2022 +0800 close verifyTask when length of verifyPeers is 0 commit 8929510 Author: dean65 <dean950605@gmail.com> Date: Thu Apr 28 17:01:05 2022 +0800 fix tests commit 7490499 Author: dean65 <dean950605@gmail.com> Date: Thu Apr 28 15:22:06 2022 +0800 setup default validator for blockchain commit ef3ec13 Author: dean65 <dean950605@gmail.com> Date: Thu Apr 28 14:49:38 2022 +0800 fix lint error commit 4771d86 Merge: 5f22105 15bc254 Author: dean65 <dean950605@gmail.com> Date: Thu Apr 28 14:36:59 2022 +0800 Merge remote-tracking branch 'origin/develop' into separate-node commit 5f22105 Author: j75689 <j75689@gmail.com> Date: Wed Apr 27 16:20:47 2022 +0800 add unit-test for fastnode commit 5a254c4 Author: j75689 <j75689@gmail.com> Date: Wed Apr 27 10:20:27 2022 +0800 add interval when getting ErrSnapshotStale commit b56c19c Author: j75689 <j75689@gmail.com> Date: Tue Apr 26 11:18:03 2022 +0800 fix diffhash issue commit 0f5a4c8 Author: Leon <316032931@qq.com> Date: Mon Apr 25 10:47:02 2022 +0800 [R4R]fix:Shift panic for zero length of heads (#870) * fix:Shift panic for zero length of heads * fix: make sure peek before shift * refactor and update ut * refactor commit dfff219 Author: j75689 <j75689@gmail.com> Date: Mon Apr 25 10:25:23 2022 +0800 fix close of closed channel issue commit 3150755 Author: j75689 <j75689@gmail.com> Date: Sat Apr 23 16:29:41 2022 +0800 fix log format commit c840e7f Author: j75689 <j75689@gmail.com> Date: Sat Apr 23 06:02:29 2022 +0800 fix diffhash mismatch issue commit 734d17f Author: j75689 <j75689@gmail.com> Date: Sat Apr 23 06:01:23 2022 +0800 fix gracefull shutdown issue commit a73aad6 Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 18:00:32 2022 +0800 fix validateBody commit 23913cf Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 17:53:52 2022 +0800 remove unused code commit 2e6c33b Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 15:52:24 2022 +0800 don't need to send verify task when node start commit e0cf707 Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 15:48:47 2022 +0800 remove unused code commit c57fdd7 Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 15:27:30 2022 +0800 fix comments commit 7ad4d02 Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 15:13:51 2022 +0800 Revert "change type of diffLayerChanCache to sync.Map" This reverts commit f8c6a4a. commit 1e44aa6 Author: j75689 <j75689@gmail.com> Date: Tue Apr 19 17:54:37 2022 +0800 fixup! rewind to last non verified block when restart fast node commit 8c6d5a8 Author: j75689 <j75689@gmail.com> Date: Tue Apr 19 17:37:04 2022 +0800 fixup! rewind to last non verified block when restart fast node commit be53153 Author: j75689 <j75689@gmail.com> Date: Tue Apr 19 14:39:12 2022 +0800 rewind to last non verified block when restart fast node commit b3a701d Author: j75689 <j75689@gmail.com> Date: Tue Apr 19 13:40:17 2022 +0800 refactor block remote validation code commit f8c6a4a Author: j75689 <j75689@gmail.com> Date: Tue Apr 19 12:46:01 2022 +0800 change type of diffLayerChanCache to sync.Map commit 5675916 Author: j75689 <j75689@gmail.com> Date: Thu Apr 14 01:16:00 2022 +0800 fixup! put difflayer into verifyManage cache when node restart commit 34e8ce0 Author: j75689 <j75689@gmail.com> Date: Thu Apr 14 00:19:41 2022 +0800 remove testing code commit 161c467 Merge: b978ed3 1aeadc1 Author: j75689 <j75689@gmail.com> Date: Thu Apr 14 00:18:02 2022 +0800 Merge branch 'develop' into fast-node-fix commit b978ed3 Author: j75689 <j75689@gmail.com> Date: Wed Apr 13 18:40:49 2022 +0800 put difflayer into verifyManage cache when node restart commit 1aaab76 Author: kyrie-yl <yl.on.the.way@gmail.com> Date: Thu Apr 7 00:21:26 2022 +0800 verify task get difflayer cache synchronously Signed-off-by: kyrie-yl <yl.on.the.way@gmail.com> commit 74ecbf2 Merge: 859186f 1aeadc1 Author: zjubfd <296179868@qq.com> Date: Fri Apr 8 19:06:42 2022 +0800 Merge pull request #850 from bnb-chain/develop [R4R] Release v1.1.9 commit 7b070c0 Author: kyrie-yl <yl.on.the.way@gmail.com> Date: Wed Mar 2 10:07:14 2022 +0800 resolve comments Signed-off-by: kyrie-yl <yl.on.the.way@gmail.com> commit 2ed75ab Author: kyrie-yl <yl.on.the.way@gmail.com> Date: Tue Mar 1 13:58:20 2022 +0800 add metrics Signed-off-by: kyrie-yl <yl.on.the.way@gmail.com> commit f7ef016 Author: kyrie-yl <yl.on.the.way@gmail.com> Date: Thu Feb 24 17:13:40 2022 +0800 fast node verification and fix conflicts Signed-off-by: kyrie-yl <yl.on.the.way@gmail.com> commit 1e46537 Merge: 6fffa8e 0ca4bc1 Author: zjubfd <296179868@qq.com> Date: Mon Feb 14 16:59:55 2022 +0800 Merge pull request #763 from KeefeL/dev [R4R]Separate Processing and State Verification on BSC: sync develop branch commit 0ca4bc1 Merge: 6fffa8e fed2f35 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Mon Feb 14 12:33:53 2022 +0800 Merge branch 'develop' into separate-node commit fed2f35 Author: KeefeL <90749943+KeefeL@users.noreply.github.com> Date: Thu Jan 27 16:50:59 2022 +0800 testcases for trust protocol (#742) commit 529e66e Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Tue Jan 25 21:18:56 2022 +0800 fix misc bugs of verify node commit 0405b68 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Fri Jan 21 18:17:06 2022 +0800 generate diff layer by replaying block commit 4905aab Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Thu Jan 20 15:22:06 2022 +0800 testcases for getting root by diff hash commit c6e8652 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Tue Jan 11 16:17:03 2022 +0800 implement trust protocol and verify node commit 359906c Author: RealUncle <walt@nodereal.io> Date: Thu Dec 2 17:40:47 2021 +0800 implement the framework of fast node commit 859186f Merge: 74f6b61 21a3b11 Author: zjubfd <296179868@qq.com> Date: Fri Jan 28 11:44:08 2022 +0800 Merge pull request #743 from binance-chain/develop [R4R] Release v1.1.8 commit 6fffa8e Author: KeefeL <90749943+KeefeL@users.noreply.github.com> Date: Thu Jan 27 16:50:59 2022 +0800 testcases for trust protocol (#742) commit 0b296e8 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Tue Jan 25 21:18:56 2022 +0800 fix misc bugs of verify node commit 6306002 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Fri Jan 21 18:17:06 2022 +0800 generate diff layer by replaying block commit 66dd9ea Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Thu Jan 20 15:22:06 2022 +0800 testcases for getting root by diff hash commit 885aeb9 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Tue Jan 11 16:17:03 2022 +0800 implement trust protocol and verify node commit 3f266bf Author: RealUncle <walt@nodereal.io> Date: Thu Dec 2 17:40:47 2021 +0800 implement the framework of fast node
j75689
added a commit
to j75689/bsc
that referenced
this pull request
Jun 15, 2022
[R4R] Separate Processing and State Verification on BSC commit 73e6147 Merge: 84bb85c 2f2b98a Author: cryyl <1226241521@qq.com> Date: Fri May 6 16:48:35 2022 +0800 Merge remote-tracking branch 'bnb-chain/develop' into separate-node commit 84bb85c Author: zjubfd <296179868@qq.com> Date: Fri May 6 16:42:40 2022 +0800 refine the description commit cc1940c Author: zjubfd <296179868@qq.com> Date: Fri May 6 16:38:59 2022 +0800 change the flag description commit e440880 Author: dean65 <dean950605@gmail.com> Date: Fri May 6 02:17:24 2022 +0800 fix TestFastNode commit 4001f37 Author: dean65 <dean950605@gmail.com> Date: Fri May 6 02:16:57 2022 +0800 fix sorting difflayer.storage commit e93cced Author: dean65 <dean950605@gmail.com> Date: Fri May 6 01:06:14 2022 +0800 use NewTimer instead of time.After commit f027818 Author: cryyl <1226241521@qq.com> Date: Thu May 5 19:10:52 2022 +0800 fix to resolve comments Signed-off-by: cryyl <1226241521@qq.com> commit ae3bdea Author: cryyl <1226241521@qq.com> Date: Thu May 5 19:10:52 2022 +0800 fix to resolve comments Signed-off-by: cryyl <1226241521@qq.com> commit 2f2b98a Merge: 0f5a4c8 55ef216 Author: zjubfd <296179868@qq.com> Date: Thu May 5 17:26:16 2022 +0800 Merge pull request bnb-chain#888 from bnb-chain/develop [R4R] Release For BSC v1.1.10 commit 2dbc8c5 Merge: e9be0d4 0132f13 Author: realuncle <90668111+realuncle@users.noreply.github.com> Date: Wed May 4 21:37:55 2022 +0800 Merge pull request bnb-chain#14 from node-real/separate-node-test close verifyTask when there is no valid peer and add UT tests commit 0132f13 Author: kyrie-yl <yl.on.the.way@gmail.com> Date: Fri Apr 29 14:39:46 2022 +0800 add UT tests commit e9be0d4 Author: dean65 <dean950605@gmail.com> Date: Fri Apr 29 10:01:16 2022 +0800 close verifyTask when length of verifyPeers is 0 commit 8929510 Author: dean65 <dean950605@gmail.com> Date: Thu Apr 28 17:01:05 2022 +0800 fix tests commit 7490499 Author: dean65 <dean950605@gmail.com> Date: Thu Apr 28 15:22:06 2022 +0800 setup default validator for blockchain commit ef3ec13 Author: dean65 <dean950605@gmail.com> Date: Thu Apr 28 14:49:38 2022 +0800 fix lint error commit 4771d86 Merge: 5f22105 15bc254 Author: dean65 <dean950605@gmail.com> Date: Thu Apr 28 14:36:59 2022 +0800 Merge remote-tracking branch 'origin/develop' into separate-node commit 5f22105 Author: j75689 <j75689@gmail.com> Date: Wed Apr 27 16:20:47 2022 +0800 add unit-test for fastnode commit 5a254c4 Author: j75689 <j75689@gmail.com> Date: Wed Apr 27 10:20:27 2022 +0800 add interval when getting ErrSnapshotStale commit b56c19c Author: j75689 <j75689@gmail.com> Date: Tue Apr 26 11:18:03 2022 +0800 fix diffhash issue commit 0f5a4c8 Author: Leon <316032931@qq.com> Date: Mon Apr 25 10:47:02 2022 +0800 [R4R]fix:Shift panic for zero length of heads (bnb-chain#870) * fix:Shift panic for zero length of heads * fix: make sure peek before shift * refactor and update ut * refactor commit dfff219 Author: j75689 <j75689@gmail.com> Date: Mon Apr 25 10:25:23 2022 +0800 fix close of closed channel issue commit 3150755 Author: j75689 <j75689@gmail.com> Date: Sat Apr 23 16:29:41 2022 +0800 fix log format commit c840e7f Author: j75689 <j75689@gmail.com> Date: Sat Apr 23 06:02:29 2022 +0800 fix diffhash mismatch issue commit 734d17f Author: j75689 <j75689@gmail.com> Date: Sat Apr 23 06:01:23 2022 +0800 fix gracefull shutdown issue commit a73aad6 Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 18:00:32 2022 +0800 fix validateBody commit 23913cf Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 17:53:52 2022 +0800 remove unused code commit 2e6c33b Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 15:52:24 2022 +0800 don't need to send verify task when node start commit e0cf707 Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 15:48:47 2022 +0800 remove unused code commit c57fdd7 Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 15:27:30 2022 +0800 fix comments commit 7ad4d02 Author: j75689 <j75689@gmail.com> Date: Wed Apr 20 15:13:51 2022 +0800 Revert "change type of diffLayerChanCache to sync.Map" This reverts commit f8c6a4a. commit 1e44aa6 Author: j75689 <j75689@gmail.com> Date: Tue Apr 19 17:54:37 2022 +0800 fixup! rewind to last non verified block when restart fast node commit 8c6d5a8 Author: j75689 <j75689@gmail.com> Date: Tue Apr 19 17:37:04 2022 +0800 fixup! rewind to last non verified block when restart fast node commit be53153 Author: j75689 <j75689@gmail.com> Date: Tue Apr 19 14:39:12 2022 +0800 rewind to last non verified block when restart fast node commit b3a701d Author: j75689 <j75689@gmail.com> Date: Tue Apr 19 13:40:17 2022 +0800 refactor block remote validation code commit f8c6a4a Author: j75689 <j75689@gmail.com> Date: Tue Apr 19 12:46:01 2022 +0800 change type of diffLayerChanCache to sync.Map commit 5675916 Author: j75689 <j75689@gmail.com> Date: Thu Apr 14 01:16:00 2022 +0800 fixup! put difflayer into verifyManage cache when node restart commit 34e8ce0 Author: j75689 <j75689@gmail.com> Date: Thu Apr 14 00:19:41 2022 +0800 remove testing code commit 161c467 Merge: b978ed3 1aeadc1 Author: j75689 <j75689@gmail.com> Date: Thu Apr 14 00:18:02 2022 +0800 Merge branch 'develop' into fast-node-fix commit b978ed3 Author: j75689 <j75689@gmail.com> Date: Wed Apr 13 18:40:49 2022 +0800 put difflayer into verifyManage cache when node restart commit 1aaab76 Author: kyrie-yl <yl.on.the.way@gmail.com> Date: Thu Apr 7 00:21:26 2022 +0800 verify task get difflayer cache synchronously Signed-off-by: kyrie-yl <yl.on.the.way@gmail.com> commit 74ecbf2 Merge: 859186f 1aeadc1 Author: zjubfd <296179868@qq.com> Date: Fri Apr 8 19:06:42 2022 +0800 Merge pull request bnb-chain#850 from bnb-chain/develop [R4R] Release v1.1.9 commit 7b070c0 Author: kyrie-yl <yl.on.the.way@gmail.com> Date: Wed Mar 2 10:07:14 2022 +0800 resolve comments Signed-off-by: kyrie-yl <yl.on.the.way@gmail.com> commit 2ed75ab Author: kyrie-yl <yl.on.the.way@gmail.com> Date: Tue Mar 1 13:58:20 2022 +0800 add metrics Signed-off-by: kyrie-yl <yl.on.the.way@gmail.com> commit f7ef016 Author: kyrie-yl <yl.on.the.way@gmail.com> Date: Thu Feb 24 17:13:40 2022 +0800 fast node verification and fix conflicts Signed-off-by: kyrie-yl <yl.on.the.way@gmail.com> commit 1e46537 Merge: 6fffa8e 0ca4bc1 Author: zjubfd <296179868@qq.com> Date: Mon Feb 14 16:59:55 2022 +0800 Merge pull request bnb-chain#763 from KeefeL/dev [R4R]Separate Processing and State Verification on BSC: sync develop branch commit 0ca4bc1 Merge: 6fffa8e fed2f35 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Mon Feb 14 12:33:53 2022 +0800 Merge branch 'develop' into separate-node commit fed2f35 Author: KeefeL <90749943+KeefeL@users.noreply.github.com> Date: Thu Jan 27 16:50:59 2022 +0800 testcases for trust protocol (bnb-chain#742) commit 529e66e Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Tue Jan 25 21:18:56 2022 +0800 fix misc bugs of verify node commit 0405b68 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Fri Jan 21 18:17:06 2022 +0800 generate diff layer by replaying block commit 4905aab Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Thu Jan 20 15:22:06 2022 +0800 testcases for getting root by diff hash commit c6e8652 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Tue Jan 11 16:17:03 2022 +0800 implement trust protocol and verify node commit 359906c Author: RealUncle <walt@nodereal.io> Date: Thu Dec 2 17:40:47 2021 +0800 implement the framework of fast node commit 859186f Merge: 74f6b61 21a3b11 Author: zjubfd <296179868@qq.com> Date: Fri Jan 28 11:44:08 2022 +0800 Merge pull request bnb-chain#743 from binance-chain/develop [R4R] Release v1.1.8 commit 6fffa8e Author: KeefeL <90749943+KeefeL@users.noreply.github.com> Date: Thu Jan 27 16:50:59 2022 +0800 testcases for trust protocol (bnb-chain#742) commit 0b296e8 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Tue Jan 25 21:18:56 2022 +0800 fix misc bugs of verify node commit 6306002 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Fri Jan 21 18:17:06 2022 +0800 generate diff layer by replaying block commit 66dd9ea Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Thu Jan 20 15:22:06 2022 +0800 testcases for getting root by diff hash commit 885aeb9 Author: Keefe-Liu <bianze.kernel@gmail.com> Date: Tue Jan 11 16:17:03 2022 +0800 implement trust protocol and verify node commit 3f266bf Author: RealUncle <walt@nodereal.io> Date: Thu Dec 2 17:40:47 2021 +0800 implement the framework of fast node
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.
Motivation
The increasing adoption of BSC leads to a more active network. On the other hand, the node maintainer had a hard time keeping their node catching up with the chain. A new syncing protocol to lower the hardware requirement is an urgent need.
Currently a BSC node has two kinds of state world: MPT and snapshot. MPT(Merkle Patricia Tries) is a tree-structured state world. The key function of MPT is to generate the state root to ensure state consistency, while the query/commit on MPT is quite slow. Snapshot is a flattened key-value-based state world. Snapshot provides fast queries and commits. The storage size of the snapshot increases slowly even with a large transaction volume. Snapshot is usually used for block processing, while MPT is used for state verification.
In order to lower the hardware requirement and keep security, we introduce two type nodes to make full use of different storages, one is named fast node, and the other is named verify node. The fast node will do block processing with snapshot, it will do all verification against blocks except state root. The verify node receives diffhash from the fast node then responds MPT root to the fast node.
The fast node doesn’t need to store MPT, so the storage and computation requirement will be much lower.
Specification
Architecture
The network topology of the fast node and verify node:
Fast node is a bsc client that does fullsync using only Snapshot and generates difflayer. It needs the confirm message from the verify node before freezing the blocks, it has to wait until it receives a confirm message from the verify node for the ancestor block before inserting new blocks.
Verify node is a normal bsc full node that does fullsync using Snapshot and MPT, generates difflayer. It receives diffhash from fast nodes, finds corresponding difflayer whose diffhash is matched, then it responds MPT root message to the fast node.
All the messages exchanged between fast node and verify node are based on the trust p2p protocol.
The relationship between the fast node and the verify node:
On the fast node side, for each inserted block, verify manager creates a verify task, the verify task submits the block’s diffhash to multiple trusted verify nodes, and receives response from them, once received the confirm message, the block has been verified.
On the verify node side, it receives requests from fast nodes, does corresponding processing and then responds to fast nodes immediately. The processing of diffhash finds difflayer from cache first, if not found then search from diff store, if still no difflayer found, then find from blockchain headers, this processing would be very quick.
Authentication
Fast node can only rely on trusted verify node, either deployed by the same developer or deployed by a trusted organization. We know the different peers will verify the peer id during the handshake, we will borrow this mechanism to do the authentication. We introduce VerifyNodes settings, which is a list of encoded addresses, the fast nodes only build connections(based on trust protocol) with VerifyNodes.
For organizations, they can deploy their own verified node.
For individual developers, they can connect to the verify node donated by the famous organization/validators.
Chain Tools
Implement a new prune command to prune all MPT storage.
Prototype verification
The performance improves x3 in fast node on mainnet.
Command
Fast Node
Introduce a new tries-verify-mode setting, there are four modes:
If the fast node runs in not local mode, the node will disable diff protocol by default, If the fast node runs in full or light mode, the node will enable trust protocol by default.
./geth --config ./config.toml --datadir ./node --syncmode full --cache 5000 --tries-verify-mode light
Verify node
When a full node has enabled the trust protocol, it can serve as a verify node, at the same time, we will recommend you to enable persist diff, disable snap protocol and diff protocol when running a verify node.
./geth --config ./config.toml --datadir ./node --syncmode full --cache 5000 --persistdiff --enabletrustprotocol --disablesnapprotocol --disablediffprotocol
Prune tries node
Prune the tires node:
./geth snapshot insecure-prune-all --datadir ./node ./genesis.json