このドキュメントはelectrumx 1.3に対応しています
electrumxとは
electrumというサーバークライアント型のビットコインウォレットがあり、様々なオルトコインに移植されている。
electrumxはサーバー部分を設定ファイルの切り替えでオルトコインに対応できる互換サーバーである。
python3で作られている。
通信部分はtcp(tls) + JSONRPC2.0。
electrumxのインストール
この記事には書きませんがbitcoindをインストールする必要があります
root権限またはsudoで作業します
python3をインストール
iusを利用します
yum install -y https://centos7.iuscommunity.org/ius-release.rpm
yum install -y python36u python36u-libs python36u-devel python36u-pip
rocksdbのインストール
開発ツールのインストール
データベースにrocksdbを使う場合はインストールする必要がある
yum install -y epel-release
yum install -y Development Tools
yum install -y snappy snappy-devel zlib zlib-devel bzip2-libs bzip2-devel lz4 lz4-devel cmake make leveldb leveldb-devel gflags-devel
コンパイル & インストール
git clone https://github.com/facebook/rocksdb.git
cd rocksdb
git checkout v5.10.4
make shared_lib
make install-shared INSTALL_PATH=/usr
/usr/bin/pip3.6 install python-rocksdb
/usr/bin/pip3.6 install plyvel
ldconfig
electrumxのダウンロード & インストール
sslが必要であれば自己署名証明書を用意する必要があります
curl https://codeload.github.com/kyuupichan/electrumx/tar.gz/1.3 > electrumx-1.3.tar.gz
tar zxvf electrumx-1.3.tar.gz
cd electrumx-1.3.tar.gz
/usr/bin/pip3.6 install uvloop
/usr/bin/python3.6 ./setup.py install
mkdir /DB
設定ファイル
/etc/electrumx.conf
COIN = Bitcoin
NET = mainnet
DB_DIRECTORY = /DB
DAEMON_URL = http://user:password@localhost:8332/
DB_ENGINE = rocksdb
EVENT_LOOP_POLICY = uvloop
TCP_PORT = 50001
# SSL_PORT = 50002
HOST = 0.0.0.0
MAX_SEND = 1000000
# SSL_CERTFILE=/etc/electrumx/server.crt
# SSL_KEYFILE=/etc/electrumx/server.key
/etc/systemd/system/electrumx.service
[Unit]
Description=Electrumx
After=network.target
[Service]
EnvironmentFile=/etc/electrumx.conf
ExecStart=/usr/bin/electrumx_server.py
User=centos
LimitNOFILE=8192
TimeoutStopSec=30min
[Install]
WantedBy=multi-user.target
起動コマンド
systemctl start electrumx
systemctl stop electrumx
systemctl restart electrumx