1

OK, firstly, Ken Sheriff (the guy who mined Bitcoin using pencil and paper) has posted some fantastic Bitcoin articles on his blog.

In "Using Bitcoins the Hard Way" he writes (emphasis added):

It turns out that actually using the Bitcoin protocol is harder than I expected. As you will see, the protocol is a bit of a jumble: it uses big-endian numbers, little-endian numbers, fixed-length numbers, variable-length numbers, custom encodings, DER encoding, and a variety of cryptographic algorithms, seemingly arbitrarily. As a result, there's a lot of annoying manipulation to get data into the right format.

The second complication with using the protocol directly is that being cryptographic, it is very unforgiving. If you get one byte wrong, the transaction is rejected with no clue as to where the problem is.

The final difficulty I encountered is that the process of signing a transaction is much more difficult than necessary, with a lot of details that need to be correct. In particular, the version of a transaction that gets signed is very different from the version that actually gets used.

Obviously working through Ken's Python files helps to understand the varying instances of appending bytes, changing endianness and the various other complicated procedures used for sending a transaction in raw hex. Likewise, the following are useful:

  1. Protocol Specification @ Bitcoin Wiki
  2. Graphical Address Generator @ RoyalFork
  3. Ken Sheriff's Python code used in association with this post

My question: how does one go about learning the Bitcoin protocol by practising with the Testnet? (What resources are recommended to help formulate a raw transaction to send over the Bitcoin (Testnet) network?)

1

Bitcoin protocol is VERY simple. You haven't to read tons of manuals and study for years.

My point of view is (answrering your question) :

  • Write down on the piece of paper what you want to do.
  • Take your preferrable programming language (C++/Python/Delphi/Java/whatever)
  • Use internet sources only as referal information. Do not copy-paste large pieces

Of course,

  • USE TESTNET FOR EXPERIMENTS! NOT THE MAIN NETWORK!
  • It's actually a very good idea! Bitcoin mining with pencil and paper (linked in my question) was probably an exercise Sheriff won't soon forget given the time spent! It's very true though that for some reason it's not as easy to retain digital notes vs written notes (GenXer perhaps?) – Wizard Of Ozzie Oct 3 '14 at 6:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.