<p>According to <a href="https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery" rel="noreferrer">https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery</a></p>

<hr>

<p><strong>DNS Addresses</strong></p>

<p>Upon startup, if peer node discovery is needed, the client then issues DNS requests to learn about the addresses of other peer nodes. The client includes a list of host names for DNS services that are seeded. As of December, 2017 the list (from chainparams.cpp[1]) includes:</p>

<p>seed.bitcoin.sipa.be
dnsseed.bluematt.me
dnsseed.bitcoin.dashjr.org
seed.bitcoinstats.com
seed.bitcoin.jonasschnelli.ch
seed.btc.petertodd.org
A DNS reply can contain multiple IP addresses for a requested name.</p>

<p>Addresses discovered via DNS are initially given a zero timestamp, therefore they are not advertised in response to a "getaddr" request.</p>

<hr>

<p><strong>Hard Coded "Seed" Addresses</strong></p>

<p>The client contains hard coded IP addresses that represent bitcoin nodes.</p>

<p>These addresses are only used as a last resort, if no other method has produced any addresses at all. When the loop in the connection handling thread ThreadOpenConnections2() sees an empty address map, it uses the "seed" IP addresses as backup.</p>

<p>There is code is move away from seed nodes when possible. The presumption is that this is to avoid overloading those nodes. Once the local node has enough addresses (presumably learned from the seed nodes), the connection thread will close seed node connections.</p>

<p>Seed Addresses are initially given a zero timestamp, therefore they are not advertised in response to a "getaddr" request.</p>

CC BY-SA 3.0
2018-02-03T08:38:34.927Z
Welcome to Bitcoin.SE! Your well-written answer is not complete, it does not address the original question but, it is a good beginning for a detailed answer.
Willtech
CC BY-SA 4.0
2022-03-16T15:30:44.417Z
Thanks, I shaded light to me on what addresses where used and how the client find out about the rest of the nodes!
mrbarletta
CC BY-SA 3.0
2018-02-03T01:20:58.493Z
2018-02-03T01:20:58.493Z
Stephen Yeung
<p>The bitcoin daemon makes the transaction with the source address and the destination address then broadcasts the transaction to the network.</p>

<p>The Bitcoin miners confirm the transaction and include it in the next(s) blockchain blocks. The miners receive the transaction fee as the reward for this.</p>

<p>When the receiver downloads a new Bitcoin blockchain block and sees incoming transaction to his/her address, the receiver knows the payment was made.</p>

<p>So all Bitcoin nodes share the same blockchain data (approx. 27.5 GB at the moment). This blockchain as eventually consistent, append-only, database of all Bitcoin transactions.</p>

CC BY-SA 3.0
2014-10-30T20:46:14.203Z
how do they all have the same 20GB blockchain? How can the daemon broadcast the transaction to the network? Would you have to know all the systems on the network?
Patrick W. McMahon
CC BY-SA 3.0
2014-10-30T20:54:18.973Z
Each node communicates with neighbouring nodes and they communicate with neighbours and so on. Then the information propagades. For more details please refer to https://en.bitcoin.it/wiki/Network
Mikko Ohtamaa
CC BY-SA 3.0
2014-10-30T20:58:20.857Z
If i just created a wallet after installing the software how would i know of any other nodes to connect to the network?
Patrick W. McMahon
CC BY-SA 3.0
2014-10-30T21:16:00.520Z
@PatrickW.McMahon http://bitcoin.stackexchange.com/questions/3536/how-do-bitcoin-clients-find-each-other
Nick ODell
CC BY-SA 3.0
2014-10-30T20:42:48.957Z
2014-12-14T23:43:26.410Z
2014-12-14T23:43:26.410Z
Mikko Ohtamaa
<p>Transactions which are not double spends will be happily relayed by all nodes who receive them to all the people they connect to. This ensures that miners will hear about transactions.</p>

<p>Everyone who is fully synced will share the same blockchain. Bitcoin helps people achieve consensus, which simply means they all agree on the same list. </p>

<p>Generally bitcoin nodes will connect to at least 8 other (random) nodes. This is enough - You pick geographically separate nodes to get a true sense of the network's state. Nodes are responsible for relaying information about new transactions and blocks to their peers. </p>

