<p>Bitcoin uses a gossip protocol to transmit blocks and transactions. When you connect to the Bitcoin network, your wallet becomes a node on that network. It maintains one or more connections to other nodes. When you send a transaction, you send it to all of the nodes that you are connected to. Then they check the transaction against their node policy rules (which also typically include consensus rules). If it passes all of the checks, the node will store it locally and then broadcast the transaction to all of the nodes it is connected to. And so on and so forth until all nodes have heard the transaction.</p>

<p>The same happens with blocks except that they are only verified against the consensus rules, there are no local policy rules for blocks.</p>

<p>There are things done to prevent nodes from receiving the same transaction multiple times. Most nodes, when broadcasting a transaction, actually first announce to all of the nodes it is connected to that it has a transaction. Then those nodes must ask for that transaction before it is actually transmitted. This way nodes won't receive a transaction multiple times since they are asking for the transaction, not actually being sent it right away.</p>

CC BY-SA 3.0
2017-06-25T06:28:04.283Z
2017-06-25T08:06:26.963Z
2017-06-25T08:06:26.963Z
Ava Chow
<p>What is the underlying mechanism?</p>

<p>Do you transmit a message to a local node who then relays it? How does that relay work? I know about DNS seeding but then how does the rest of the relaying occur? If every node transmitted every transaction it received then that's a lot of network use and a lot of retransmitting the same message to the same nodes.</p>

<relay><transaction-propagation>
How does Bitcoin transmit transactions?
Rob
# How does Bitcoin transmit transactions?

(Asked by: username_0 on 2017-06-25)

What is the underlying mechanism?

Do you transmit a message to a local node who then relays it? How does that relay work? I know about DNS seeding but then how does the rest of the relaying occur? If every node transmitted every transaction it received then that's a lot of network use and a lot of retransmitting the same message to the same nodes.

**Tags:** relay, transaction-propagation


---

## 1 answers

### Answer by username_1 on 2017-06-25. Score: 1

Bitcoin uses a gossip protocol to transmit blocks and transactions. When you connect to the Bitcoin network, your wallet becomes a node on that network. It maintains one or more connections to other nodes. When you send a transaction, you send it to all of the nodes that you are connected to. Then they check the transaction against their node policy rules (which also typically include consensus rules). If it passes all of the checks, the node will store it locally and then broadcast the transaction to all of the nodes it is connected to. And so on and so forth until all nodes have heard the transaction.

The same happens with blocks except that they are only verified against the consensus rules, there are no local policy rules for blocks.

There are things done to prevent nodes from receiving the same transaction multiple times. Most nodes, when broadcasting a transaction, actually first announce to all of the nodes it is connected to that it has a transaction. Then those nodes must ask for that transaction before it is actually transmitted. This way nodes won't receive a transaction multiple times since they are asking for the transaction, not actually being sent it right away.


---

