Electrum

如何找到所有 Electrum 公共伺服器的列表?

  • December 25, 2020

我正在開發將連接到“Electrum Servers”的軟體,即 Electrum Wallet 連接到的相同公共伺服器。使用者可以根據需要指定自定義主機,因此可以創建伺服器並使用它。

主要問題是……我怎樣才能找到所有 Electrum 伺服器的列表?我發現這個頁面列出了所有的伺服器。該網站是如何獲得這些資訊的?

如何創建一些東西來自動獲取所有 Electrum 伺服器?如果我想創建一個網站/API 來提供這些資訊,我該如何獲得它?

Electrum 有一個預設伺服器列表,您可以在此處找到:https ://github.com/spesmilo/electrum/blob/afa1a4d22a31d23d088c6670e1588eed32f7114d/lib/network.py#L57 。但是,沒有所有 Electrum 伺服器的列表,就像沒有所有比特幣節點的列表一樣。這是因為 Electrum 伺服器像比特幣節點一樣分佈,任何人都可以執行一個。Electrum 有一個對等發現協議,您可以在此處閱讀:https ://github.com/kyuupichan/electrumx/blob/master/docs/PEER_DISCOVERY.rst. Electrum 伺服器將相互連接,並相互詢問每個對等方都知道的其他 Electrum 伺服器的列表。因此,每個 Electrum 伺服器都建立了自己的其他 Electrum 伺服器數據庫。然後當客戶端連接時,它會向它連接的伺服器詢問其他 Electrum 伺服器的列表,並且客戶端還建立自己的對等數據庫。獲取其他 Electrum 伺服器列表的消息是servers.peers.subscribe,您可以在此處閱讀:https ://github.com/kyuupichan/electrumx/blob/master/docs/protocol-methods.rst#serverpeerssubscribe

所以如果你想找到可用的 Electrum 伺服器,你可以從預設的 Electrum 伺服器開始。然後向每個伺服器詢問其他 Electrum 伺服器的列表,連接到這些伺服器,依此類推。您這樣做是為了建立 Electrum 伺服器的本地數據庫。

引用自:https://bitcoin.stackexchange.com/questions/59206