Skip to content

Commit 80e47b1

Browse files
committed
Merge bitcoin/bitcoin#32096: Move some tests and documentation from testnet3 to testnet4
aa7a898 doc: use testnet4 in developer docs (Sjors Provoost) 6c217d2 test: use testnet4 in argsman test (Sjors Provoost) 7c200ec test: use testnet4 in key_io_valid.json (Sjors Provoost) d424bd5 test: drop unused testnet3 magic bytes (Sjors Provoost) 8cfc09f test: cover testnet4 magic in assumeutxo.py (Sjors Provoost) 4281e36 zmq: use testnet4 in zmq_sub.py example (Sjors Provoost) Pull request description: In preparation for dropping testnet3 entirely in #31974 this PR migrates a few things to testnet4: * the ZMQ examples * developer docs * various unit tests * the snapshot magic byte check in `feature_assumeutxo.py` It drops `testnet3` from `MAGIC_BYTES` in the test framework, since no test uses it. ACKs for top commit: fjahr: re-ACK aa7a898 maflcko: lgtm ACK aa7a898 🔊 hodlinator: re-ACK aa7a898 Tree-SHA512: 235f74273234e8fb2aedf0017dea5c16bb9813ec7a1f89a51abe85691f09830a5ead834115d7db0936e12e55a40bc81888856a8002fe507c1474407e77f8b9fb
2 parents 74d9598 + aa7a898 commit 80e47b1

File tree

6 files changed

+58
-62
lines changed

6 files changed

+58
-62
lines changed

contrib/zmq/zmq_sub.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
ZMQ example using python3's asyncio
88
99
Bitcoin should be started with the command line arguments:
10-
bitcoind -testnet -daemon \
10+
bitcoind -testnet4 -daemon \
1111
-zmqpubrawtx=tcp://127.0.0.1:28332 \
1212
-zmqpubrawblock=tcp://127.0.0.1:28332 \
1313
-zmqpubhashtx=tcp://127.0.0.1:28332 \

doc/developer-notes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@ to see it.
410410
### Signet, testnet, and regtest modes
411411

412412
If you are testing multi-machine code that needs to operate across the internet,
413-
you can run with either the `-signet` or the `-testnet` config option to test
413+
you can run with either the `-signet` or the `-testnet4` config option to test
414414
with "play bitcoins" on a test network.
415415

416416
If you are testing something that can run on one machine, run with the

src/test/argsman_tests.cpp

Lines changed: 25 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -648,23 +648,18 @@ BOOST_AUTO_TEST_CASE(util_GetChainTypeString)
648648
const auto regtest = std::make_pair("-regtest", ArgsManager::ALLOW_ANY);
649649
test_args.SetupArgs({testnet, testnet4, regtest});
650650

651-
const char* argv_testnet[] = {"cmd", "-testnet"};
652651
const char* argv_testnet4[] = {"cmd", "-testnet4"};
653652
const char* argv_regtest[] = {"cmd", "-regtest"};
654-
const char* argv_test_no_reg[] = {"cmd", "-testnet", "-noregtest"};
655-
const char* argv_both[] = {"cmd", "-testnet", "-regtest"};
653+
const char* argv_test_no_reg[] = {"cmd", "-testnet4", "-noregtest"};
654+
const char* argv_both[] = {"cmd", "-testnet4", "-regtest"};
656655

657-
// equivalent to "-testnet"
658-
// regtest in testnet section is ignored
659-
const char* testnetconf = "testnet=1\nregtest=0\n[test]\nregtest=1";
656+
// regtest in test network section is ignored
657+
const char* testnetconf = "testnet4=1\nregtest=0\n[testnet4]\nregtest=1";
660658
std::string error;
661659

662-
BOOST_CHECK(test_args.ParseParameters(0, argv_testnet, error));
660+
BOOST_CHECK(test_args.ParseParameters(0, argv_testnet4, error));
663661
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "main");
664662

