1

I'm trying to send a raw bitcoin transaction through a raw socket connection in python. To debug I'm using wireshark to sniff the packets.

Wireshark figures out that the packet is for Bitcoin and that it's a 'version' message, and gets the first couple fields right, but then neglects the checksum field and instead assigns what should be the checksum to the protocol version, throwing everything else off. I can't seem to get to the bottom of it.

Other message types, like 'tx', include the checksum but have other issues (I'll get to later). Any ideas why wireshark isn't picking up on the checksum for the version message?

5
  • Does Wireshark correctly parse transactions sent by the standard Bitcoin client? Commented May 24, 2014 at 17:47
  • I think the issue might be an old bitcoin dissector, since checksums were only added into the version msg recently. building from source now with updates dissector. don't have the cpp-client right now so can't check.
    – Ethan
    Commented May 24, 2014 at 18:07
  • I believe the dissector for Bitcoin is broke in Wireshark, there are more issues.
    – Jori
    Commented May 24, 2014 at 18:47
  • super. is there an alternative. how can I debug my packets?
    – Ethan
    Commented May 24, 2014 at 19:39
  • 1
    Yes, the Bitcoin plugin for Wireshark is very old and doesn't include some types of messages. Your best bet is to just filter by the port and do the work manually, the types are identified correctly and are not encrypted so it's fairly easy going.
    – user13413
    Commented May 25, 2014 at 9:32

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.