2

I'm trying to understand how transactions are broadcast, the time is synchronized, and the chain extended.

I have a wallet on OSX that required me to fully synchronize with the network. Contrasting with this is the BitMinter client that doesn't need the historic chain.

Can someone help me understand how a wallet and a miner work in a P2P environment with respect to

  • Network (port) requirements and what protocol
  • locating peers
  • The actions taken with each peer
4

A wallet is a way of storing your private and public keypairs. It is used by various clients to check your balance and create new transactions. A client usually listens on port 8333, and has 8 other ports open for outgoing TCP/IP connections. It finds peers through various means - exchanging info with other peers, using fallback nodes, seed nodes and so forth. Its main purpose is to exchange information with its peers about new blocks, transactions and the like in a peer-to-peer fashion.

A miner is an application connected to a mining pool. The mining pool runs its own client to get the latest information on blocks and transactions, as well as handling the creation of new blocks. The pools generally use port 8332 for communicating with their miners. It is a server that communicates with a lot of miners through the use of HTTP JSON RPC, and usually comes with a website of some sorts. The miners find the pool, and the pool doesn't care about peers (it has a client for that).

A miner is an application that runs on local mining rigs (computers with high-end GPUs and other dedicated devices). It communicates with a mining pool through HTTP JSON RPC calls. The miner connects to (usually) one pool of a predetermined address, but the getwork protocol facilitates the use of backup pool addresses. The miner is responsible for getting "work" from a pool, processing it, and submitting shares back to the pool. A miner does not care about its peers, just the pool it is connected to.

I hope that clears out all the problems you had. You might also be interested in checking out my master thesis on Bitcoin for more information on numerous subjects related to Bitcoin, mining pools and security.

  • Fantastic paper! I'll be sharing that with many people. I do have some follow up questions on topics that weren't clear to me I'll post as separate questions on SE. – Christopher Sep 17 '12 at 1:35
  • @makerofthings7 I'm glad you enjoy it, and feel free to ask anything, this is what this site is for:). – ThePiachu Sep 17 '12 at 3:50
  • OK :) - In section 4.4.5 ...What is a safe transaction? – Christopher Sep 17 '12 at 4:08
  • @makerofthings7 I think what I meant that IF RIPEMD-160 ever is considered compromised and unsafe, people should be using other transaction formats in order to send coins safely, for example by paying directly to a public key, rather than a Bitcoin address. – ThePiachu Sep 17 '12 at 4:19
  • Aah, I was thinking the same for secp256k.. since it is so bitcoin specific; though the paper didn't tell me when or how that was being used. I'll post that is a dedicated question. – Christopher Sep 17 '12 at 4:28

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.