Changeset View
Changeset View
Standalone View
Standalone View
test/functional/p2p_node_network_limited.py
Show All 12 Lines | from test_framework.messages import ( | ||||
msg_getdata, | msg_getdata, | ||||
msg_verack, | msg_verack, | ||||
NODE_BITCOIN_CASH, | NODE_BITCOIN_CASH, | ||||
NODE_BLOOM, | NODE_BLOOM, | ||||
NODE_NETWORK_LIMITED, | NODE_NETWORK_LIMITED, | ||||
) | ) | ||||
from test_framework.mininode import ( | from test_framework.mininode import ( | ||||
mininode_lock, | mininode_lock, | ||||
network_thread_join, | |||||
network_thread_start, | |||||
P2PInterface, | P2PInterface, | ||||
) | ) | ||||
from test_framework.test_framework import BitcoinTestFramework | from test_framework.test_framework import BitcoinTestFramework | ||||
from test_framework.util import ( | from test_framework.util import ( | ||||
assert_equal, | assert_equal, | ||||
connect_nodes_bi, | connect_nodes_bi, | ||||
disconnect_nodes, | disconnect_nodes, | ||||
sync_blocks, | sync_blocks, | ||||
Show All 36 Lines | def disconnect_all(self): | ||||
disconnect_nodes(self.nodes[1], self.nodes[2]) | disconnect_nodes(self.nodes[1], self.nodes[2]) | ||||
def setup_network(self): | def setup_network(self): | ||||
super(NodeNetworkLimitedTest, self).setup_network() | super(NodeNetworkLimitedTest, self).setup_network() | ||||
self.disconnect_all() | self.disconnect_all() | ||||
def run_test(self): | def run_test(self): | ||||
node = self.nodes[0].add_p2p_connection(P2PIgnoreInv()) | node = self.nodes[0].add_p2p_connection(P2PIgnoreInv()) | ||||
network_thread_start() | |||||
node.wait_for_verack() | node.wait_for_verack() | ||||
expected_services = NODE_BLOOM | NODE_BITCOIN_CASH | NODE_NETWORK_LIMITED | expected_services = NODE_BLOOM | NODE_BITCOIN_CASH | NODE_NETWORK_LIMITED | ||||
self.log.info("Check that node has signalled expected services.") | self.log.info("Check that node has signalled expected services.") | ||||
assert_equal(node.nServices, expected_services) | assert_equal(node.nServices, expected_services) | ||||
self.log.info("Check that the localservices is as expected.") | self.log.info("Check that the localservices is as expected.") | ||||
Show All 14 Lines | def run_test(self): | ||||
self.log.info( | self.log.info( | ||||
"Requesting block at height 2 (tip-289) must fail (ignored).") | "Requesting block at height 2 (tip-289) must fail (ignored).") | ||||
# first block outside of the 288+2 limit | # first block outside of the 288+2 limit | ||||
node.send_getdata_for_block(blocks[0]) | node.send_getdata_for_block(blocks[0]) | ||||
node.wait_for_disconnect(5) | node.wait_for_disconnect(5) | ||||
self.log.info("Check local address relay, do a fresh connection.") | self.log.info("Check local address relay, do a fresh connection.") | ||||
self.nodes[0].disconnect_p2ps() | self.nodes[0].disconnect_p2ps() | ||||
network_thread_join() | |||||
node1 = self.nodes[0].add_p2p_connection(P2PIgnoreInv()) | node1 = self.nodes[0].add_p2p_connection(P2PIgnoreInv()) | ||||
network_thread_start() | |||||
node1.wait_for_verack() | node1.wait_for_verack() | ||||
node1.send_message(msg_verack()) | node1.send_message(msg_verack()) | ||||
node1.wait_for_addr() | node1.wait_for_addr() | ||||
# must relay address with NODE_NETWORK_LIMITED | # must relay address with NODE_NETWORK_LIMITED | ||||
assert_equal(node1.firstAddrnServices, expected_services) | assert_equal(node1.firstAddrnServices, expected_services) | ||||
self.nodes[0].disconnect_p2ps() | self.nodes[0].disconnect_p2ps() | ||||
Show All 34 Lines |