665-
BOOST_CHECK(test_args.ParseParameters(2, argv_testnet, error));
666-
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "test");
667-
668663
BOOST_CHECK(test_args.ParseParameters(0, argv_testnet4, error));
669664
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "main");
670665

@@ -675,50 +670,50 @@ BOOST_AUTO_TEST_CASE(util_GetChainTypeString)
675670
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "regtest");
676671

677672
BOOST_CHECK(test_args.ParseParameters(3, argv_test_no_reg, error));
678-
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "test");
673+
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "testnet4");
679674

680675
BOOST_CHECK(test_args.ParseParameters(3, argv_both, error));
681676
BOOST_CHECK_THROW(test_args.GetChainTypeString(), std::runtime_error);
682677

683-
BOOST_CHECK(test_args.ParseParameters(0, argv_testnet, error));
678+
BOOST_CHECK(test_args.ParseParameters(0, argv_testnet4, error));
684679
test_args.ReadConfigString(testnetconf);
685-
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "test");
680+
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "testnet4");
686681

687-
BOOST_CHECK(test_args.ParseParameters(2, argv_testnet, error));
682+
BOOST_CHECK(test_args.ParseParameters(2, argv_testnet4, error));
688683
test_args.ReadConfigString(testnetconf);
689-
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "test");
684+
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "testnet4");
690685

691686
BOOST_CHECK(test_args.ParseParameters(2, argv_regtest, error));
692687
test_args.ReadConfigString(testnetconf);
693688
BOOST_CHECK_THROW(test_args.GetChainTypeString(), std::runtime_error);
694689

695690
BOOST_CHECK(test_args.ParseParameters(3, argv_test_no_reg, error));
696691
test_args.ReadConfigString(testnetconf);
697-
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "test");
692+
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "testnet4");
698693

699694
BOOST_CHECK(test_args.ParseParameters(3, argv_both, error));
700695
test_args.ReadConfigString(testnetconf);
701696
BOOST_CHECK_THROW(test_args.GetChainTypeString(), std::runtime_error);
702697

703-
// check setting the network to test (and thus making
704-
// [test] regtest=1 potentially relevant) doesn't break things
705-
test_args.SelectConfigNetwork("test");
698+
// check setting the network to testnet4 (and thus making
699+
// [testnet4] regtest=1 potentially relevant) doesn't break things
700+
test_args.SelectConfigNetwork("testnet4");
706701

707-
BOOST_CHECK(test_args.ParseParameters(0, argv_testnet, error));
702+
BOOST_CHECK(test_args.ParseParameters(0, argv_testnet4, error));
708703
test_args.ReadConfigString(testnetconf);
709-
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "test");
704+
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "testnet4");
710705

711-
BOOST_CHECK(test_args.ParseParameters(2, argv_testnet, error));
706+
BOOST_CHECK(test_args.ParseParameters(2, argv_testnet4, error));
712707
test_args.ReadConfigString(testnetconf);
713-
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "test");
708+
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "testnet4");
714709

715710
BOOST_CHECK(test_args.ParseParameters(2, argv_regtest, error));
716711
test_args.ReadConfigString(testnetconf);
717712
BOOST_CHECK_THROW(test_args.GetChainTypeString(), std::runtime_error);
718713

719714
BOOST_CHECK(test_args.ParseParameters(2, argv_test_no_reg, error));
720715
test_args.ReadConfigString(testnetconf);
721-
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "test");
716+
BOOST_CHECK_EQUAL(test_args.GetChainTypeString(), "testnet4");
722717

