12 votes
Accepted

Why is each transaction broadcast twice in the Bitcoin network?

I assume Satoshi here refers to the broadcast of the standalone transaction to the network as the first one, and the broadcast of a valid block containing the transaction as the second one. Compact ...
Antoine Poinsot's user avatar
9 votes
Accepted

Improvements that could be made to how bitcoin propagates its transactions and blocks?

The answer partially depends on on what you mean by "how bitcoin propagates" and "improvements"-- Fibre transmits blocks vanishingly close to the lowest latency possible, but at the expense of using ...
G. Maxwell's user avatar
  • 7,727
9 votes
Accepted

Stop bitcoin-qt from retrying transaction

Yes, Bitcoin Core will try resending the transaction until it confirms or is replaced. You can make it forget the transaction by starting Bitcoin Core with the option -zapwallettxes=<mode> ...
Murch's user avatar
  • 74.5k
8 votes
Accepted

Why does the mined block differ so much from the block template?

The version of the mined block is 0x2fffe000 instead of 536870912. Many miners employ a strategy known as overt Asicboost. This strategy requires modifying the version number like the nonce, so we ...
Ava Chow's user avatar
  • 70k
7 votes

Is Bitcoin's gossip protocol perfect?

Given some time for network latency, do messages reach absolutely all connected peers and how long it takes for them to do that? Usually, standard transactions that pay a sufficient fee to be ...
Pieter Wuille's user avatar
7 votes

Sending transactions to mining nodes only?

In theory, that would be ideal if your goal is solely getting the transaction to mine. Hurts permissionless mining However it does require knowing how to reach miners directly. Mining is designed to ...
Pieter Wuille's user avatar
6 votes

How is this 0 sat tx even possible? How can I do them?

Segwit has nothing to do with minimum fee rates. There is no consensus rule for a minimum feerate. There is a policy rule for a minimum relay fee. Transactions must pay a feerate greater than or equal ...
Ava Chow's user avatar
  • 70k
5 votes
Accepted

Since Bitcoin has no central system, where do network request go?

Bitcoin is a peer-to-peer gossip flood network. Whenever a Bitcoin participant creates a transaction, their wallet software submits it to its peer nodes. These peers then relay it to their peers in ...
Murch's user avatar
  • 74.5k
5 votes
Accepted

Why does the bitcoin client send transaction's txid and wtxid in 'inv' process?

Wtxid relay was introduced in BIP339, where you'll find more details on the rationale and design. Whenever a node supports BIP339, it will advertize that to its peers, through the wtxidrelay ...
Pieter Wuille's user avatar
4 votes

Is the Bitcoin Core software managed by a central authority?

It is propagated server-to-server and, with luck, eventually gets to a bunch of miners who will include it in a block. There is no central authority -- individual servers are free to propagate ...
David Schwartz's user avatar
4 votes

How do block explorers determine propagation through nodes/P2P protocol?

They don't, essentially, the numbers given for this sort of thing are generally meaningless. Many of these services attempt to connect to a large portion of the listening network and gain insight ...
Claris's user avatar
  • 15.4k
4 votes

Why does the mined block differ so much from the block template?

Going out on a limb here, but I would guess that your node is not running 24/7. Full nodes only rebroadcast transactions once when they first hear about them. If your node is only online ...
Murch's user avatar
  • 74.5k
4 votes
Accepted

How throughput, latency, finality, waiting time are defined?

I think some of these terms (e.g. latency) might be used in multiple different Bitcoin settings and hence have different meanings but I can give you my understanding of how each term is typically used....
Michael Folkson's user avatar
3 votes
Accepted

How does block propagation delay not cause accidental forks?

How does bitcoin prevent accidental forks like this? It doesn't. Bitcoin make little effort to prevent forks at a technical level, instead relying on the fact that when a fork does happen, it can be ...
Raghav Sood's user avatar
3 votes

