[閒聊] p2p 廣播,就節點對節點廣播

作者: saveme (hihi)   2021-06-16 22:29:34
我有一個疑問,
加密貨幣中的節點他一上網路時,
他要怎麼廣播找同類應用程式的節點?
我以前寫網路聊天室時,
因為是中心化,
所以會有一個主伺服器負責接受用戶端來的登錄訊息,
所有散佈在網路上的應用程式,
會上網向主伺服器 ip 發出登錄請求,
主伺服器收到訊息後,
再發給用戶端告知收到訊息,
那去中心化的應用程式如何在網路上找同類應用程式?
難道是 ip 4 一個一個掃?
問題是安裝應用程式的網路是內部網路,
該網路路由器 ip port 沒開應用程式規定的 port?
那怎麼連上?
作者: DarkerDuck (達克鴨)   2021-06-16 22:35:00
bootstrap nodes
作者: kugwa (kugwa)   2021-06-16 22:36:00
看code可以看到一些hardcode的ip
作者: DarkerDuck (達克鴨)   2021-06-16 22:36:00
https://tinyurl.com/vbvbxw5c會有一群固定IP的nodes負責bootstrap假如你的完整節點沒有實體IP,那只能連別人不會有in的連線,只有out的連線通常狀態下就8個out連線,8個in連線只要第一次bootstrap完成後,就可以蒐集取得節點清單之後就可以依照上次狀態直接嘗試連線了
作者: saveme (hihi)   2021-06-16 22:47:00
所以一定要實體 ip 才可以達到 in & out。
作者: DarkerDuck (達克鴨)   2021-06-16 22:53:00
有實體IP開server socket才能讓人連進來不過無論有沒有實體IP,實際上不會影響節點運作
作者: saveme (hihi)   2021-06-16 23:24:00
可是節點的運作,一定要 in & out 都 OK 才有辦法完整交流訊息。只有 out 沒有 in,那個節點就沒法更新資訊。正確的講,有實體 ip,這個節點才有 server 的功能,否則他只能當 client 。我這樣說沒錯吧!
作者: DarkerDuck (達克鴨)   2021-06-16 23:33:00
socket一旦建立了就是雙向資訊溝通,除非你是UDP
作者: saveme (hihi)   2021-06-16 23:49:00
我這樣問好了假如節點清單都不是實體 ip,這樣還能 in &out?可以的話,我大概知道怎麼做。
作者: DarkerDuck (達克鴨)   2021-06-17 00:06:00
不行啊,他P2P就是單純的TCP server socket所組成的當然有些P2P技術可以在NAT上打洞來通訊不過這應該沒用在Bitcoin的P2P通訊它就是只會透過透定port做通訊而已
作者: saveme (hihi)   2021-06-17 00:30:00
了解
作者: jacky507143 (TheGoodGuyJacky)   2021-06-17 03:38:00
先推一個以免被人發現我看不懂
作者: Phenomenon (Kuma)   2021-06-17 12:09:00
是不是有點像 BT 的 tracker,用來取得 client 資訊
作者: wahaha99 (此方不可長)   2021-06-17 16:46:00
反正不會是ip一個一個掃,這產生的垃圾流量太大,會被當成惡意軟體與攻擊的

Links booklink

Contact Us: admin [ a t ] ucptt.com