Electrum

ElectrumX 伺服器作為 Tor 隱藏服務

  • July 21, 2020

我正在嘗試在我的 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>

要創建隱藏服務,您應該執行以下步驟:

  1. 您必須在主機上安裝 Tor(至少版本 0.2.7.1)。您無需將其安裝在 docker 容器上。
  2. 要建立隱藏服務,請打開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
  1. 通過執行以下命令重新啟動 Tor:sudo service tor restart
  2. 要查看新隱藏服務 (electrumX_service) 的主機名,請執行sudo cat /var/lib/tor/electrumX_service/hostname. 您將看到主機名。例如,我的主機名是dpojvtzgm5dcg5ds.onion.
  3. 現在,您應該在 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
  1. 您可以通過 Electrum 客戶端連接到 ElectrumX 伺服器以檢查其是否正常工作。此外,您可以將其添加到此伺服器列表中

**請記住:**我在上面的 Dockerfile 中暴露了 50001、50002、50004 和 8000 埠。

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