Page MenuHomePhabricator

Move seed list vector operations into distinct compilation unit
Needs RevisionPublic

Authored by jasonbcox on Nov 9 2020, 22:35.

Details

Reviewers
deadalnix
Group Reviewers
Restricted Project
Summary

This will make it easier to use different fixed seeds for a given network at
compile time since the list length will no longer be known in this compilation
unit.

Test Plan
ninja bitcoind check
rm ~/.bitcoin/testnet3/peers.dat
./src/bitcoind -testnet -dnsseed=0

Wait 60 seconds and the node should start connecting to the fixed seeds.

python3 generate-seeds.py . > ../../src/chainparamsseeds.h

No uncommitted changes should be present.

Event Timeline

Fixup generate-seeds.py to match the rest of the changes

deadalnix requested changes to this revision.Nov 10 2020, 00:06
deadalnix added a subscriber: deadalnix.

This doesn't seems to be useful. This just adds initialization for no reason.

Just expose a function that return a vector and build the vector in the network specific layer.

This revision now requires changes to proceed.Nov 10 2020, 00:06

Define a function that returns the vector of seeds in the autogenerated code

jasonbcox retitled this revision from Change seed list type to vector to Move seed list vector operations into distinct compilation unit.Nov 10 2020, 20:08

Pass chain as an arg, similar to what was done in D8369

Remove header guards from what is now a source file

