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

If a merchant accepts 0-confirmation transactions, he has to accept that the transaction can be reversed. So he only should do that if he trusts you for more than the amount you transferred to him. You won't get any bragging rights for doing that, since Bitcoin never promised to be secure without sufficient confirmations. That trust may come from different ...


10

Miners have a long-term investment in the health of the Bitcoin network. If Bitcoin collapses, then their expensive ASICs are worthless. Miners particularly need Bitcoins to remain valuable over the long term because their hardware produces Bitcoins over time. If nobody includes transactions in blocks, then Bitcoins would be useless and therefore worthless. ...


10

Currently no. Any "required fees" are enforced only by the client not the network or protocol. It is up to each individual miners which transactions to include in a block. If forced to make a choice a miner would choose a paying transaction over a nonpaying one however current transaction volume is so low that all transactions (paying and otherwise) can ...


10

When miners try to compute a block, they pick all transactions that they want to be added in the block, plus one coinbase (generation) transaction to their address. They may include any transaction they want to form a tree of transactions later hashed into the merkle root and referenced into the block's header. It is to note that for a block to be accepted ...


9

A miner can either verify transactions itself or assume that a transaction is valid as some nodes let him know they verified it. In either case, the miner can enter the transaction in the block he is working on. Note that in pool mining the pool decides what transactions are included, while in solo mining your own bitcoind client does so. An important ...


9

The current maximum size of a block is 1 MB. Current block sizes are about half that, so the absolute worse case scenario is that the block chain grows in size twice as fast as it does now. That's not particularly scary. It's easy to create more than 1 MB of transactions every 10 minutes. If anyone does that, some transactions can't be included in blocks. ...


8

