v29.4-roots.3 · Commit 3: [PATCH 03/30] policy: restore conservative relay and network controls
test/functional/rpc_net.py
Before: test/functional/rpc_net.py · After: test/functional/rpc_net.py
File metadata
index 41ecbbed22d96b0f81c23bf29048b60e7e5c9203..f830d14a4c80197e9be68593b05a767ce96541ad 100755
Download original patch · Release notes
Diff rows 1–63 of 63. Line numbers refer to the original before/after files.
+ Added− RemovedUnmarked lines are context.
Scroll the code area horizontally to read long lines. The two line-number columns refer to before and after.
test/functional/rpc_net.py
CHANGED
|
@@ -37,7 +37,7 @@ def assert_net_servicesnames(servicesflag, servicenames):
|
|
|
37
37
|
"""
|
|
38
38
|
servicesflag_generated = 0
|
|
39
39
|
for servicename in servicenames:
|
|
40
|
-
servicesflag_generated |= getattr(test_framework.messages, 'NODE_' + servicename)
|
|
40
|
+
servicesflag_generated |= getattr(test_framework.messages, 'NODE_' + servicename.rstrip('?'))
|
|
41
41
|
assert servicesflag_generated == servicesflag
|
|
42
42
|
|
|
43
43
|
|
|
@@ -104,7 +104,8 @@ class NetTest(BitcoinTestFramework):
|
|
|
104
104
|
time_now = int(time.time())
|
|
105
105
|
peer_info = [x.getpeerinfo() for x in self.nodes]
|
|
106
106
|
# Verify last_block and last_transaction keys/values.
|
|
107
|
-
for node, peer, field in product(range(self.num_nodes), range(2), ['last_block', 'last_transaction']):
|
|
107
|
+
for node, peer, field in product(range(self.num_nodes), range(2),
|
|
108
|
+
['last_block', 'last_block_announcement', 'last_transaction']):
|
|
108
109
|
assert field in peer_info[node][peer].keys()
|
|
109
110
|
if peer_info[node][peer][field] != 0:
|
|
110
111
|
assert_approx(peer_info[node][peer][field], time_now, vspan=60)
|
|
@@ -117,6 +118,10 @@ class NetTest(BitcoinTestFramework):
|
|
|
117
118
|
# check the `servicesnames` field
|
|
118
119
|
for info in peer_info:
|
|
119
120
|
assert_net_servicesnames(int(info[0]["services"], 0x10), info[0]["servicesnames"])
|
|
121
|
+
# CPU accounting is optional, but when the platform records it, the
|
|
122
|
+
# operator-facing load value is a non-negative fraction of connection time.
|
|
123
|
+
if "cpu_load" in info[0]:
|
|
124
|
+
assert info[0]["cpu_load"] >= 0
|
|
120
125
|
|
|
121
126
|
assert_equal(peer_info[0][0]['connection_type'], 'inbound')
|
|
122
127
|
assert_equal(peer_info[0][1]['connection_type'], 'manual')
|
|
@@ -126,6 +131,7 @@ class NetTest(BitcoinTestFramework):
|
|
|
126
131
|
|
|
127
132
|
# Check dynamically generated networks list in getpeerinfo help output.
|
|
128
133
|
assert "(ipv4, ipv6, onion, i2p, cjdns, not_publicly_routable)" in self.nodes[0].help("getpeerinfo")
|
|
134
|
+
assert "cpu_load" in self.nodes[0].help("getpeerinfo")
|
|
129
135
|
|
|
130
136
|
self.log.info("Check getpeerinfo output before a version message was sent")
|
|
131
137
|
no_version_peer_id = 2
|
|
@@ -142,6 +148,7 @@ class NetTest(BitcoinTestFramework):
|
|
|
142
148
|
# The next two fields will vary for v2 connections because we send a rng-based number of decoy messages
|
|
143
149
|
peer_info.pop("bytesrecv")
|
|
144
150
|
peer_info.pop("bytessent")
|
|
151
|
+
peer_info.pop("cpu_load", None)
|
|
145
152
|
assert_equal(
|
|
146
153
|
peer_info,
|
|
147
154
|
{
|
|
@@ -158,12 +165,14 @@ class NetTest(BitcoinTestFramework):
|
|
|
158
165
|
"inbound": True,
|
|
159
166
|
"inflight": [],
|
|
160
167
|
"last_block": 0,
|
|
168
|
+
"last_block_announcement": 0,
|
|
161
169
|
"last_transaction": 0,
|
|
162
170
|
"lastrecv": 0 if not self.options.v2transport else no_version_peer_conntime,
|
|
163
171
|
"lastsend": 0 if not self.options.v2transport else no_version_peer_conntime,
|
|
164
172
|
"minfeefilter": Decimal("0E-8"),
|
|
165
173
|
"network": "not_publicly_routable",
|
|
166
|
-
"permissions": [],
|
|
174
|
+
"permissions": ['bloomfilter'],
|
|
175
|
+
"forced_inbound": False,
|
|
167
176
|
"presynced_headers": -1,
|
|
168
177
|
"relaytxes": False,
|
|
169
178
|
"services": "0000000000000000",
|
|
@@ -176,6 +185,7 @@ class NetTest(BitcoinTestFramework):
|
|
|
176
185
|
"timeoffset": 0,
|
|
177
186
|
"transport_protocol_type": "v1" if not self.options.v2transport else "v2",
|
|
178
187
|
"version": 0,
|
|
188
|
+
"misbehavior_score": 0,
|
|
179
189
|
},
|
|
180
190
|
)
|
|
181
191
|
no_version_peer.peer_disconnect()
|