Changeset View
Changeset View
Standalone View
Standalone View
test/functional/abc-sync-chain.py
#!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||
# Copyright (c) 2018 The Bitcoin developers | # Copyright (c) 2018 The Bitcoin developers | ||||
# Distributed under the MIT software license, see the accompanying | # Distributed under the MIT software license, see the accompanying | ||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php. | # file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
""" | """ | ||||
Test that a node receiving many (potentially out of order) blocks exits | Test that a node receiving many (potentially out of order) blocks exits | ||||
initial block download (IBD; this occurs once it has passed minimumchainwork) | initial block download (IBD; this occurs once it has passed minimumchainwork) | ||||
and continues to sync without seizing. | and continues to sync without seizing. | ||||
""" | """ | ||||
import random | import random | ||||
from test_framework.blocktools import create_block, create_coinbase | from test_framework.blocktools import create_block, create_coinbase | ||||
from test_framework.mininode import (CBlockHeader, | from test_framework.mininode import (CBlockHeader, | ||||
NetworkThread, | NetworkThread, | ||||
NodeConn, | P2PInterface, | ||||
NodeConnCB, | |||||
msg_block, | msg_block, | ||||
msg_headers) | msg_headers) | ||||
from test_framework.test_framework import BitcoinTestFramework | from test_framework.test_framework import BitcoinTestFramework | ||||
from test_framework.util import assert_equal, wait_until, p2p_port | from test_framework.util import assert_equal, wait_until, p2p_port | ||||
NUM_IBD_BLOCKS = 50 | NUM_IBD_BLOCKS = 50 | ||||
class BaseNode(NodeConnCB): | class BaseNode(P2PInterface): | ||||
def send_header(self, block): | def send_header(self, block): | ||||
msg = msg_headers() | msg = msg_headers() | ||||
msg.headers = [CBlockHeader(block)] | msg.headers = [CBlockHeader(block)] | ||||
self.send_message(msg) | self.send_message(msg) | ||||
def send_block(self, block): | def send_block(self, block): | ||||
self.send_message(msg_block(block)) | self.send_message(msg_block(block)) | ||||
▲ Show 20 Lines • Show All 46 Lines • Show Last 20 Lines |