作者saveme (hihi不要在底下推噓文, )
看板DigiCurrency
標題[閒聊] p2p 廣播,就節點對節點廣播
時間Wed Jun 16 22:29:34 2021
我有一個疑問,
加密貨幣中的節點他一上網路時,
他要怎麼廣播找同類應用程式的節點?
我以前寫網路聊天室時,
因為是中心化,
所以會有一個主伺服器負責接受用戶端來的登錄訊息,
所有散佈在網路上的應用程式,
會上網向主伺服器 ip 發出登錄請求,
主伺服器收到訊息後,
再發給用戶端告知收到訊息,
那去中心化的應用程式如何在網路上找同類應用程式?
難道是 ip 4 一個一個掃?
問題是安裝應用程式的網路是內部網路,
該網路路由器 ip port 沒開應用程式規定的 port?
那怎麼連上?
----
Sent from
BePTT on my Samsung SM-N9860
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.245.208 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/DigiCurrency/M.1623853776.A.F8F.html
1F:推 DarkerDuck: bootstrap nodes 06/16 22:35
2F:推 kugwa: 看code可以看到一些hardcode的ip 06/16 22:36
4F:→ DarkerDuck: 會有一群固定IP的nodes負責bootstrap 06/16 22:37
5F:→ DarkerDuck: 假如你的完整節點沒有實體IP,那只能連別人 06/16 22:39
6F:→ DarkerDuck: 不會有in的連線,只有out的連線 06/16 22:39
7F:→ DarkerDuck: 通常狀態下就8個out連線,8個in連線 06/16 22:42
8F:→ DarkerDuck: 只要第一次bootstrap完成後,就可以蒐集取得節點清單 06/16 22:43
9F:→ DarkerDuck: 之後就可以依照上次狀態直接嘗試連線了 06/16 22:43
10F:→ saveme: 所以一定要實體 ip 才可以達到 in & out。 06/16 22:47
11F:→ DarkerDuck: 有實體IP開server socket才能讓人連進來 06/16 22:53
12F:→ DarkerDuck: 不過無論有沒有實體IP,實際上不會影響節點運作 06/16 22:53
13F:→ saveme: 可是節點的運作,一定要 in & out 都 OK 才有辦法完整交 06/16 23:24
14F:→ saveme: 流訊息。只有 out 沒有 in,那個節點就沒法更新資訊。正 06/16 23:24
15F:→ saveme: 確的講,有實體 ip,這個節點才有 server 的功能,否則他 06/16 23:24
16F:→ saveme: 只能當 client 。我這樣說沒錯吧! 06/16 23:24
17F:→ DarkerDuck: socket一旦建立了就是雙向資訊溝通,除非你是UDP 06/16 23:33
18F:→ saveme: 我這樣問好了假如節點清單都不是實體 ip,這樣還能 in & 06/16 23:49
19F:→ saveme: out?可以的話,我大概知道怎麼做。 06/16 23:49
20F:→ DarkerDuck: 不行啊,他P2P就是單純的TCP server socket所組成的 06/17 00:06
21F:→ DarkerDuck: 當然有些P2P技術可以在NAT上打洞來通訊 06/17 00:08
22F:→ DarkerDuck: 不過這應該沒用在Bitcoin的P2P通訊 06/17 00:08
23F:→ DarkerDuck: 它就是只會透過透定port做通訊而已 06/17 00:09
24F:→ saveme: 了解 06/17 00:30
25F:推 jacky507143: 先推一個以免被人發現我看不懂 06/17 03:38
26F:→ Phenomenon: 是不是有點像 BT 的 tracker,用來取得 client 資訊 06/17 12:09
27F:推 wahaha99: 反正不會是ip一個一個掃,這產生的垃圾流量太大, 06/17 16:46
28F:→ wahaha99: 會被當成惡意軟體與攻擊的 06/17 16:46