Skip to content
Bitcoin Roots

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()