We’re rewarding the question askers & reputations are being recalculated! Read more.

Hot answers tagged

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 ...


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 ...


28

The Bitcoin P2P network The Bitcoin P2P network is a randomly-wired gossip network. This means that all nodes make arbitrary connections to other peers (using various ways to discover new addresses) using a custom TCP protocol, usually using port 8333. Typical nodes create 8 outgoing connections, and if publicly reachable, accept up to a few 100 incoming ...


18

This is not a thorough schooling on Tor and only shows how to configure it to work together with Bitcoin Core. Bitcoin Core includes Tor integration When Tor is correctly setup on your system, Bitcoin Core automatically identifies Tor and creates an anonymous service. Little configuration is required to be 'off the grid' and, just a tiny bit more to be ...


16

You can create a directory junction (as i did to move the BitCoin data folder), or you can specify a different data folder location: BitCoin-qt.exe -datadir=d:\BitCoinData Which will be the long-term solution.


16

First the "why it matters": Fibre (Fast Internet Bitcoin Relay Engine) is a protocol which attempts to deliver Bitcoin blocks around the world with delays as close to the physical limits as possible. This is very important because Bitcoin mining is intended to be a fair lottery: If you have x% of the hashrate you should find x% of the blocks, on average. ...


15

Bitcoin becomes very insecure if miners stop mining. Think of how easy a 51% attack would be to pull off. However, I disagree with your assumption that miners will stop. And certainly that if Bitcoin dies it would be because miners stop. I would instead think that miners would only stop if something else already killed Bitcoin. Bitcoin is designed to always ...


14

Typically connection counts of 10 or lower usually indicate that you are behind a router or firewall that is not configured properly. Try enabling UPnP from within the Bitcoin client's options dialog. If that doesn't work, try manually forwarding port 8333 to the computer which is running the Bitcoin client/daemon.


14

As long as the block reward is much higher than the transaction fees, this is totally not an issue: mining isn't an incremental process, it's a bruteforce probabilistic one. I.e. in a single moment your chance of solving a block isn't higher if you have been mining that same block for some time: the chance is always the same. Hence, once a block is relayed ...


12

Four factors affect this: 1) The size of the transaction. Smaller transactions get a lower priority. Abnormally small transactions look like spam. 2) The transaction fee. Abnormally low transaction fees may mean the transaction isn't even relayed. Miners have an incentive to include transactions with higher fees. 3) Luck. Some miners don't include any ...


12

The network has a moderate amount of protection against DoS attacks. If you flooded a single node with data from a single source, it would just drop you. You could reconnect, of course. You would need a lot of resources and effort to knock out a node, but it's possible to knock out a single node by overloading it. The owner of an attacked node could simply ...


12

Pruning is being considered, in fact, it was taken into account when designing the 0.8 database format. The unspent transaction outputs (which is the only essential piece of data necessary for validation) are already kept in a separate database, so technically removing old blocks is perfectly possible. It'll likely require some small changes to make sure the ...


12

C++ may be viewed by some as more suitable for Bitcoin use than Java which I2P currently heavily relies upon https://github.com/monero-project/kovri Kovri: To cover, veil, wrap (Esperanto). A secure, private, untraceable C++ implementation of the I2P anonymous network. Once complete this project should ease of integrating Bitcoin in both a private and ...


11

Network hashrate calculated using formula: H ~= h / t , where t is time that took to find X number of blocks and h is approximate number of hashes it should have taken to solve X number of blocks, h = X * (D * 2**256 / (0xffff * 2**208)) Wiki:Difficulty Bitcoin network hashrate stats available at bitcoinwatch.com and bitcoincharts.com .


11

Bitcoin is a so-called gossip network. They announce any new object to all of their peers (just the hash of the data). If the peer doesn't know the object yet, it asks for the full object. So it's certainly not a DHT or any smart organisation of data: every (full) node (eventually) learns about every block and transaction. They have to, there is no other way ...


11

Update: Coin Dance has an excellent table of node implementations with descriptions and links at the bottom of their Bitcoin Nodes Summary page. Below are the implementations I've found. I'm not sure if all of them qualify as full nodes. btcd (in Go, by Conformal Systems LLC) Bits of Proof (in Java, by bits of proof zrt.) bitcoinj has a fully verifying ...


11

Invertible Bloom lookup tables can be used in many different ways, but the first paper you linked to explicitly proposes to use them to find differences between two data sets stored on different hosts without transferring the entire data set from one of the hosts to the other. In context of Bitcoin, suppose that two nodes have just established a connection. ...


10

The standard Bitcoin client does not at this time support IPv6. Bitcoins.lc is a mining pool, and mining pools work by having an interface (such as PushPool) visible to the public which handles all the getwork stuff and various internals, miner tracking etc. This interface operates as a proxy to the actual bitcoin client and so the client itself can bind to ...


9

The current block size limit is 1MB, but this is likely to be changed in the future. Transactions are about 500B, so the current limit is 2000 transactions per block, or about 3 per second.


9

There are probably several reasons, but it's mostly historic. There is no inherent problem with just sending transaction id's. There is a disadvantage too, though, namely increased latency, which is not necessarily a problem when doing an initial sync, but it is not wanted when a fresh new block is propagating. In fact, this idea is part of BIP 37, which ...


9

I read briefly in a paper that there is some sort of transaction queue that the node keeps for each neighbor and that they will only select a random (?) amount of those transactions and send in an INV message to those nodes. Note that this is specific to Bitcoin Core. Other full node software may not exhibit this behavior. When Bitcoin Core receives a ...


8

You should get the best results if you port forward port 8333 to your laptop. It is also advised to leave your computer on for a long time the first time you connect to the network, as it has about 1GB of data to download and check. After that the operation should be easier.


8

The alternative currency Geist Geld is experimental and is trying to approach a maximum block rate (that's currently achievable), and has apparently settled upon a target block rate of 1 block per 15 seconds. However, the block rate doesn't necessarily make a substantial difference to how you would use a currency as you could still consider a small ...


8

A non-mining client will: Propagate transactions to other peers, including the mining pools. Propagate peer list, so everyone will have a wide list of peers to connect to. Propagate the blockchain. Help decentralise the network by doing all that. So it essentially takes the burden off the bigger nodes by sharing data. It is especially true for the block ...


8

No. The average time per confirmation will always be about 10 minutes (but it's possible that the variance will be lower in the future). And the number of confirmations required to prevent double-spending by an agent with a given hashrate will also not change (6 is an arbitrary number reflecting a "low enough" probability for someone with a "high enough" ...


8

One solution is to export (in your privacy) the private key connected to the address on which you received your Bitcoins (or simply all private keys). This can be done using a command line tool known as pywallet. Then, you can import this key (or all your keys) into another wallet. Browser-based wallets such as https://blockchain.info/wallet do not require ...


8

then you have 25 letters in base58, and that's like 17 bytes. 20, actually. So, you have to pay like 0.0001 BTC for the transaction fee, and after that you can add data to that transaction at a price of 17bytes per 1 satoshi, by sending satoshis to many addresses that contains the whole data. Imagine if we could store data there forever,.. and ...


8

Bitcoin has its own custom wire protocol using TCP. Peer discovery is by address rumoring, where connected nodes gossip about other potential available peers. When a node is new and has nobody to gossip with, they make a DNS lookup of specific hostnames which provide a number of known-good peers to make an outgoing connection to. If DNS seeds fail and none ...


8

One! Your full node will check every transaction and every block for validity while synchronizing. You therefore can be sure that whatever blockchain data your node accepts follows all rules of Bitcoin. If you are provided the correct blockchain, a single node will be able to provide all data for you to catch up with the network's blockchain tip. That said, ...


7

Essentially, almost none. But all of the problems aren't really particularly serious or the proposed solutions don't really help anyway. The latest version of the client doesn't use IRC by default, though it's still supported to help older clients find newer clients. Instead, DNS is used. But these really aren't points of failure because a list of known ...


Only top voted, non community-wiki answers of a minimum length are eligible