chaintope / bitcoinrb

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

Fix connection closing when receiving getdata #23

Closed Yamaguchi closed 6 years ago

Yamaguchi commented 6 years ago

When I tried to broadcast an invalid transaction through RPC request, SPV node received a get_data message from the remote peer.

I think that a receiving node(SPV node):

(1) SHOULD NOT close the connections to other peers. (2) SHOULD ignore any get_data messages (or respond correct data to the peer).

I, [2018-06-11T16:09:24.078488 #26357 #70270959459780]  INFO -- : process http request. command = sendrawtransaction
I, [2018-06-11T16:09:24.084998 #26357 #70270959459780]  INFO -- : send message tx
I, [2018-06-11T16:09:24.085229 #26357 #70270959459780]  INFO -- : send message tx
I, [2018-06-11T16:09:24.085364 #26357 #70270959459780]  INFO -- : send message tx
I, [2018-06-11T16:09:24.085497 #26357 #70270959459780]  INFO -- : send message tx
I, [2018-06-11T16:09:24.245564 #26357 #70270959457780]  INFO -- : [27.151.29.86:18333] process command getdata.
W, [2018-06-11T16:09:24.250078 #26357 #70270959457780]  WARN -- : unsupported command received. command: getdata, payload: 01010000409999999999999999999999999999999999999999999999999999999999999999
I, [2018-06-11T16:09:24.250211 #26357 #70270959457780]  INFO -- : close connection with 27.151.29.86:18333. with command getdata
I, [2018-06-11T16:09:24.250365 #26357 #70270895517200]  INFO -- : unbind. 27.151.29.86:18333
I, [2018-06-11T16:09:24.257979 #26357 #70270895517200]  INFO -- : unbind. 18.236.181.225:18333
I, [2018-06-11T16:09:24.264494 #26357 #70270895517200]  INFO -- : unbind. 159.203.183.112:18333
I, [2018-06-11T16:09:24.271078 #26357 #70270895517200]  INFO -- : unbind. 35.202.163.62:18333