deadalnix requested changes to this revision.Nov 14 2020, 17:10
deadalnix added inline comments.
src/chainparamsseeds.cpp
137 ↗(On Diff #25686)

There is no reason to change this file in any way, except to move it and change scope guard accordingly. These addition are not auto generated anyways.

This revision now requires changes to proceed.Nov 14 2020, 17:10

Move the bulk of the implementation of FixedSeedsList into chainparams.cpp

The build failed due to an unexpected infrastructure outage. The administrators have been notified to investigate. Sorry for the inconvenience.

Tail of the build log:

[09:50:38] :	 [Step 1/1]  [0m [1;30mwallet_resendwallettransactions.py               | ○ Skipped | 0 s
[09:50:38] :	 [Step 1/1]  [0m [1;30mwallet_txn_clone.py                              | ○ Skipped | 0 s
[09:50:38] :	 [Step 1/1]  [0m [1;30mwallet_txn_clone.py --mineblock                  | ○ Skipped | 0 s
[09:50:38] :	 [Step 1/1]  [0m [1;30mwallet_txn_doublespend.py                        | ○ Skipped | 0 s
[09:50:38] :	 [Step 1/1]  [0m [1;30mwallet_txn_doublespend.py --mineblock            | ○ Skipped | 0 s
[09:50:38] :	 [Step 1/1]  [0m [1;30mwallet_watchonly.py                              | ○ Skipped | 0 s
[09:50:38] :	 [Step 1/1]  [0m [1;30mwallet_watchonly.py --usecli                     | ○ Skipped | 0 s
[09:50:38] :	 [Step 1/1]  [0m [1;30mwallet_zapwallettxes.py                          | ○ Skipped | 0 s
[09:50:38] :	 [Step 1/1]  [0m [1m
[09:50:38] :	 [Step 1/1] ALL                                              | ✓ Passed  | 363 s (accumulated)
[09:50:38] :	 [Step 1/1]  [0mRuntime: 73 s
[09:50:38] :	 [Step 1/1] 
[09:50:38] :	 [Step 1/1] [15/386] cd /work/contrib/devtools/chainparams && /usr/bin/python3.7 ./test_make_chainparams.py
[09:50:38] :	 [Step 1/1] .....
[09:50:38] :	 [Step 1/1] ----------------------------------------------------------------------
[09:50:38] :	 [Step 1/1] Ran 5 tests in 0.001s
[09:50:38] :	 [Step 1/1] 
[09:50:38] :	 [Step 1/1] OK
[09:50:38] :	 [Step 1/1] [18/386] Test Bitcoin RPC authentication...
[09:50:38] :	 [Step 1/1] ...
[09:50:38] :	 [Step 1/1] ----------------------------------------------------------------------
[09:50:38] :	 [Step 1/1] Ran 3 tests in 0.004s
[09:50:38] :	 [Step 1/1] 
[09:50:38] :	 [Step 1/1] OK
[09:50:38] :	 [Step 1/1] [24/386] Building CXX object src/test/CMakeFiles/test_bitcoin.dir/script_tests.cpp.o
[09:50:38] :	 [Step 1/1] In file included from /usr/include/boost/test/unit_test.hpp:19,
[09:50:38] :	 [Step 1/1]                  from ../../src/test/script_tests.cpp:30:
[09:50:38] :	 [Step 1/1] ../../src/test/script_tests.cpp: In member function ‘void script_tests::script_build::test_method()’:
[09:50:38] :	 [Step 1/1] ../../src/test/script_tests.cpp:541:22: note: variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without
[09:50:38] :	 [Step 1/1]  BOOST_AUTO_TEST_CASE(script_build) {
[09:50:38] :	 [Step 1/1]                       ^~~~~~~~~~~~
[09:50:38] :	 [Step 1/1] [153/386] Running avalanche test suite
[09:50:38] :	 [Step 1/1] PASSED: avalanche test suite
[09:50:38] :	 [Step 1/1] [155/386] Running seeder test suite
[09:50:38] :	 [Step 1/1] PASSED: seeder test suite
[09:50:38] :	 [Step 1/1] [165/386] Running pow test suite
[09:50:38] :	 [Step 1/1] PASSED: pow test suite
[09:50:38] :	 [Step 1/1] [174/386] Running bitcoin-qt test suite
[09:50:38] :	 [Step 1/1] PASSED: bitcoin-qt test suite
[09:50:38] :	 [Step 1/1] [385/386] Running bitcoin test suite
[09:50:38] :	 [Step 1/1] PASSED: bitcoin test suite
[09:50:38] :	 [Step 1/1] Build build-without-wallet completed successfully
[09:50:38] :	 [Step 1/1] Process exited with code 0
[09:50:42] :	 [Step 1/1] Waiting for 1 service processes to complete
[09:50:43] :	 [Step 1/1] Ant JUnit report watcher
[09:50:43] :		 [Ant JUnit report watcher] 5 reports found for paths:
[09:50:43] :		 [Ant JUnit report watcher] /home/teamcity/buildAgent/work/jailed-build/results/artifacts/junit/*.xml
[09:50:43] :		 [Ant JUnit report watcher] Successfully parsed
[09:50:43] :			 [Successfully parsed] 5 reports
[09:50:43]E: Ant JUnit report watcher
[09:50:43]E:	 [Ant JUnit report watcher] No reports found for paths:
[09:50:43]E:	 [Ant JUnit report watcher] +:results/test_bitcoin.xml
[09:50:43]E:	 [Ant JUnit report watcher] +:results/**/junit_results*.xml
[09:50:43] : Publishing internal artifacts (5s)
[09:50:48] :	 [Publishing internal artifacts] Publishing 1 file using [WebPublisher]
[09:50:48] :	 [Publishing internal artifacts] Publishing 1 file using [ArtifactsCachePublisher]
[09:50:43]W: Publishing artifacts (5s)
[09:50:43] :	 [Publishing artifacts] Collecting files to publish: [+:results/**/junit_results*.xml]
[09:50:43]W:	 [Publishing artifacts] Artifacts path 'results/**/junit_results*.xml' not found
[09:50:49] : Build finished

Tail of the build log:

[09:58:02] :	 [Step 1/1]  [0m [0;32mwallet_listtransactions.py                       | ✓ Passed  | 8 s
[09:58:02] :	 [Step 1/1]  [0m [0;32mwallet_multiwallet.py                            | ✓ Passed  | 15 s
[09:58:02] :	 [Step 1/1]  [0m [0;32mwallet_multiwallet.py --usecli                   | ✓ Passed  | 13 s
[09:58:02] :	 [Step 1/1]  [0m [0;32mwallet_reorgsrestore.py                          | ✓ Passed  | 3 s
[09:58:02] :	 [Step 1/1]  [0m [0;32mwallet_resendwallettransactions.py               | ✓ Passed  | 3 s
[09:58:02] :	 [Step 1/1]  [0m [0;32mwallet_txn_clone.py                              | ✓ Passed  | 2 s
[09:58:02] :	 [Step 1/1]  [0m [0;32mwallet_txn_clone.py --mineblock                  | ✓ Passed  | 4 s
[09:58:02] :	 [Step 1/1]  [0m [0;32mwallet_txn_doublespend.py                        | ✓ Passed  | 3 s
[09:58:02] :	 [Step 1/1]  [0m [0;32mwallet_txn_doublespend.py --mineblock            | ✓ Passed  | 4 s
[09:58:02] :	 [Step 1/1]  [0m [0;32mwallet_watchonly.py                              | ✓ Passed  | 1 s
[09:58:02] :	 [Step 1/1]  [0m [0;32mwallet_watchonly.py --usecli                     | ✓ Passed  | 1 s
[09:58:02] :	 [Step 1/1]  [0m [0;32mwallet_zapwallettxes.py                          | ✓ Passed  | 5 s
[09:58:02] :	 [Step 1/1]  [0m [1m
[09:58:02] :	 [Step 1/1] ALL                                              | ✓ Passed  | 947 s (accumulated)
[09:58:02] :	 [Step 1/1]  [0mRuntime: 190 s
[09:58:02] :	 [Step 1/1] 
[09:58:02] :	 [Step 1/1] [160/423] Running avalanche test suite
[09:58:02] :	 [Step 1/1] PASSED: avalanche test suite
[09:58:02] :	 [Step 1/1] [163/423] Running secp256k1 test suite
[09:58:02] :	 [Step 1/1] PASSED: secp256k1 test suite
[09:58:02] :	 [Step 1/1] [177/423] Running seeder test suite
[09:58:02] :	 [Step 1/1] PASSED: seeder test suite
[09:58:02] :	 [Step 1/1] [178/423] Test Bitcoin RPC authentication...
[09:58:02] :	 [Step 1/1] ...
[09:58:02] :	 [Step 1/1] ----------------------------------------------------------------------
[09:58:02] :	 [Step 1/1] Ran 3 tests in 0.010s
[09:58:02] :	 [Step 1/1] 
[09:58:02] :	 [Step 1/1] OK
[09:58:02] :	 [Step 1/1] [179/423] cd /work/contrib/devtools/chainparams && /usr/bin/python3.7 ./test_make_chainparams.py
[09:58:02] :	 [Step 1/1] .....
[09:58:02] :	 [Step 1/1] ----------------------------------------------------------------------
[09:58:02] :	 [Step 1/1] Ran 5 tests in 0.001s
[09:58:02] :	 [Step 1/1] 
[09:58:02] :	 [Step 1/1] OK
[09:58:02] :	 [Step 1/1] [189/423] Running pow test suite
[09:58:02] :	 [Step 1/1] PASSED: pow test suite
[09:58:02] :	 [Step 1/1] [413/423] Running bitcoin-qt test suite
[09:58:02] :	 [Step 1/1] PASSED: bitcoin-qt test suite
[09:58:02] :	 [Step 1/1] [422/423] Running bitcoin test suite
[09:58:02] :	 [Step 1/1] PASSED: bitcoin test suite
[09:58:02] :	 [Step 1/1] Build build-debug completed successfully
[09:58:13] :	 [Step 1/1] Process exited with code 0
[09:58:14] :	 [Step 1/1] Waiting for 1 service processes to complete
[09:58:14] :	 [Step 1/1] Ant JUnit report watcher
[09:58:14] :		 [Ant JUnit report watcher] 5 reports found for paths:
[09:58:14] :		 [Ant JUnit report watcher] /home/teamcity/buildAgent/work/jailed-build/results/artifacts/junit/*.xml
[09:58:14] :		 [Ant JUnit report watcher] Successfully parsed
[09:58:14] :			 [Successfully parsed] 5 reports
[09:58:14]E:	 [Step 1/1] Step Command Line failed
[09:58:14]E: Ant JUnit report watcher
[09:58:14]E:	 [Ant JUnit report watcher] No reports found for paths:
[09:58:14]E:	 [Ant JUnit report watcher] +:results/test_bitcoin.xml
[09:58:14]E:	 [Ant JUnit report watcher] +:results/**/junit_results*.xml
[09:58:14] : Publishing internal artifacts (2s)
[09:58:16] :	 [Publishing internal artifacts] Publishing 1 file using [WebPublisher]
[09:58:16] :	 [Publishing internal artifacts] Publishing 1 file using [ArtifactsCachePublisher]
[09:58:14]W: Publishing artifacts (2s)
[09:58:14] :	 [Publishing artifacts] Collecting files to publish: [+:results/**/junit_results*.xml]
[09:58:15]W:	 [Publishing artifacts] Artifacts path 'results/**/junit_results*.xml' not found
[09:58:18] : Build finished

Ignore the failures. One of the build agents was having a network issue and failed multiple builds.

deadalnix requested changes to this revision.Nov 25 2020, 16:23

I have a hard time believing that you wrote that and said to yourself "this is rally the best that can be done here". You know better can be done.

This revision now requires changes to proceed.Nov 25 2020, 16:23