chaintope / bitcoinrb

The implementation of the bitcoin protocol for ruby.
MIT License
61 stars 19 forks source link

Handshake must be established only after verack message is sent and received #10

Closed Yamaguchi closed 6 years ago

Yamaguchi commented 6 years ago

BitcoinCoreのフルノードは、VerAck受信前にsendheadersなどのメッセージを受信した場合、エラーとして処理している。 bitcoinrbではノードへVerAckを送信する前にハンドシェイク完了する処理を行い、続けてsendheadersメッセージを送信していた。このため、タイミングによってはノード側でエラーとなっていた。

VerAckメッセージを送受信が完了した時点でハンドシェイクの処理を続行するように修正しました。