• Home
  • ビットコインノードをUbuntu 18.04で構築

ビットコインノードをUbuntu 18.04で構築

ビットコインノード(Bitcoin core)を Ubuntu 18.04 へ導入

● Bitcoin Core の導入

1. Bitcoin公式のPPAからダウンロード/インストール
$ sudo apt-add-repository ppa:bitcoin/bitcoin -y
$ sudo apt-get update -y
$ sudo apt-get install bitcoin-qt -y
$ sudo apt-get install bitcoind -y

2.ユーザー、パスワード暗号化ファイル(rpcauth.py)の作成
$ vi rpcauth.py

#############################################################################################
#!/usr/bin/env python3
# Copyright (c) 2015-2018 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

import sys
import os
from random import SystemRandom
import base64
import hmac

def generate_salt():
# This uses os.urandom() underneath
cryptogen = SystemRandom()

# Create 16 byte hex salt
salt_sequence = [cryptogen.randrange(256) for _ in range(16)]
return ''.join([format(r, 'x') for r in salt_sequence])

def generate_password():
"""Create 32 byte b64 password"""
return base64.urlsafe_b64encode(os.urandom(32)).decode('utf-8')

def password_to_hmac(salt, password):
m = hmac.new(bytearray(salt, 'utf-8'), bytearray(password, 'utf-8'), 'SHA256')
return m.hexdigest()

def main():
if len(sys.argv) < 2:
sys.stderr.write('Please include username (and an optional password, will generate one if not provided) as an argument.\n')
sys.exit(0)

username = sys.argv[1]

salt = generate_salt()
if len(sys.argv) > 2:
password = sys.argv[2]
else:
password = generate_password()
password_hmac = password_to_hmac(salt, password)

print('String to be appended to bitcoin.conf:')
print('rpcauth={0}:{1}${2}'.format(username, salt, password_hmac))
print('Your password:\n{0}'.format(password))

if __name__ == '__main__':
main()

#############################################################################################
3.ユーザー、パスワードの暗号化
※ rpcauth.py を用いることで RPC で使用する username、passwordを
※ 暗号化し rpcauth 取得する。
$ chmod 755 ./rpcauth.py
$ ./rpcauth.py username password

4. Bitcoin設定ファイルの修正
$ sudo vi /etc/bitcoin/bitcoin.conf

##### サンプル #####

mainnet=1
HOST=localhost
server=1
rpcport=8332
txindex=1
rest=1
rpcauth=username:af587******************************
5. Bitcoin Core サービスの有効化
※ データ格納ディレクトリまたは Bitcoin設定ファイルの指定を変更する場合は、
※ 先に「<a href="#service">サービス設定変更手順</a>」を行うこと。

$ sudo systemctl enable bitcoind.service
$ sudo systemctl list-unit-files --type=service | grep bitcoind

▼ bitcoind.service enabled が表示される

6. Bitcoin Core サービスの開始
$ sudo systemctl start bitcoind.service
$ sudo systemctl status bitcoind.service

7. Bitcoin Core 稼働確認
$ sudo tail -f /var/lib/bitcoin/debug.log
$ bitcoin-cli -conf=/etc/bitcoin/bitcoin.conf getblockcount  ※ 設定ファイルを指定して起動

構築後ウォレットまたはマイニングノードとして作動します。

● サービス設定変更手順

1. Bitcoin Core サービスの無効化
$ sudo systemctl disable bitcoind.service
$ sudo systemctl list-unit-files --type=service

▼ bitcoind.service disabled が表示される

2. bitcoindサービス設定ファイルの修正
$ sudo vi /lib/systemd/system/bitcoind.service

※ -datadir または -confを必要に応じ修正
ExecStart=/usr/bin/bitcoind -daemon -datadir=<em>/var/lib/bitcoin</em> -conf=<em>/etc/bitcoin/bitcoin.conf</em> -pid=/run/bitcoind/bitcoind.pid
3. サービス設定ファイルの再読み込み
$ sudo systemctl daemon-reload

これでサービス設定の変更は完了。必要に応じてサービスを起動する。

ご相談・お見積もり

03-5207-2689