723718
BOOST_CHECK(test_args.ParseParameters(3, argv_both, error));
724719
test_args.ReadConfigString(testnetconf);
@@ -739,7 +734,7 @@ BOOST_AUTO_TEST_CASE(util_GetChainTypeString)
739734
//
740735
// - Combining SoftSet and ForceSet calls.
741736
//
742-
// - Testing "main" and "test" network values to make sure settings from network
737+
// - Testing "main" and "testnet4" network values to make sure settings from network
743738
// sections are applied and to check for mainnet-specific behaviors like
744739
// inheriting settings from the default section.
745740
//
@@ -956,11 +951,11 @@ BOOST_FIXTURE_TEST_CASE(util_ChainMerge, ChainMergeTestingSetup)
956951
TestArgsManager parser;
957952
LOCK(parser.cs_args);
958953
parser.AddArg("-regtest", "regtest", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
959-
parser.AddArg("-testnet", "testnet", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
954+
parser.AddArg("-testnet4", "testnet4", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
960955

961-
auto arg = [](Action action) { return action == ENABLE_TEST ? "-testnet=1" :
962-
action == DISABLE_TEST ? "-testnet=0" :
963-
action == NEGATE_TEST ? "-notestnet=1" :
956+
auto arg = [](Action action) { return action == ENABLE_TEST ? "-testnet4=1" :
957+
action == DISABLE_TEST ? "-testnet4=0" :
958+
action == NEGATE_TEST ? "-notestnet4=1" :
964959
action == ENABLE_REG ? "-regtest=1" :
965960
action == DISABLE_REG ? "-regtest=0" :
966961
action == NEGATE_REG ? "-noregtest=1" : nullptr; };
@@ -1024,7 +1019,7 @@ BOOST_FIXTURE_TEST_CASE(util_ChainMerge, ChainMergeTestingSetup)
10241019
// Results file is formatted like:
10251020
//
10261021
// <input> || <output>
1027-
BOOST_CHECK_EQUAL(out_sha_hex, "9e60306e1363528bbc19a47f22bcede88e5d6815212f18ec8e6cdc4638dddab4");
1022+
BOOST_CHECK_EQUAL(out_sha_hex, "c0e33aab0c74e040ddcee9edad59e8148d8e1cacb3cccd9ea1a1f485cb6bad21");
10281023
}
10291024

10301025
BOOST_AUTO_TEST_CASE(util_ReadWriteSettings)

src/test/data/key_io_valid.json

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@
1919
"mzK2FFDEhxqHcmrJw1ysqFkVyhUULo45hZ",
2020
"76a914ce28b26c57472737f5c3561a1761185bd8589a4388ac",
2121
{
22-
"chain": "test",
22+
"chain": "testnet4",
2323
"isPrivkey": false
2424
}
2525
],
2626
[
2727
"2NC2hEhe28ULKAJkW5MjZ3jtTMJdvXmByvK",
2828
"a914ce0bba75891ff9ec60148d4bd4a09ee2dc5c933187",
2929
{
30-
"chain": "test",
30+
"chain": "testnet4",
3131
"isPrivkey": false
3232
}
3333
],
@@ -85,7 +85,7 @@
8585
"92ZdE5HoLafywnTBbzPxbvRmp75pSfzvdU3XaZGh1cToipgdHVh",
8686
"80c32d81e91bdea04cd7a3819b32275fc3298af4c7ec87eb0099527d041ced5c",
8787
{
88-
"chain": "test",
88+
"chain": "testnet4",
8989
"isCompressed": false,
9090
"isPrivkey": true
9191
}
@@ -94,7 +94,7 @@
9494
"cV83kKisF3RQSvXbUCm9ox3kaz5JjEUBWcx8tNydfGJcyeUxuH47",
9595
"e0fcd4ce4e3d0e3de091f21415bb7cd011fac288c42020a879f28c2a4387df9b",
9696
{
97-
"chain": "test",
97+
"chain": "testnet4",
9898
"isCompressed": true,
9999
"isPrivkey": true
100100
}
@@ -175,7 +175,7 @@
175175
"tb1qcrh3yqn4nlleplcez2yndq2ry8h9ncg3qh7n54",
176176
"0014c0ef1202759fff90ff19128936814321ee59e111",
177177
{
178-
"chain": "test",
178+
"chain": "testnet4",
179179
"isPrivkey": false,
180180
"tryCaseFlip": true
181181
}
@@ -184,7 +184,7 @@
184184
"tb1quyl9ujpgwr2chdzdnnalen48sup245vdfnh2jxhsuq3yx80rrwlq5hqfe4",
185185
"0020e13e5e482870d58bb44d9cfbfccea78702aad18d4ceea91af0e022431de31bbe",
186186
{
187-
"chain": "test",
187+
"chain": "testnet4",
188188
"isPrivkey": false,
189189
"tryCaseFlip": true
190190
}
@@ -193,7 +193,7 @@
193193
"tb1p35n52jy6xkm4wd905tdy8qtagrn73kqdz73xe4zxpvq9t3fp50aqk3s6gz",
194194
"51208d2745489a35b75734afa2da43817d40e7e8d80d17a26cd4460b0055c521a3fa",
195195
{
196-
"chain": "test",
196+
"chain": "testnet4",
197197
"isPrivkey": false,
198198
"tryCaseFlip": true
199199
}
@@ -202,7 +202,7 @@
202202
"tb1rgv5m6uvdk3kc7qsuz0c79v88ycr5w4wa",
203203
"53104329bd718db46d8f021c13f1e2b0e726",
204204
{
205-
"chain": "test",
205+
"chain": "testnet4",
206206
"isPrivkey": false,
207207
"tryCaseFlip": true
208208
}
@@ -299,15 +299,15 @@
299299
"n4YNbYuFdPwFrxSP8sjHFbAhUbLMUiY9jE",
300300
"76a914fc8f9851f3c1e4719cd0b8e4816dd4e88c72e52888ac",
301301
{
302-
"chain": "test",
302+
"chain": "testnet4",
303303
"isPrivkey": false
304304
}
305305
],
306306
[
307307
"2NAeQVZayzVFAtgeC3iYJsjpjWDmsDph71A",
308308
"a914bedc797342c03fd7a346c4c7857ca03d467013b687",
309309
{
310-
"chain": "test",
310+
"chain": "testnet4",
311311
"isPrivkey": false
312312
}
313313
],
@@ -365,7 +365,7 @@
365365
"921M1RNxghFcsVGqAJksQVbSgx36Yz4u6vebfz1wDujNvgNt93B",
366366
"3777b341c45e2a9b9bf6bfb71dc7d129f64f1b9406ed4f93ade8f56065f1b732",
367367
{
368-
"chain": "test",
368+
"chain": "testnet4",
369369
"isCompressed": false,
370370
"isPrivkey": true
371371
}
@@ -374,7 +374,7 @@
374374
"cNEnbfF2fcxmmCLWqMAaq6fxJvVkwMbyU3kCbpQznz4Z1j6TZDGb",
375375
"1397b0d4a03e1ab2c54dd9af99ce1ecbfb90c80a58886da95e1181a55703d96b",
376376
{
377-
"chain": "test",
377+
"chain": "testnet4",
378378
"isCompressed": true,
379379
"isPrivkey": true
380380
}
@@ -455,7 +455,7 @@
455455
"tb1ql4k5ayv7p7w0t0ge7tpntgpkgw53g2payxkszr",
456456
"0014fd6d4e919e0f9cf5bd19f2c335a03643a914283d",
457457
{
458-
"chain": "test",
458+
"chain": "testnet4",
459459
"isPrivkey": false,
460460
"tryCaseFlip": true
461461
}
@@ -464,7 +464,7 @@
464464
"tb1q9jx3x2qqdpempxrcfgyrkjd5fzeacaqj4ua7cs7fe2sfd2wdaueq5wn26y",
465465
"00202c8d1328006873b098784a083b49b448b3dc7412af3bec43c9caa096a9cdef32",
466466
{
467-
"chain": "test",
467+
"chain": "testnet4",
468468
"isPrivkey": false,
469469
"tryCaseFlip": true
470470
}
@@ -473,7 +473,7 @@
473473
"tb1pdswckwd9ym5yf5eyzg8j4jjwnzla8y0tf9cp7aasfkek0u29sz9qfr00yf",
474474
"51206c1d8b39a526e844d324120f2aca4e98bfd391eb49701f77b04db367f145808a",
475475
{
476-
"chain": "test",
476+
"chain": "testnet4",
477477
"isPrivkey": false,
478478
"tryCaseFlip": true
479479
}
@@ -482,7 +482,7 @@
482482
"tb1r0ecpfxg2udhtc556gqrpwwhk4sw3f0kc",
483483
"53107e7014990ae36ebc529a4006173af6ac",
484484
{
485-
"chain": "test",
485+
"chain": "testnet4",
486486
"isPrivkey": false,
487487
"tryCaseFlip": true
488488
}
@@ -579,15 +579,15 @@
579579
"mwgS2HRbjyfYxFnR1nF9VKLvmdgMfFBmGq",
580580
"76a914b14ce7070b53cb0e4b5b5f6e253e876990aeca2e88ac",
581581
{
582-
"chain": "test",
582+
"chain": "testnet4",
583583
"isPrivkey": false
584584
}
585585
],
586586
[
587587
"2MwBVrJQ76BdaGD76CTmou8cZzQYLpe4NqU",
588588
"a9142b2c149cde619eae3d7fe995243b76a3417541aa87",
589589
{
590-
"chain": "test",
590+
"chain": "testnet4",
591591
"isPrivkey": false
592592
}
593593
],