A bitcoin node's (bitcoin's standard client acts as one) first function is to relay transactions on a best effort basis, it only relays valid transaction. The miner which also is a node will try to solve a block on the transaction it received, but in the end the miner has last word he can decide to arbitrarily discard some transaction (like one with no miner'...


8

A block may contain only one transaction: the coinbase transaction. However, the time it takes to mine a block is not affected by the number of transactions in that block, so mining blocks with fewer transactions does not benefit the miner. On the other hand, miners collect fees from the transactions they include in a block, so by including more transactions ...


7

Bitcoin's security rests on the assumption that the majority of the hashing power follows the protocol. If instead miners/pools break protocol for a quick buck by switching to a conflicting transaction which is clearly a double-spend attempt, this assumption no longer fully holds. One can only hope that the mining pool (or any block issuing agent) will ...


7

When a node receives two conflicting transactions, it will only relay the first one that it received, dropping the other. If one transaction fully propagates through the network before the other is sent, the first will prevent the second from ever reaching any miner nodes. If both transactions are sent at roughly the same time, the network will be in ...


6

Do you look on the blockchain ? No, because the blockchain only has confirmed transactions. Instead, the miner looks at its memory pool. It's named that because they are forgotten when the miner shuts down.


6

The miner looks into the transactions insofar as they have been digitally signed. This is a public key / private key cryptography pairing that performs the role of your signature on a check. Without this digital signature, a transaction is not considered valid and will not be included in the block calculation. The miner's job is then to amass transactions ...


6

Blocks can contain whatever is valid, anything beyond that is up to the miner to decide. Including no transactions other than the coinbase transaction is valid, and there is no way of having a rule where this is not the case (was there transactions to include at that point in time?). Miners will absolutely not wait for transactions to be available to mine, ...


6

This is not a full answer, but a partial answer somebody may use as a stepping stone to craft a complete answer. E.g. blockchain.info shows both "received time" and the time of the block a transaction was included in. It appears to me that the "11 minutes" in the "Included in Blocks" time for this transaction corresponds to the difference between "...


6

Miners pick transactions from the mempool which is the queue of unconfirmed transactions. When there are fewer transactions waiting than would fit into a block, the block will not be full. The miner could create more transactions themselves, but that would be only useful if they wanted to send one themselves already in the first place, otherwise they'd just ...


5

Basically, you can include whichever transactions you'd like. Currently most miners simply include all valid transactions they know of. It is cheap to do so. There is currently a limit of 1 MB per block, so as transaction volume reaches these levels, miners will typically want to include transactions that have the best ratio of fee / data size. As a more ...


5

According to an offshoot reply in bitcoin-talk it appears that the only mention of this protocol comes from Luke-Jr on Github. Another topic on bitcoin-talk mentioned that his pool, elegeius, implements this patch. https://bitcointalk.org/index.php?topic=173169.0 On the eligius FAQ page http://eligius.st/~gateway/faq/following-applies-transactions-being-...


5

input_value_in_base_units is the number of satoshis that the input is worth. One Bitcoin is worth 100,000,000 satoshis. input_age is how many blocks the input has been present for. An unconfirmed transaction has an age of 0, and one that has 100 confirmations has an age of 100.


5

The code you're looking for is in CreateNewBlock. The usual way transactions are added to a block is by sorting by priority. The priority of an input is the value being spent in the input multiplied by the number of confirmations it has. The priority of a transaction is the sum of all the priorities of the inputs. See this line: dPriority += (double)...


5

Your answer assumes different nodes can have a consistent view of the mempool. If that were the case, we wouldn't need a blockchain at all, whose sole purpose is establishing consistency between different nodes' view of history. The reason this is not possible is due to the laws of physics. A transaction tx1 broadcast in Australia, which conflicts with a ...


4

There's a very nice visualization of the most recent 4 hours' worth of transactions and whether they paid a fee or not, and how long it took each one to be confirmed: http://bitcoinstats.org/ Sometimes it looks like fee-offering transactions have a significant advantage over no-fee transactions, other times it looks random.


4

Miners have total freedom to choose which transactions they will include in their blocks. Most miners will include any transaction that reaches them (assuming it includes an appropriate fee) but nothing forces them to do so. But if a miner decides, for whatever reason, to omit a particular transaction, or if it's omitted by an accident of timing, no ...


4

We don't have to wait until a block is full, instead blocks are created in a random process. Whenever one is found, the miners directly try finding the next one. This takes roughly ten minutes, regardless of how many transactions are waiting to be confirmed. So, we'll all be waiting for the new block.


4

There are indeed many new transactions every second. The way miners deal with it is two-fold: If an appropriate proof-of-work is found on any merkle root, simply publish that block and any transactions that did not make it into the block go into the next block (assuming sufficient fees) Otherwise, calculate a new merkle root every so often (varies per miner,...


4

It is actually less likely to occur by the same miner. The reason for this is the fact that the miner that found the Block will have already validated it, thus it knows which transactions from the mempool were used. If the block is mined by another person their mining software might not have validated the previously mined block yet, which causes them to be ...


4

The whole mempool won't fit in a block; getblocktemplate returns enough transactions for a block. Blocks are, by default, limited to 750kb by policy, but many miners increase the size to the block limit of 1mb (which can be done by command-line flag). The specific piece of code that decides on the transactions that should be included in a block can be found ...


4

Yes, you are correct that miners get to decide whether to include transactions in their block that they're mining. The protocol itself doesn't force them to include any transactions. Instead, they have a financial incentive to include transactions because they can collect transaction fees and profit more. It's an interesting trade-off for them, because ...


4

Every node in the network has a mempool. The mempool contains unconfirmed transactions. Each mempool may be slightly different as they constitute a subset of all unconfirmed transactions in the network: Some might not have been relayed to a node, so he doesn't know about them, the node owner has set a higher minTxRelayFee and filtered out some transactions ...


4

The Bitcoin consensus rules do not require transactions to have a fee, so it's still theoretically possible for a free transaction to be confirm. It is, however, unlikely that any miners today will confirm free transactions. You can test this by sending yourself a free transaction to see if it confirms (but be sure you use a quality wallet, such as Bitcoin ...


3

DannyHamilton from bitcointalk says At a minimum. 0.0001 BTC per kilobyte. That would put you ahead of all transactions that are considered "low priority" which don't include a fee by all miners (and pools) that choose to use the reference implementation. Given how low the exchange rate has been lately, you might even consider a fee of 0.0005 BTC ...


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