Inside Bitcoin
Opening the selected file…
Inside Bitcoin
Opening the selected file…
The code behind the network, with room to understand it.
Release published 2026-10-28 · Snapshot fetched 2026-11-01. Latest stable release at fetch time; development branches and Git history are excluded. Only the selected code window and visible folders load here.
1#!/usr/bin/env python32# Copyright (c) 2023-present The Bitcoin Core developers3# Distributed under the MIT software license, see the accompanying4# file COPYING or http://www.opensource.org/licenses/mit-license.php.6import threading7from test_framework.test_framework import BitcoinTestFramework8from random import randbytes11class NetDeadlockTest(BitcoinTestFramework):12def set_test_params(self):13self.setup_clean_chain = True14self.num_nodes = 216def run_test(self):17node0 = self.nodes[0]18node1 = self.nodes[1]20self.log.info("Simultaneously send a large message on both sides")21rand_msg = randbytes(4000000).hex()23thread0 = threading.Thread(target=node0.sendmsgtopeer, args=(0, "unknown", rand_msg))24thread1 = threading.Thread(target=node1.sendmsgtopeer, args=(0, "unknown", rand_msg))26thread0.start()27thread1.start()28thread0.join()29thread1.join()31self.log.info("Check whether a deadlock happened")32self.generate(node0, 1)33self.sync_blocks()36if __name__ == '__main__':37NetDeadlockTest(__file__).main()
Independent explanations by MyBitcoinExplorer. Not affiliated with or endorsed by Bitcoin Core. Guides are educational and do not replace the source or its tests.
Bitcoin Core source © its contributors, distributed under the MIT license. Original notices and bundled third-party licenses are retained in the source tree.