<p>it is more like 3.
The client would send the tx to a full node (let aside the complexities of SPV clients), and this full node would verify the tx by some pre defined rules. If ok, this full node transmits to other full nodes. 
The transaction only gets valid, if it was mined into a block. So the server you mention can be several blocks behind, but still can transmit the tx to other nodes. A very good overview of the way this happens is here: </p>

<blockquote>
  <p><a href="http://chimera.labs.oreilly.com/books/1234000001802/ch06.html" rel="nofollow noreferrer">http://chimera.labs.oreilly.com/books/1234000001802/ch06.html</a></p>
</blockquote>

<p>also the chapter on transactions will help to clarify the picture. </p>

CC BY-SA 3.0
2017-11-12T22:22:45.863Z
2017-11-12T22:22:45.863Z
pebwindkraft
<p>Let's say UserA uses <code>electrum</code>, connected to ServerB, and hits the "Send" button to do a transaction.</p>

<p><strong>What happens?</strong></p>

<ol>
<li>The transaction is sent to ServerB only</li>
</ol>

<p>or</p>

<ol start="2">
<li>The transaction is sent from UserA to ServerB but also to 2 (or 10 or 100?) other servers (UserA's <code>electrum</code> has a list of 100 servers to connect, one after another, when he does a transaction)</li>
</ol>

<p>or</p>

<ol start="3">
<li>The transaction is sent from UserA to ServerB only, but ServerB broadcasts it immediately to 2 (or 10 or 100?) other servers</li>
</ol>

<p><strong>Especially if ServerB is late of 1 or 2 blocks from the rest of the network, what happens? Is the transaction lost? Broadcasted anyway?</strong></p>

<p>Where are these rules specified in the official implementation?</p>

<transactions><network><broadcast>
How is a transaction broadcasted?
Basj
# How is a transaction broadcasted?

(Asked by: username_0 on 2017-11-12)

Let's say UserA uses `electrum`, connected to ServerB, and hits the "Send" button to do a transaction.

**What happens?**

1. The transaction is sent to ServerB only

or

2. The transaction is sent from UserA to ServerB but also to 2 (or 10 or 100?) other servers (UserA's `electrum` has a list of 100 servers to connect, one after another, when he does a transaction)

or

3. The transaction is sent from UserA to ServerB only, but ServerB broadcasts it immediately to 2 (or 10 or 100?) other servers

**Especially if ServerB is late of 1 or 2 blocks from the rest of the network, what happens? Is the transaction lost? Broadcasted anyway?**

Where are these rules specified in the official implementation?

**Tags:** transactions, network, broadcast


---

## 1 answers

### Answer by username_1 on 2017-11-12. Score: 1

it is more like 3.
The client would send the tx to a full node (let aside the complexities of SPV clients), and this full node would verify the tx by some pre defined rules. If ok, this full node transmits to other full nodes.
The transaction only gets valid, if it was mined into a block. So the server you mention can be several blocks behind, but still can transmit the tx to other nodes. A very good overview of the way this happens is here:

> <http://chimera.labs.oreilly.com/books/1234000001802/ch06.html>

also the chapter on transactions will help to clarify the picture.


---

