58

Some people recommended that I leave my Bitcoin client open because it helps the network.

Apart from the security implications, why should I do this? I thought that miners were the ones responsible for validating transactions and including them in the blockchain. What role does the Bitcoin client play in the network?

33

Bitcoin is a peer-to-peer network, which means that the clients not only receive the blocks from other clients, but send out the blocks to other clients. (You may notice the "connections" number in the bottom right of the original client. You can think of this as "peers" in a torrent client). So yes, by having your client open you are technically helping relay the recent blocks out across the network faster than they would get their otherwise, but there is really no reason to keep a client running all the time.

At one point, the client also doubled as a CPU miner, but we are far past the point where that is useful from a security point of view.

  • 1
    I accept as correct, but David Schwartz's answer is worth checking for some additional details and limitations. – nmat Sep 2 '11 at 4:01
  • @lemonginger, What do you mean by "but we are far past the point where that is useful from a security point of view"? – Pacerier May 23 '14 at 14:43
45

I would add two points to those already mentioned: First, if you cannot accept inbound connections (because you are behind NAT or have specifically disabled them) you won't really be helping the network. Second, if you are running any version earlier than 0.3.24, you could actually be harming the network, due to a bug in those versions.

For some reason that isn't well-understood, the Bitcoin peer-to-peer network is consistently short of available inbound connection slots. This makes it more difficult for newly-started clients to establish a resilient connection to the Bitcoin network. If you can accept inbound connections, leaving your client running helps reduce this problem.

  • Thanks. It would help if you could also indicate the impacts of running short of available inbound slots. – nealmcb Aug 31 '11 at 20:24
  • 2
    If you have compiled bitcoin with UPNP support (the pre-packaged version has this) and your router supports it, you can accept inbound connections even behind NAT – wumpus Sep 1 '11 at 11:17
  • 4
    UPnP was enabled by default in the pre-compiled Windows client because the problem of the lack of inbound connection capacity was so severe. Many people, including myself, consider this a questionable decision. – David Schwartz Sep 1 '11 at 11:20
  • @DavidSchwartz. Why is it a questionable decision. The risk of UPnP comes from the router not the clinet. i.e. user installs malicious software on computer and uses UPnP to modify firewall to allow attacker inbound access and then notifies attacker of vulnerable system. However Bitcoin client creates no risk. If uPnP is turned off the feature does nothing (client can't force a uPnp connection when disabled in router). If UPnp is enabled the system is already at risk (how much is subject to debate). Personally I think the risk is overstated for most systems. – DeathAndTaxes Oct 17 '11 at 21:43
  • 2
    It's questionable because a program shouldn't assume the right to open a port in a UPnP setup. That's something a program should request permission to do. Also, there were political issues involving that decision and competing suggestions that I don't think were resolved in a good way. – David Schwartz Oct 17 '11 at 22:18
-1

Turning your client off gives it a chance to fall behind the network. The client is so bad at downloading the block chain from other clients, that if you fall more than few days behind, you'll have to download a copy of the block chain from the nightly archive in order to catch up.

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.