CC BY-SA 4.0
2018-09-15T17:48:03.877Z
How the wallet know that is fully synced with others ?
Muflix
CC BY-SA 3.0
2014-11-13T14:14:16.057Z
2014-11-13T14:14:16.057Z
karimkorun
<p>There is a well explained article in harmony website you can read <a href="https://blog.harmony.one/peer-discovery-in-harmony-network/" rel="nofollow noreferrer">https://blog.harmony.one/peer-discovery-in-harmony-network/</a></p>

CC BY-SA 4.0
2021-11-15T06:21:13.060Z
2021-11-15T06:21:13.060Z
mahmood
<blockquote>
  <p>If a person sends a transaction to another person, and Bitcoin is a peer-to-peer application, how will the transaction get to the rest of the Bitcoin community? </p>
</blockquote>

<p>Think of it like how gossip would spread. There are a bunch of people (nodes), and when one of them knows something, they tell it to the few (8 or so) people they are near (connected with), and then those people tell a few more people the message that was told to them, and then... Eventually everyone knows about the original information (transaction). </p>

<p>So when we say bitcoin is peer-to-peer, we mean it's just nodes that have internet connections (on port 8333 usually) with other peers. Not even necessarily the one you're sending the coins to!</p>

<blockquote>
  <p>How does everyone have the same blockchain?</p>
</blockquote>

<p>After peers exchange their information (and validate that all transactions and blocks follow the protocol rules), they store it. Since all of the bitcoin transactions from the beginning of the bitcoin block chain are needed to validate everything that has taken place, essentially all full nodes store the same data (about 27.5 GB of pure block chain data as of now). </p>

<blockquote>
  <p>Does every system know about every other system in the network? If so, how?</p>
</blockquote>

<p>No need to know about every other system on the network, each node just knows about the 8 or so nodes that it is connected to!</p>

CC BY-SA 4.0
2018-05-19T04:19:14.140Z
Is it possible that the message loop happens? e.g., A->B->C->A.
Helin Wang
CC BY-SA 4.0
2018-05-19T13:10:17.550Z
No. What actually happens is when a node receives a transaction, they advertise the txid to their peers, and then their peer will only request the transaction if they haven't seen a transaction with that txid yet, so it prevents requesting duplicates.
morsecoder
CC BY-SA 3.0
2014-12-14T23:51:32.053Z
2014-12-14T23:51:32.053Z
morsecoder
<p>If a person sends a transaction to another person, and Bitcoin is a peer-to-peer application, how will the transaction get to the rest of the Bitcoin community? How does everyone have the same blockchain?</p>

<p>Does every system know about every other system in the network? If so, how?</p>

CC BY-SA 3.0
2014-10-30T21:18:26.230Z
Patrick, have you read this? https://bitcoin.org/bitcoin.pdf
Nick ODell
CC BY-SA 3.0
2014-10-30T21:24:21.180Z
This pdf is new to me. Thank you. This looks to be very informative.
Patrick W. McMahon
CC BY-SA 4.0
2021-02-26T11:14:45.057Z
The PDF does not talk about how the broadcast is realized though
matthias_buehlmann
<transactions><blockchain>
How are transactions broadcast to the rest of the network?
Patrick W. McMahon
# How are transactions broadcast to the rest of the network?

(Asked by: username_0 on 2014-10-30)

If a person sends a transaction to another person, and Bitcoin is a peer-to-peer application, how will the transaction get to the rest of the Bitcoin community? How does everyone have the same blockchain?

Does every system know about every other system in the network? If so, how?

**Tags:** transactions, blockchain

> **Comments:**
> **username_1**: username_0, have you read this? https://bitcoin.org/bitcoin.pdf  
> **username_0**: This pdf is new to me. Thank you. This looks to be very informative.  
> **username_2**: The PDF does not talk about how the broadcast is realized though  

---

## 5 answers

### Answer by username_10 on 2014-12-14. Score: 26 | Accepted answer

> If a person sends a transaction to another person, and Bitcoin is a peer-to-peer application, how will the transaction get to the rest of the Bitcoin community?

Think of it like how gossip would spread. There are a bunch of people (nodes), and when one of them knows something, they tell it to the few (8 or so) people they are near (connected with), and then those people tell a few more people the message that was told to them, and then... Eventually everyone knows about the original information (transaction).

So when we say bitcoin is peer-to-peer, we mean it's just nodes that have internet connections (on port 8333 usually) with other peers. Not even necessarily the one you're sending the coins to!

