TCP hole punching for Bitcoin nodes behind home NATs?

Posted by willcl-ark

May 18, 2026/14:52 UTC

The recent exploration into enhancing Bitcoin connectivity employs a novel "sidecar" approach, leveraging @sipa's holeroulette server. This innovative method does not necessitate modifications to the core Bitcoin software. A demonstration of this concept has been made available on GitHub, showcasing a sidecar script that efficiently interfaces with a matchmaking server to facilitate peer connections. The complete demo can be viewed and explored here.

In this setup, the matchmaking server plays a pivotal role by pairing peers, designating roles as either initiator or receiver. Following successful pairing, the peers perform a hole-punching process, allowing them to directly connect. The initiator then executes a bitcoin-cli addnode command, which may be automated or manual, to establish the network connection. This connection is uniquely proxied through the sidecar script on both ends, making each node perceive the other as a local entity with an address like 127.0.0.1.

While the implementation showcases promising results, it relies on a third-party server for its matchmaking process. For those interested in testing or further development, the default server configuration supports a signet client, and detailed instructions are provided for setting up and initiating the sidecar script under these conditions.

Link to Raw Post
Bitcoin Logo

TLDR

Join Our Newsletter

We’ll email you summaries of the latest discussions from high signal bitcoin sources, like bitcoin-dev, lightning-dev, and Delving Bitcoin.

Explore all Products

ChatBTC imageBitcoin searchBitcoin TranscriptsSaving SatoshiDecoding BitcoinWarnet
Built with 🧡 by the Bitcoin Dev Project
View our public visitor count

We'd love to hear your feedback on this project.

Give Feedback