I'm looking for a good explanation or reference on the peer to peer aspects of the two main bitcoin actors- the clients(wallets) and miners.

Satoshi's white paper, in section 5. Network, gives a very high level overview of the steps to run on the network, yet what I'm looking for is a description of the handshake sequences, how the peers broadcast, collects new transactions, and how they request missed blocks.

I've read and somewhat understand the protocol at https://en.bitcoin.it/wiki/Protocol_specification I also have a solid understanding of the crypto, ECDSA, SHA-256, RIPEMD-160, Merkle trees, and Hashcash (and a bit of RPOW) so no need to cover that in particular.

What would be really helpful is a sequence diagram, if anyone knows of one, and a paper or article that goes into more detail than the whitepaper.

Any help, beyond "read the **'ing source code' would be great ;-)

  • added a bit more detail about what it is specifically that I'm looking for.... – Gene M. Apr 28 '13 at 6:50
  • 1
    You wouldn't be the first person to ask for formal documentation of the protocol. – Stephen Gornick Apr 28 '13 at 18:26
  • 1
    Gene, I'm going to discuss the P2P protocol sequence in great detail for the Bitcoin Education Project's course; however, the lectures won't be up until July or August. Until then, I would contact one of the devs and ask for their documentation. – Charles Hoskinson May 28 '13 at 14:08
  • Hi Charles, I look forward to your lectures, but in fact I've moved past this point since I've asked the question. I've found some diagrams and created some of my own, in fact. – Gene M. Jun 1 '13 at 19:00

Your question is rather vague, what do you really want to know?

Bitcoins peer-to-peer nature comes from the fact that no single entity holds the database (the block chain), but every client in the network does.

You misstate that Bitcoin has two main actors. In fact, miners are just like other clients. Every client in the network has the possibility to broadcast a new block it has found. The difference with miners is that they are actually trying to find such a block to publish.

Since the block chain is peer-to-peer, all updates to it will have to be broadcast to all clients as well. These update consist of blocks and transactions.

Whenever someone built a valid block to append to the current block chain, it broadcasts it so that every other client can verify it. If these clients accept the block, it will be added to their block chain. New blocks always refer to their previous block so that clients that did not receive one, or mistakenly accepted a malicious block, can always get the right blocks from the network.

Transactions, as well, are broadcast to all clients where they are validated. Most clients do not have to do anything with these transaction, only those that mine do. Clients that mine bundle all the valid transactions they received into the next block they are trying to build. When they succeed in building the block, these transactions are stored in the block and broadcast to be included in other clients' block chain.

One essential property of Bitcoins peer-to-peer nature is that you can only stop it from existing if you can stop all the nodes. As long as one node exists, "Bitcoin" exists.

| improve this answer | |
  • 1
    Hi Steven, I will update my question with more detail. Your observation about miners and clients is interesting. While so far I still see them having different roles, thus are different Actors but not a distinct class of citizen, or species, I won't go too far down that route to avoid going off topic. – Gene M. Apr 28 '13 at 6:36

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.