@@ -67,6 +67,8 @@ def set_test_params(self):
67
67
self .extra_args = [['-txreconciliation' ]]
68
68
69
69
def run_test (self ):
70
+ # Check everything concerning *sending* SENDTXRCNCL
71
+ # First, *sending* to *inbound*.
70
72
self .log .info ('SENDTXRCNCL sent to an inbound' )
71
73
peer = self .nodes [0 ].add_p2p_connection (SendTxrcnclReceiver (), send_version = True , wait_for_verack = True )
72
74
assert peer .sendtxrcncl_msg_received
@@ -119,8 +121,46 @@ def run_test(self):
119
121
assert not peer .sendtxrcncl_msg_received
120
122
self .nodes [0 ].disconnect_p2ps ()
121
123
122
- self .restart_node (0 , ["-txreconciliation" ])
124
+ # Now, *sending* to *outbound*.
125
+ self .log .info ('SENDTXRCNCL sent to an outbound' )
126
+ peer = self .nodes [0 ].add_outbound_p2p_connection (
127
+ SendTxrcnclReceiver (), wait_for_verack = True , p2p_idx = 0 , connection_type = "outbound-full-relay" )
128
+ assert peer .sendtxrcncl_msg_received
129
+ assert_equal (peer .sendtxrcncl_msg_received .version , 1 )
130
+ self .nodes [0 ].disconnect_p2ps ()
123
131
132
+ self .log .info ('SENDTXRCNCL should not be sent if block-relay-only' )
133
+ peer = self .nodes [0 ].add_outbound_p2p_connection (
134
+ SendTxrcnclReceiver (), wait_for_verack = True , p2p_idx = 0 , connection_type = "block-relay-only" )
135
+ assert not peer .sendtxrcncl_msg_received
136
+ self .nodes [0 ].disconnect_p2ps ()
137
+
138
+ self .log .info ("SENDTXRCNCL should not be sent if feeler" )
139
+ peer = self .nodes [0 ].add_outbound_p2p_connection (P2PFeelerReceiver (), p2p_idx = 0 , connection_type = "feeler" )
140
+ assert not peer .sendtxrcncl_msg_received
141
+ self .nodes [0 ].disconnect_p2ps ()
142
+
143
+ self .log .info ("SENDTXRCNCL should not be sent if addrfetch" )
144
+ peer = self .nodes [0 ].add_outbound_p2p_connection (
145
+ SendTxrcnclReceiver (), wait_for_verack = True , p2p_idx = 0 , connection_type = "addr-fetch" )
146
+ assert not peer .sendtxrcncl_msg_received
147
+ self .nodes [0 ].disconnect_p2ps ()
148
+
149
+ self .log .info ('SENDTXRCNCL not sent if -txreconciliation flag is not set' )
150
+ self .restart_node (0 , [])
151
+ peer = self .nodes [0 ].add_p2p_connection (SendTxrcnclReceiver (), send_version = True , wait_for_verack = True )
152
+ assert not peer .sendtxrcncl_msg_received
153
+ self .nodes [0 ].disconnect_p2ps ()
154
+
155
+ self .log .info ('SENDTXRCNCL not sent if blocksonly is set' )
156
+ self .restart_node (0 , ["-txreconciliation" , "-blocksonly" ])
157
+ peer = self .nodes [0 ].add_p2p_connection (SendTxrcnclReceiver (), send_version = True , wait_for_verack = True )
158
+ assert not peer .sendtxrcncl_msg_received
159
+ self .nodes [0 ].disconnect_p2ps ()
160
+
161
+ # Check everything concerning *receiving* SENDTXRCNCL
162
+ # First, receiving from *inbound*.
163
+ self .restart_node (0 , ["-txreconciliation" ])
124
164
self .log .info ('valid SENDTXRCNCL received' )
125
165
peer = self .nodes [0 ].add_p2p_connection (PeerNoVerack (), send_version = True , wait_for_verack = False )
126
166
with self .nodes [0 ].assert_debug_log (["received: sendtxrcncl" ]):
@@ -163,7 +203,7 @@ def run_test(self):
163
203
old_version_msg .nServices = P2P_SERVICES
164
204
old_version_msg .relay = 1
165
205
peer .send_message (old_version_msg )
166
- with self .nodes [0 ].assert_debug_log (['Ignore unexpected txreconciliation signal from peer=2 ' ]):
206
+ with self .nodes [0 ].assert_debug_log (['Ignore unexpected txreconciliation signal' ]):
167
207
peer .send_message (create_sendtxrcncl_msg ())
168
208
self .nodes [0 ].disconnect_p2ps ()
169
209
@@ -180,49 +220,14 @@ def run_test(self):
180
220
peer .send_message (msg_verack ())
181
221
self .nodes [0 ].disconnect_p2ps ()
182
222
183
- self .log .info ('SENDTXRCNCL sent to an outbound' )
184
- peer = self .nodes [0 ].add_outbound_p2p_connection (
185
- SendTxrcnclReceiver (), wait_for_verack = True , p2p_idx = 0 , connection_type = "outbound-full-relay" )
186
- assert peer .sendtxrcncl_msg_received
187
- assert_equal (peer .sendtxrcncl_msg_received .version , 1 )
188
- self .nodes [0 ].disconnect_p2ps ()
189
-
190
- self .log .info ('SENDTXRCNCL should not be sent if block-relay-only' )
191
- peer = self .nodes [0 ].add_outbound_p2p_connection (
192
- SendTxrcnclReceiver (), wait_for_verack = True , p2p_idx = 0 , connection_type = "block-relay-only" )
193
- assert not peer .sendtxrcncl_msg_received
194
- self .nodes [0 ].disconnect_p2ps ()
195
-
196
- self .log .info ("SENDTXRCNCL should not be sent if feeler" )
197
- peer = self .nodes [0 ].add_outbound_p2p_connection (P2PFeelerReceiver (), p2p_idx = 0 , connection_type = "feeler" )
198
- assert not peer .sendtxrcncl_msg_received
199
- self .nodes [0 ].disconnect_p2ps ()
200
-
201
- self .log .info ("SENDTXRCNCL should not be sent if addrfetch" )
202
- peer = self .nodes [0 ].add_outbound_p2p_connection (
203
- SendTxrcnclReceiver (), wait_for_verack = True , p2p_idx = 0 , connection_type = "addr-fetch" )
204
- assert not peer .sendtxrcncl_msg_received
205
- self .nodes [0 ].disconnect_p2ps ()
206
-
223
+ # Now, *receiving* from *outbound*.
207
224
self .log .info ('SENDTXRCNCL if block-relay-only triggers a disconnect' )
208
225
peer = self .nodes [0 ].add_outbound_p2p_connection (
209
226
PeerNoVerack (), wait_for_verack = False , p2p_idx = 0 , connection_type = "block-relay-only" )
210
227
with self .nodes [0 ].assert_debug_log (["we indicated no tx relay; disconnecting" ]):
211
228
peer .send_message (create_sendtxrcncl_msg ())
212
229
peer .wait_for_disconnect ()
213
230
214
- self .log .info ('SENDTXRCNCL not sent if -txreconciliation flag is not set' )
215
- self .restart_node (0 , [])
216
- peer = self .nodes [0 ].add_p2p_connection (SendTxrcnclReceiver (), send_version = True , wait_for_verack = True )
217
- assert not peer .sendtxrcncl_msg_received
218
- self .nodes [0 ].disconnect_p2ps ()
219
-
220
- self .log .info ('SENDTXRCNCL not sent if blocksonly is set' )
221
- self .restart_node (0 , ["-txreconciliation" , "-blocksonly" ])
222
- peer = self .nodes [0 ].add_p2p_connection (SendTxrcnclReceiver (), send_version = True , wait_for_verack = True )
223
- assert not peer .sendtxrcncl_msg_received
224
- self .nodes [0 ].disconnect_p2ps ()
225
-
226
231
227
232
if __name__ == '__main__' :
228
233
SendTxRcnclTest ().main ()
0 commit comments