Развертывание сервера ElectrumX

в 14:21, , рубрики: bitcoin, blockchain, Debian, electrum, electrumx, emercoin, linux, open source, Ubuntu, криптография, открытые данные, Разработка под Linux

В этой статье я расскажу как развернуть сервер ElectrumX для Emercoin под Ubuntu Server 16.04 LTS, который можно использовать, например, для работы приложений Emercoin Secure Wallet (iOS, Android, Linux, Windows, MacOS). Процесс развертывания ничем не отличается и для других поддерживаемых криптовалют (например, для Bitcoin), с той лишь разницей, что необходимо установить соответствующую ноду нужной криптовалюты и указать именно ее данные в конфиге сервера.

Все команды в этой статье выполняются от root.

1. Установка ноды Emercoin

Для установки ноды Emercoin под Ubuntu Server 16.04 LTS, выполним следующие команды (взятые с официального сайта):

apt-key adv --keyserver keyserver.ubuntu.com --recv B58C58F4
add-apt-repository 'deb http://download.emercoin.com/ubuntu xenial emercoin'
apt update && apt -y install emercoin

Выключаем в ноде поддержку RPC по SSL, так как ElectrumX не поддерживает это:

sed -i -e "s/(^rpcssl=1)(.*)/rpcssl=0/" /etc/emercoin/emercoin.conf
systemctl restart emercoind

Дожидаемся, пока закачается блокчейн. Контролировать этот процесс можно командой:

emc getinfo

результатом исполнения которой станет похожий вывод:

{
  "version": 60301,
  "protocolversion": 70002,
  "walletversion": 60000,
  "balance": 0.000000,
  "newmint": 0.000000,
  "stake": 0.000000,
  "blocks": 1936,
  "moneysupply": 9521307.700000,
  "timeoffset": 0,
  "connections": 3,
  "proxy": "",
  "ip": "xxx.xxx.xxx.xxx",
  "difficulty": 1.450595422550799,
  "testnet": false,
  "keypoololdest": 1513852706,
  "keypoolsize": 501,
  "encrypted": false,
  "mintonly": false,
  "paytxfee": 0.000100,
  "relayfee": 0.000100,
  "errors": "WARNING: Checkpoint is too old. Wait for block chain to download, or notify developers of the issue."
}

Дожидаемся пока исчезнет в "errors" сообщение "WARNING: Checkpoint is too old. Wait for block chain to download, or notify developers of the issue" — это и будет означать, что блокчейн закачался.

2. Установка зависимостей

В последней, на момент написания этой статьи, версии ElectrumX 1.2.1, есть требование к версии Python >=3.6. В Ubuntu Server 16.04 LTS последняя версия Python — 3.5. Соответственно, необходимо установить Python 3.6 из внешнего репозитория вместе с нужными зависимостями:

add-apt-repository ppa:jonathonf/python-3.6
apt update && apt -y install python3.6 python3.6-dev gcc g++ libleveldb-dev
ln -sf python3.6 /usr/bin/python3
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.6
pip3.6 install aiohttp pylru plyvel

3. Установка ElectrumX

Скачиваем и устанавливаем ElectrumX версии 1.2.1 (самая новая версия на момент написания этой статьи, как я уже упоминал выше):

git clone https://github.com/kyuupichan/electrumx /opt/electrumx
cd /opt/electrumx
git checkout 1.2.1 -b live
mkdir -p db
groupadd -r electrumx
useradd -r -m -d /var/lib/electrumx -k /dev/null -s /bin/false -g electrumx electrumx
chown electrumx:electrumx /opt/electrumx/db
cp contrib/systemd/electrumx.service /etc/systemd/system/
ln -sf /opt/electrumx/electrumx_server.py /usr/local/bin/electrumx_server.py
ln -sf /opt/electrumx/electrumx.conf /etc/electrumx.conf

4. Настройка ElectrumX для Emercoin

а) Создаем файл /opt/electrumx/electrumx.conf следующего содержания:

COIN = Emercoin
DB_DIRECTORY = /opt/electrumx/db
DAEMON_URL = http://emccoinrpc:emccoinpass@localhost:6662/
TCP_PORT = 9110
RPC_PORT = 9000
HOST =

б) Меняем в нем 'emccoinrpc' и 'emccoinpass' на логин и пароль от ноды Emercoin (посмотреть их можно в /etc/emercoin/emercoin.conf)

в) Меняем права доступа к конфигу:

chown root:electrumx /opt/electrumx/electrumx.conf
chmod 640 /opt/electrumx/electrumx.conf

г) Запускаем сервер и ставим на автозагрузку при запуске ОС:

systemctl start electrumx
systemctl enable electrumx

д) Сервер работает и начал индексирование блокчейна. Отслеживать прогресс можно командой:

journalctl -u electrumx -f

После того, как индексирование блокчейна будет завершено, ElectrumX сервер станет полностью работоспособным и к нему можно будет подключаться к порту 9110/tcp.

Автор: snvakula

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js