Skip to content

Commit f22bca6

Browse files
committed
Merge bitcoin/bitcoin#29636: test: #29007 follow ups
9a44a20 init: clarify -test error (0xb10c) 3047c3e addrman: drop /*deterministic=*/ comment (0xb10c) 89b84ea test: check that addrman seeding is successful (0xb10c) Pull request description: A few, small follow-ups to #29007. See commit messages for details. ACKs for top commit: maflcko: lgtm ACK 9a44a20 stratospher: tested ACK 9a44a20. mzumsande: Code Review ACK 9a44a20 Tree-SHA512: 987245e035da08fa7fe541a1dc3b7c2d90f703a6f9813875048d286335c63ffa5201db702a3f368087c00fa02c3fdafb06cf54dc7a92922749a94588b1500e98
2 parents c122318 + 9a44a20 commit f22bca6

File tree

3 files changed

+16
-12
lines changed

3 files changed

+16
-12
lines changed

src/addrdb.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ util::Result<std::unique_ptr<AddrMan>> LoadAddrman(const NetGroupManager& netgro
195195
auto check_addrman = std::clamp<int32_t>(args.GetIntArg("-checkaddrman", DEFAULT_ADDRMAN_CONSISTENCY_CHECKS), 0, 1000000);
196196
bool deterministic = HasTestOption(args, "addrman"); // use a deterministic addrman only for tests
197197

198-
auto addrman{std::make_unique<AddrMan>(netgroupman, /*deterministic=*/deterministic, /*consistency_check_ratio=*/check_addrman)};
198+
auto addrman{std::make_unique<AddrMan>(netgroupman, deterministic, /*consistency_check_ratio=*/check_addrman)};
199199

200200
const auto start{SteadyClock::now()};
201201
const auto path_addr{args.GetDataDirNet() / "peers.dat"};
@@ -204,15 +204,15 @@ util::Result<std::unique_ptr<AddrMan>> LoadAddrman(const NetGroupManager& netgro
204204
LogPrintf("Loaded %i addresses from peers.dat %dms\n", addrman->Size(), Ticks<std::chrono::milliseconds>(SteadyClock::now() - start));
205205
} catch (const DbNotFoundError&) {
206206
// Addrman can be in an inconsistent state after failure, reset it
207-
addrman = std::make_unique<AddrMan>(netgroupman, /*deterministic=*/deterministic, /*consistency_check_ratio=*/check_addrman);
207+
addrman = std::make_unique<AddrMan>(netgroupman, deterministic, /*consistency_check_ratio=*/check_addrman);
208208
LogPrintf("Creating peers.dat because the file was not found (%s)\n", fs::quoted(fs::PathToString(path_addr)));
209209
DumpPeerAddresses(args, *addrman);
210210
} catch (const InvalidAddrManVersionError&) {
211211
if (!RenameOver(path_addr, (fs::path)path_addr + ".bak")) {
212212
return util::Error{strprintf(_("Failed to rename invalid peers.dat file. Please move or delete it and try again."))};
213213
}
214214
// Addrman can be in an inconsistent state after failure, reset it
215-
addrman = std::make_unique<AddrMan>(netgroupman, /*deterministic=*/deterministic, /*consistency_check_ratio=*/check_addrman);
215+
addrman = std::make_unique<AddrMan>(netgroupman, deterministic, /*consistency_check_ratio=*/check_addrman);
216216
LogPrintf("Creating new peers.dat because the file version was not compatible (%s). Original backed up to peers.dat.bak\n", fs::quoted(fs::PathToString(path_addr)));
217217
DumpPeerAddresses(args, *addrman);
218218
} catch (const std::exception& e) {

src/init.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1031,7 +1031,7 @@ bool AppInitParameterInteraction(const ArgsManager& args)
10311031

10321032
if (args.IsArgSet("-test")) {
10331033
if (chainparams.GetChainType() != ChainType::REGTEST) {
1034-
return InitError(Untranslated("-test=<option> should only be used in functional tests"));
1034+
return InitError(Untranslated("-test=<option> can only be used with regtest"));
10351035
}
10361036
const std::vector<std::string> options = args.GetArgs("-test");
10371037
for (const std::string& option : options) {

test/functional/rpc_net.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,18 @@ def seed_addrman(node):
4545
""" Populate the addrman with addresses from different networks.
4646
Here 2 ipv4, 2 ipv6, 1 cjdns, 2 onion and 1 i2p addresses are added.
4747
"""
48-
node.addpeeraddress(address="1.2.3.4", tried=True, port=8333)
49-
node.addpeeraddress(address="2.0.0.0", port=8333)
50-
node.addpeeraddress(address="1233:3432:2434:2343:3234:2345:6546:4534", tried=True, port=8333)
51-
node.addpeeraddress(address="2803:0:1234:abcd::1", port=45324)
52-
node.addpeeraddress(address="fc00:1:2:3:4:5:6:7", port=8333)
53-
node.addpeeraddress(address="pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion", tried=True, port=8333)
54-
node.addpeeraddress(address="nrfj6inpyf73gpkyool35hcmne5zwfmse3jl3aw23vk7chdemalyaqad.onion", port=45324, tried=True)
55-
node.addpeeraddress(address="c4gfnttsuwqomiygupdqqqyy5y5emnk5c73hrfvatri67prd7vyq.b32.i2p", port=8333)
48+
# These addresses currently don't collide with a deterministic addrman.
49+
# If the addrman positioning/bucketing is changed, these might collide
50+
# and adding them fails.
51+
success = { "success": True }
52+
assert_equal(node.addpeeraddress(address="1.2.3.4", tried=True, port=8333), success)
53+
assert_equal(node.addpeeraddress(address="2.0.0.0", port=8333), success)
54+
assert_equal(node.addpeeraddress(address="1233:3432:2434:2343:3234:2345:6546:4534", tried=True, port=8333), success)
55+
assert_equal(node.addpeeraddress(address="2803:0:1234:abcd::1", port=45324), success)
56+
assert_equal(node.addpeeraddress(address="fc00:1:2:3:4:5:6:7", port=8333), success)
57+
assert_equal(node.addpeeraddress(address="pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion", tried=True, port=8333), success)
58+
assert_equal(node.addpeeraddress(address="nrfj6inpyf73gpkyool35hcmne5zwfmse3jl3aw23vk7chdemalyaqad.onion", port=45324, tried=True), success)
59+
assert_equal(node.addpeeraddress(address="c4gfnttsuwqomiygupdqqqyy5y5emnk5c73hrfvatri67prd7vyq.b32.i2p", port=8333), success)
5660

5761

5862
class NetTest(BitcoinTestFramework):

0 commit comments

Comments
 (0)