@@ -67,6 +67,8 @@ def set_test_params(self):
6767 self .extra_args = [['-txreconciliation' ]]
6868
6969 def run_test (self ):
70+ # Check everything concerning *sending* SENDTXRCNCL
71+ # First, *sending* to *inbound*.
7072 self .log .info ('SENDTXRCNCL sent to an inbound' )
7173 peer = self .nodes [0 ].add_p2p_connection (SendTxrcnclReceiver (), send_version = True , wait_for_verack = True )
7274 assert peer .sendtxrcncl_msg_received
@@ -119,8 +121,46 @@ def run_test(self):
119121 assert not peer .sendtxrcncl_msg_received
120122 self .nodes [0 ].disconnect_p2ps ()
121123
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 ()
123131
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" ])
124164 self .log .info ('valid SENDTXRCNCL received' )
125165 peer = self .nodes [0 ].add_p2p_connection (PeerNoVerack (), send_version = True , wait_for_verack = False )
126166 with self .nodes [0 ].assert_debug_log (["received: sendtxrcncl" ]):
@@ -163,7 +203,7 @@ def run_test(self):
163203 old_version_msg .nServices = P2P_SERVICES
164204 old_version_msg .relay = 1
165205 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' ]):
167207 peer .send_message (create_sendtxrcncl_msg ())
168208 self .nodes [0 ].disconnect_p2ps ()
169209
@@ -180,49 +220,14 @@ def run_test(self):
180220 peer .send_message (msg_verack ())
181221 self .nodes [0 ].disconnect_p2ps ()
182222
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*.
207224 self .log .info ('SENDTXRCNCL if block-relay-only triggers a disconnect' )
208225 peer = self .nodes [0 ].add_outbound_p2p_connection (
209226 PeerNoVerack (), wait_for_verack = False , p2p_idx = 0 , connection_type = "block-relay-only" )
210227 with self .nodes [0 ].assert_debug_log (["we indicated no tx relay; disconnecting" ]):
211228 peer .send_message (create_sendtxrcncl_msg ())
212229 peer .wait_for_disconnect ()
213230
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-
226231
227232if __name__ == '__main__' :
228233 SendTxRcnclTest ().main ()
0 commit comments