test/functional/feature_assumeutxo.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,11 @@
2323
from test_framework.messages import (
2424
CBlockHeader,
2525
from_hex,
26+
MAGIC_BYTES,
27+
MAX_MONEY,
2628
msg_headers,
27-
tx_from_hex,
2829
ser_varint,
29-
MAX_MONEY,
30+
tx_from_hex,
3031
)
3132
from test_framework.p2p import (
3233
P2PInterface,
@@ -102,15 +103,15 @@ def expected_error(msg):
102103
self.log.info(" - snapshot file with mismatching network magic")
103104
invalid_magics = [
104105
# magic, name, real
105-
[0xf9beb4d9, "main", True],
106-
[0x0b110907, "test", True],
107-
[0x0a03cf40, "signet", True],
108-
[0x00000000, "", False],
109-
[0xffffffff, "", False],
106+
[MAGIC_BYTES["mainnet"], "main", True],
107+
[MAGIC_BYTES["testnet4"], "testnet4", True],
108+
[MAGIC_BYTES["signet"], "signet", True],
109+
[0x00000000.to_bytes(4, 'big'), "", False],
110+
[0xffffffff.to_bytes(4, 'big'), "", False],
110111
]
111112
for [magic, name, real] in invalid_magics:
112113
with open(bad_snapshot_path, 'wb') as f:
113-
f.write(valid_snapshot_contents[:7] + magic.to_bytes(4, 'big') + valid_snapshot_contents[11:])
114+
f.write(valid_snapshot_contents[:7] + magic + valid_snapshot_contents[11:])
114115
if real:
115116
assert_raises_rpc_error(parsing_error_code, f"Unable to parse metadata: The network of the snapshot ({name}) does not match the network of this node (regtest).", node.loadtxoutset, bad_snapshot_path)
116117
else:

test/functional/test_framework/messages.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,10 @@
7878
DEFAULT_MEMPOOL_EXPIRY_HOURS = 336 # hours
7979

8080
MAGIC_BYTES = {
81-
"mainnet": b"\xf9\xbe\xb4\xd9", # mainnet
82-
"testnet3": b"\x0b\x11\x09\x07", # testnet3
83-
"regtest": b"\xfa\xbf\xb5\xda", # regtest
84-
"signet": b"\x0a\x03\xcf\x40", # signet
81+
"mainnet": b"\xf9\xbe\xb4\xd9",
82+
"testnet4": b"\x1c\x16\x3f\x28",
83+
"regtest": b"\xfa\xbf\xb5\xda",
84+
"signet": b"\x0a\x03\xcf\x40",
8585
}
8686

8787
def sha256(s):

0 commit comments

Comments
 (0)