Skip to content

Instantly share code, notes, and snippets.

@wakiyamap
Last active January 22, 2020 16:22
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wakiyamap/cfa61aced400787c6dba821f04f354e9 to your computer and use it in GitHub Desktop.
Save wakiyamap/cfa61aced400787c6dba821f04f354e9 to your computer and use it in GitHub Desktop.
## monacoin.confの内容
rpcuser=wakiyamatamamichankawaii
rpcpassword=[適当にパスワードどうぞ]
daemon=1
txindex=1
addressindex=1
spentindex=1
server=1
## torの接続が悪い際に増やすと良いらしいが、coindのmaxconnectionで良いのかと激しく突っ込みたい
maxconnections=600
## ライブラリ等追加
sudo apt-get update
sudo apt-get install git python3.7 python3.7-dev python3.7-distutils libleveldb-dev
wget https://bootstrap.pypa.io/get-pip.py
python3.7 get-pip.py
sudo pip3 install setuptools --upgrade
## electrumxユーザー追加
sudo adduser electrumx --disabled-password
## electrumxをgitで持ってくる
git clone https://github.com/kyuupichan/electrumx.git
## electrumxインストール (python3 setup.py installでやると3.5でインストールされるのでアウト)
cd ~/electrumx
sudo python3.7 setup.py install
## electrumx設定ファイル設置用フォルダ作成 & 権限追加
sudo mkdir /var/electrumx
sudo chown electrumx /var/electrumx
## systemdの設定ファイル
cd contrib/systemd
sudo cp electrumx.service /etc/systemd/system/
## SSLの設定 tor設定でelectrumxを運用する場合は必要。clearnetの場合はlet's encrypt等でも問題ない。
cd /etc
sudo openssl genrsa -out server.key 4096
sudo openssl req -new -key server.key -out server.csr
sudo openssl x509 -req -days 1825 -in server.csr -signkey server.key -out server.crt
## tor設定(しないなら無視)
sudo apt-get install tor
sudo nano /etc/tor/torrc
# 以下構文追加
HiddenServiceDir /var/lib/tor/electrumx
HiddenServicePort 50001 127.0.0.1:50001
HiddenServicePort 50002 127.0.0.1:50002
# 書き換え後
sudo service tor restart
## /etc/electrumx.confで作成
## electrumx.confの設定 めんどくさいなら中身コピペでもOK。ただしDAEMON_URLとREPORT_SERVICESは変えること。
# electrumx.conf設定ここから下
# default /etc/electrumx.conf for systemd
# REQUIRED
DB_DIRECTORY = /var/electrumx
USERNAME = electrumx
# Bitcoin Node RPC Credentials
DAEMON_URL = http://<rpcusername>:<rpcpassword>@<host>:<port>/
# Coinname
COIN = Monacoin
# See http://electrumx.readthedocs.io/en/latest/environment.html for
# information about other configuration settings you probably want to consider.
SSL_CERTFILE = /etc/server.crt
SSL_KEYFILE = /etc/server.key
SERVICES = tcp://:50001,ssl://:50002,wss://:50004,rpc://
# <your hostname>を書き換えてelectrumxネットワークにreportしたいドメイン、IPアドレス、torアドレスに書き換える
REPORT_SERVICES = tcp://<your hostname>:50001,ssl://<your hostname>:50002,wss://<your hostname>:50004
# clearnet時は下1行コメントアウト
FORCE_PROXY = 1
# electrumx.conf設定ここから上まで
## ここから運用編
## systemd起動関係コマンド
sudo systemctl start electrumx #起動
sudo systemctl stop electrumx #終了
sudo systemctl restart electrumx #再起動
## ログ確認 ctrl+Cで終了
journalctl -u electrumx -f
## システムアップデート方法
systemd使用時
設定ファイルは/var/electrumx,/etc/electrumxにあるので最悪ホームディレクトリ内にあるであろうelectrumxディレクトリは削除してもOK
daemontools使用時
/contrib/daemontools/env/配下に設定ファイルがあるので注意。バックアップを取っておくこと
基本的にはelectrumxディレクトリ内でgit pullで事足りる。
先にコミットしろ云々言われた際には最悪electrumxディレクトリ削除後、git cloneし直しでもOK。なお上記の点に注意せよ。
## let's encryptで証明書を取得する場合
## 80,443を使っているソフトはする前にkill
## firewallは80,443を開ける
sudo apt-get install letsencrypt
sudo letsencrypt certonly --standalone -d www.example.com #www.example.comは自分のelectrumxサーバのURL
##更新時
sudo /usr/bin/letsencrypt renew --force-renew
## ufwについて
この設定の場合に最低限必要なポートは50001,50002,50004だけになる。これはtor設定時は閉じても良し。
9401はmonacoindの初期同期が不安なら開けておいた方が良いかも?
## electrumx_compact_historyの時々実行
## スクリプトを動かすroot権限が実行できる場所に置く
## from https://denariustalk.org/index.php?/profile/1583-manosv/content/&type=forums_topic_post&change_section=1
sudo nano /root/compact_electrum_database.sh
## compact_electrum_database.sh の内容ここから
#!/bin/bash
service electrumx stop
export DB_DIRECTORY='/var/electrumx'
export COIN=Monacoin
export DB_ENGINE=leveldb
electrumx_compact_history
chown -R electrumx:electrumx /var/electrumx
service electrumx start
## compact_electrum_database.sh の内容ここまで
sudo chmod +x /root/compact_electrum_database.sh
sudo crontab -u root -e
## crontabで出てきた内容の一番下に設置 1か月に1回/12日に1回
0 1 */12 * * /root/compact_electrum_database.sh >/dev/null 2>&1
## python3.6 からpython3.7に上げるユーザーへ
sudo apt remove python3.6-dev
sudo apt remove python3.6
sudo add-apt-repository --remove ppa:jonathonf/python-3.6
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.7 python3.7-dev python3.7-distutils
wget https://bootstrap.pypa.io/get-pip.py
sudo python3.7 get-pip.py
## これを完了した後にgit cloneで落としてきたファイルでsetup.py installするとpython3.6の残り物がエラー吐くので
## electrumx/buildを消すか、もうめんどうなのでelectrumxディレクトリを消した後に再度electrumxをgit cloneするのがおすすめ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment