Protocol
比特幣使用什麼 P2P 技術/協議來查找節點並在它們之間分發消息?
我想知道比特幣核心和比特幣的其他實現是否有標準/事實上的 P2P 庫/實現/規範?
比特幣有自己的使用 TCP 的自定義有線協議。對等點發現是通過地址謠言,其中連接的節點八卦其他潛在的可用對等點。當一個節點是新的並且沒有人可以八卦時,它們會對特定的主機名進行 DNS 查找,這些主機名提供了許多已知良好的對等方來建立傳出連接。如果 DNS 種子失敗並且沒有一個已知的對等節點是好的,比特幣核心節點將回退到一組硬編碼的對等節點作為最後的手段。
<https://bitcoin.org/en/developer-reference#p2p-network>
Bitcore、BitcoinJ 和 python-bitcoinlib 都分別在 JavaScript、Java 和 Python 中實現了有線協議的基本實現。與節點互動相當簡單,但不當行為(例如發送無效數據)會導致遠端對等方禁止您。