20
20
from test_framework .util import assert_equal
21
21
22
22
I2P_ADDR = "c4gfnttsuwqomiygupdqqqyy5y5emnk5c73hrfvatri67prd7vyq.b32.i2p"
23
+ ONION_ADDR = "pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion"
23
24
24
25
ADDRS = []
25
26
for i in range (10 ):
26
27
addr = CAddress ()
27
28
addr .time = int (time .time ()) + i
29
+ addr .port = 8333 + i
28
30
addr .nServices = P2P_SERVICES
29
- # Add one I2P address at an arbitrary position.
31
+ # Add one I2P and one onion V3 address at an arbitrary position.
30
32
if i == 5 :
31
33
addr .net = addr .NET_I2P
32
34
addr .ip = I2P_ADDR
35
+ addr .port = 0
36
+ elif i == 8 :
37
+ addr .net = addr .NET_TORV3
38
+ addr .ip = ONION_ADDR
33
39
else :
34
40
addr .ip = f"123.123.123.{ i % 256 } "
35
- addr .port = 8333 + i
36
41
ADDRS .append (addr )
37
42
38
43
@@ -52,6 +57,17 @@ def wait_for_addrv2(self):
52
57
self .wait_until (lambda : "addrv2" in self .last_message )
53
58
54
59
60
+ def calc_addrv2_msg_size (addrs ):
61
+ size = 1 # vector length byte
62
+ for addr in addrs :
63
+ size += 4 # time
64
+ size += 1 # services, COMPACTSIZE(P2P_SERVICES)
65
+ size += 1 # network id
66
+ size += 1 # address length byte
67
+ size += addr .ADDRV2_ADDRESS_LENGTH [addr .net ] # address
68
+ size += 2 # port
69
+ return size
70
+
55
71
class AddrTest (BitcoinTestFramework ):
56
72
def set_test_params (self ):
57
73
self .setup_clean_chain = True
@@ -71,9 +87,10 @@ def run_test(self):
71
87
self .log .info ('Check that addrv2 message content is relayed and added to addrman' )
72
88
addr_receiver = self .nodes [0 ].add_p2p_connection (AddrReceiver ())
73
89
msg .addrs = ADDRS
90
+ msg_size = calc_addrv2_msg_size (ADDRS )
74
91
with self .nodes [0 ].assert_debug_log ([
75
- 'received: addrv2 (159 bytes) peer=0' ,
76
- 'sending addrv2 (159 bytes) peer=1' ,
92
+ f 'received: addrv2 ({ msg_size } bytes) peer=0' ,
93
+ f 'sending addrv2 ({ msg_size } bytes) peer=1' ,
77
94
]):
78
95
addr_source .send_and_ping (msg )
79
96
self .nodes [0 ].setmocktime (int (time .time ()) + 30 * 60 )
0 commit comments