> How does everyone have the same blockchain?

After peers exchange their information (and validate that all transactions and blocks follow the protocol rules), they store it. Since all of the bitcoin transactions from the beginning of the bitcoin block chain are needed to validate everything that has taken place, essentially all full nodes store the same data (about 27.5 GB of pure block chain data as of now).

> Does every system know about every other system in the network? If so, how?

No need to know about every other system on the network, each node just knows about the 8 or so nodes that it is connected to!

> **Comments:**
> **username_11**: Is it possible that the message loop happens? e.g., A->B->C->A.  
> **username_10**: No. What actually happens is when a node receives a transaction, they advertise the txid to their peers, and then their peer will only request the transaction if they haven't seen a transaction with that txid yet, so it prevents requesting duplicates.  

---

### Answer by username_3 on 2018-02-03. Score: 8

According to <https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery>

---

**DNS Addresses**

Upon startup, if peer node discovery is needed, the client then issues DNS requests to learn about the addresses of other peer nodes. The client includes a list of host names for DNS services that are seeded. As of December, 2017 the list (from chainparams.cpp[1]) includes:

seed.bitcoin.sipa.be
dnsseed.bluematt.me
dnsseed.bitcoin.dashjr.org
seed.bitcoinstats.com
seed.bitcoin.jonasschnelli.ch
seed.btc.petertodd.org
A DNS reply can contain multiple IP addresses for a requested name.

Addresses discovered via DNS are initially given a zero timestamp, therefore they are not advertised in response to a "getaddr" request.

---

**Hard Coded "Seed" Addresses**

The client contains hard coded IP addresses that represent bitcoin nodes.

These addresses are only used as a last resort, if no other method has produced any addresses at all. When the loop in the connection handling thread ThreadOpenConnections2() sees an empty address map, it uses the "seed" IP addresses as backup.

There is code is move away from seed nodes when possible. The presumption is that this is to avoid overloading those nodes. Once the local node has enough addresses (presumably learned from the seed nodes), the connection thread will close seed node connections.

Seed Addresses are initially given a zero timestamp, therefore they are not advertised in response to a "getaddr" request.

> **Comments:**
> **username_4**: Welcome to Bitcoin.SE! Your well-written answer is not complete, it does not address the original question but, it is a good beginning for a detailed answer.  
> **username_5**: Thanks, I shaded light to me on what addresses where used and how the client find out about the rest of the nodes!  

---

### Answer by username_6 on 2014-10-30. Score: 5

The bitcoin daemon makes the transaction with the source address and the destination address then broadcasts the transaction to the network.

The Bitcoin miners confirm the transaction and include it in the next(s) blockchain blocks. The miners receive the transaction fee as the reward for this.

When the receiver downloads a new Bitcoin blockchain block and sees incoming transaction to his/her address, the receiver knows the payment was made.

So all Bitcoin nodes share the same blockchain data (approx. 27.5 GB at the moment). This blockchain as eventually consistent, append-only, database of all Bitcoin transactions.

> **Comments:**
> **username_0**: how do they all have the same 20GB blockchain? How can the daemon broadcast the transaction to the network? Would you have to know all the systems on the network?  
> **username_6**: Each node communicates with neighbouring nodes and they communicate with neighbours and so on. Then the information propagades. For more details please refer to https://en.bitcoin.it/wiki/Network  
> **username_0**: If i just created a wallet after installing the software how would i know of any other nodes to connect to the network?  
> **username_1**: @username_0 http://bitcoin.stackexchange.com/questions/3536/how-do-bitcoin-clients-find-each-other  

---

### Answer by username_7 on 2014-11-13. Score: 3

Transactions which are not double spends will be happily relayed by all nodes who receive them to all the people they connect to. This ensures that miners will hear about transactions.

Everyone who is fully synced will share the same blockchain. Bitcoin helps people achieve consensus, which simply means they all agree on the same list.

Generally bitcoin nodes will connect to at least 8 other (random) nodes. This is enough - You pick geographically separate nodes to get a true sense of the network's state. Nodes are responsible for relaying information about new transactions and blocks to their peers.

> **Comments:**
> **username_8**: How the wallet know that is fully synced with others ?  

---

### Answer by username_9 on 2021-11-15. Score: 0

There is a well explained article in harmony website you can read <https://blog.harmony.one/peer-discovery-in-harmony-network/>


---