What metadata can be captured by a single miner? What about a group of miners?

The sender, recipient and transferred amount are already public information and readily available in the blockchain. The only special access that miners have is that they could log the ip address of ...
Murch's user avatar
  • 74.5k
3 votes
Accepted

Transaction propagation criteria vs mempool inclusion cirteria

There are also the 'standardness rules', which are separate from 'validity rules'. So this means a transaction can be either valid and standard, valid but non-standard, or invalid. A node can choose ...
chytrik's user avatar
  • 18.1k
3 votes
Accepted

How do block explorers determine propagation through nodes/P2P protocol?

Blockchain explorers run nodes which have connections to other nodes. They may have hundreds of connections. They likely also run multiple nodes for both redundancy (in case one node fails, they are ...
Ava Chow's user avatar
  • 70k
3 votes
Accepted

In Bitcoin Core, are compact blocks pre-filled with more than just the coinbase?

Adding more advanced prediction of what transactions are useful to prefill was probably intended as a TODO when Compact Blocks were implemented, but to the best of my knowledge, nobody has worked on ...
Pieter Wuille's user avatar
3 votes
Accepted

spending unconfirmed utxos which exist in the tail of mempool queue

The mempool of a node is limited in size (300MB by default). Once it's filled and the node keeps receiving transactions it will start evicting some transactions. The transactions less attractive to ...
Antoine Poinsot's user avatar
3 votes

spending unconfirmed utxos which exist in the tail of mempool queue

Since transactions bidding 1 ṩ/vB were dropped from almost all mempools in the past few months, most nodes would no longer know about the transaction that created the UTXO you are trying to spend (the ...
Murch's user avatar
  • 74.5k
2 votes

How to determine if transaction is going to propagate?

Verify() verifies if the transaction is properly signed. Since Verify() doesn't really tell us if a transaction will successfully propagate It is either untrue or you found a bug. node....
nopara73's user avatar
  • 806
2 votes

Is Bitcoin's gossip protocol perfect?

Generally, all full nodes should receive your transaction within a few minutes easily. There are a few exceptions, though. Non-standard transactions will only be propagated once they are included in ...
Murch's user avatar
  • 74.5k
2 votes
Accepted

How do I get network propagation of an unconfirmed transaction? (e.g. the number of nodes which have seen it)

You cannot reliably get such information. The best that you can do is ask individual nodes whether they have seen your transaction (by sending getdata messages and seeing if they respond) but even ...
Ava Chow's user avatar
  • 70k
2 votes

Is there a transaction propagation delay built in?

Yes, there is what is called transaction trickling. This is a mechanism to select a random peer for immediate forwarding of all transactions, while others receive the transaction after a random ...
cdecker's user avatar
  • 9,418
2 votes
Accepted

What happens to transactions in the mempool when their parent transaction expires?

Yes, this is an accurate description of the mempool behaviour. When a transaction is expired from the mempool, its descendants are as well. When txA gets dropped, so does txB. If we later re-broadcast ...
Antoine Poinsot's user avatar
1 vote

Since Bitcoin has no central system, where do network request go?

Each full Bitcoin node has what is known as "mempool". mempool is where transactions are stored in preparation for propagation into a proposed block during the mining process. It's somewhat ...
Woodstock's user avatar
  • 131
1 vote

What happens to transactions in the mempool when their parent transaction expires?

Such Transactions cannot be proceeded without output from their parents. Hence they are also removed from the mempool
Haseeb Saeed's user avatar
1 vote

Why is my mempool count so much lower than that of block explorers?

What does bitcoin-cli getmempoolinfo spit out? You may want to increase the maxmempool config value.
pox's user avatar
  • 79
1 vote
Accepted

How to determine the peer/node that created a transaction?

how do you determine if that peer created the transaction or if it is simply relaying the transaction You cannot, at least not with absolute certainty. This is by design: it helps preserve the ...
chytrik's user avatar
  • 18.1k

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