Electrum
ElectrumX 伺服器作為 Tor 隱藏服務
我正在嘗試在我的 PC 上執行 ElectrumX 伺服器。我在具有以下 Dockerfile 配置的 docker 容器上執行它:
FROM python:3.7-alpine3.11 LABEL maintainer="Luke Childs <lukechilds123@gmail.com>" COPY ./bin /usr/local/bin COPY ./VERSION /tmp RUN VERSION=$(cat /tmp/VERSION) && \ chmod a+x /usr/local/bin/* && \ apk add --no-cache git build-base openssl && \ apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.11/main leveldb-dev && \ apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing rocksdb-dev && \ pip install aiohttp pylru plyvel websockets python-rocksdb && \ git clone -b $VERSION https://github.com/kyuupichan/electrumx.git && \ cd electrumx && \ python setup.py install && \ apk del git build-base && \ rm -rf /tmp/* VOLUME ["/data"] ENV HOME /data ENV ALLOW_ROOT 1 ENV DB_DIRECTORY /data ENV SERVICES=tcp://:50001,ssl://:50002,wss://:50004,rpc://0.0.0.0:8000 ENV SSL_CERTFILE ${DB_DIRECTORY}/electrumx.crt ENV SSL_KEYFILE ${DB_DIRECTORY}/electrumx.key ENV HOST "" WORKDIR /data EXPOSE 50001 50002 50004 8000 CMD ["init"]
我想將 ElectrumX 伺服器宣傳為 Tor 隱藏伺服器。我的比特幣核心也可以通過 .onion 地址訪問:j3zla562edof65jn.onion。如何配置 ElectrumX 隱藏伺服器?伺服器的 .onion 地址是什麼?我無法使用 j3zla562edof65jn.onion 地址從我的電子客戶端訪問 ElectrumX。此外,伺服器列表中的伺服器狀態為已關閉。
非常感謝。
我找到了答案。這不是太難。你應該為 ElectrumX 伺服器創建一個單獨的 Tor 隱藏服務。以下兩個連結幫助了我:
- <https://www.reddit.com/r/Electrum/comments/ggmduo/electrumx_over_tor_configuration_help/>
- <https://en.bitcoin.it/wiki/Setting_up_a_Tor_hidden_service>
要創建隱藏服務,您應該執行以下步驟:
- 您必須在主機上安裝 Tor(至少版本 0.2.7.1)。您無需將其安裝在 docker 容器上。
- 要建立隱藏服務,請打開
torcc
文件(可能您可以在 找到它/etc/tor/torrc
)。將這些行添加到文件中:HiddenServiceDir /var/lib/tor/electrumX_service/ HiddenServiceVersion 2 HiddenServicePort 50001 127.0.0.1:50001 HiddenServicePort 50002 127.0.0.1:50002
- 通過執行以下命令重新啟動 Tor:
sudo service tor restart
- 要查看新隱藏服務 (electrumX_service) 的主機名,請執行
sudo cat /var/lib/tor/electrumX_service/hostname
. 您將看到主機名。例如,我的主機名是dpojvtzgm5dcg5ds.onion
.- 現在,您應該在 ElectrumX 容器中設置 REPORT_SERVICES 環境變數。為此,您可以在開始時設置它,當您想要執行容器時。我使用以下命令來執行容器:(使用最近為 REPORT_SERVICES 環境變數創建的主機名地址。)
docker run --name=electrumx --rm --network=host -v /home/taghi/Taghi/docker-electrumx/electrumx:/data \ -e DAEMON_URL=http://MY_BITCOIN_CORE_USERNAME:MY_BITCOIN_CORE_PASSWORD@127.0.0.1:8332 \ -e COIN=BitcoinSegwit \ -e REPORT_SERVICES=tcp://dpojvtzgm5dcg5ds.onion:50001,ssl://dpojvtzgm5dcg5ds.onion:50002 \ lukechilds/electrumx
- 您可以通過 Electrum 客戶端連接到 ElectrumX 伺服器以檢查其是否正常工作。此外,您可以將其添加到此伺服器列表中。
**請記住:**我在上面的 Dockerfile 中暴露了 50001、50002、50004 和 8000 埠。