221e6c9e2f
* Nimbus folder environment update details: * Integrated `CoreDbRef` for the sources in the `nimbus` sub-folder. * The `nimbus` program does not compile yet as it needs the updates in the parallel `stateless` sub-folder. * Stateless environment update details: * Integrated `CoreDbRef` for the sources in the `stateless` sub-folder. * The `nimbus` program compiles now. * Premix environment update details: * Integrated `CoreDbRef` for the sources in the `premix` sub-folder. * Fluffy environment update details: * Integrated `CoreDbRef` for the sources in the `fluffy` sub-folder. * Tools environment update details: * Integrated `CoreDbRef` for the sources in the `tools` sub-folder. * Nodocker environment update details: * Integrated `CoreDbRef` for the sources in the `hive_integration/nodocker` sub-folder. * Tests environment update details: * Integrated `CoreDbRef` for the sources in the `tests` sub-folder. * The unit tests compile and run cleanly now. * Generalise `CoreDbRef` to any `select_backend` supported database why: Generalisation was just missed due to overcoming some compiler oddity which was tied to rocksdb for testing. * Suppress compiler warning for `newChainDB()` why: Warning was added to this function which must be wrapped so that any `CatchableError` is re-raised as `Defect`. * Split off persistent `CoreDbRef` constructor into separate file why: This allows to compile a memory only database version without linking the backend library. * Use memory `CoreDbRef` database by default detail: Persistent DB constructor needs to import `db/core_db/persistent why: Most tests use memory DB anyway. This avoids linking `-lrocksdb` or any other backend by default. * fix `toLegacyBackend()` availability check why: got garbled after memory/persistent split. * Clarify raw access to MPT for snap sync handler why: Logically, `kvt` is not the raw access for the hexary trie (although this holds for the legacy database) |
||
---|---|---|
.. | ||
worker | ||
README.txt | ||
constants.nim | ||
range_desc.nim | ||
worker.nim | ||
worker_desc.nim |
README.txt
Test & debugging scenario with nimbus-eth1 client/server ======================================================== Start snap/1 server ------------------- # Enter nimbus directory for snap/1 protocol server. cd server # Tell nimbus to stop full sync after 2 mio blocks. echo 2000000 > full-limit.txt # Tell nimbus to use this predefined key ID echo 123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0 > full-id.key ./build/nimbus \ --tcp-port:30319 --nat=None --sync-mode=full \ --protocols=snap --discovery=none \ --net-key=./full-id.key \ --sync-ctrl-file=./full-limit.txt \ --log-level:TRACE # Wait for several hours until enough blocks have been downloaded so that # snap sync data are available. The full 2 mio blocks are available if the # log ticker shows something like # # INF 2023-03-17 [..] Sync statistics (suspended) topics="full-tick" [..] persistent=#2000080 [..] # # where the persistent=#2000080 field might vary Start snap/1 client ------------------- # Note: When the snap/1 server has enough blocks, the client can be started. # Enter nimbus directory for snap/1 protocol server cd client # Tell nimbus to use this pivot block number. This number must be smaller # than the 2000000 written into the file full-limit.txt above. echo 600000 > snap/snap-update.txt # Tell nimbus to stop somewhere after 1000000 blocks have been downloaded # with full sync follow up after snap sync has completed (2nd line of # external setuip file.) echo 1000000 >> snap/snap-update.txt # Tell nimbus to use this hard coded peer enode. echo enode://192d7e7a302bd4ff27f48d7852621e0d3cb863a6dd67dd44e0314a25a3aa866837f0d2460b4444dc66e7b7a2cd56a2de1c31b2a2ba4e23549bf3ba3b0c4f2eb5@127.0.0.1:30319 > snap/full-servers.txt ./build/nimbus \ --tcp-port:30102 --nat=None --sync-mode=snap \ --protocols=none --discovery=none \ --static-peers-file=./full-servers.txt \ --sync-ctrl-file=./snap-update.txt \ --log-level:TRACE Modifications while the programs are syncing -------------------------------------------- # Increasing the number in the files full/full-limit.txt or # snap/snap-update.txt will be recognised while running. Decreasing # or removing will be ignored.