LoginSignup
3
0

More than 5 years have passed since last update.

【ハードフォーク対応2018/7/11暫定版】Kotoのプールを立ててみよう

Last updated at Posted at 2018-07-11

はじめに

Zcashフォークで国産の仮想通貨「Koto」のマイニングプールを構築する方法を記載します。
オープンソースのZcashマイニングプール「z-nomp」をKoto用に独自にカスタマイズした「k-nomp」を使用します。
また、Kotoは2018/8/4にハードフォークが予定されており、今回それに対応したブランチで構築します。

手順

サーバーの準備

ドメインの取得

ドメインが必要な場合は、ドメイン取得代行サイトで任意のドメインを取得してください。

サーバーの用意

Linuxサーバーを立ち上げます。
今回DigitalOceanで、OSは「Ubuntu Server 16.04.4 x64」、
サーバーは「4GB 2vCPUs 80GB 4TB」を選びました。
01.png

サーバーの準備完了

1分ほどで構築が完了し、IPアドレスが自動で割り振られます。
02.png

ファイアウォールの設定

DigitalOceanのファイアウォール機能で、SSHポート、HTTPポート、kotoポート、Stratumポートなどを開けておきます。
04.png

サーバーの設定

インスタンスへの接続

Windowsの場合は「PuTTY」を使用します。
メールで送られてきたパスワードを使用し、rootでログインします。
ログイン後、新しいパスワードを設定します。
03.png

ユーザーの作成

ログインができたら、まずrootとは別のユーザー(今回はubuntu)を作成し、sudo権限を付与します。
adduser ubuntu

Adding user `ubuntu' ...
Adding new group `ubuntu' (1000) ...
Adding new user `ubuntu' (1000) with group `ubuntu' ...
Creating home directory `/home/ubuntu' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for ubuntu
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] y

gpasswd -a ubuntu sudo

Adding user ubuntu to group sudo

ユーザーの変更

ubuntuユーザーでログインします。
sudo su - ubuntu

Ubuntuのアップデート

Ubuntuをアップデートして再起動します。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo reboot

kotodのビルド

パッケージのインストール

下記コマンドを実行して必要なパッケージをインストールします。
sudo apt-get install build-essential pkg-config libc6-dev m4 g++-multilib autoconf libtool ncurses-dev unzip git python python-zmq zlib1g-dev wget bsdmainutils automake curl

kotoのインストール

下記コマンドを実行してkotoをインストールします。
git clone https://github.com/KotoDevelopers/koto.git
cd koto
./zcutil/fetch-params.sh
./zcutil/build.sh -j$(nproc) ※少し時間がかかります

cd src
sudo cp kotod /usr/local/bin
sudo cp koto-cli /usr/local/bin
sudo cp koto-tx /usr/local/bin

kotoの設定

cd
mkdir .koto
cd .koto
vi koto.conf コンフィグファイルを作成、設定します。

koto.conf
rpcuser=username
rpcpassword=password
rpcallowip=127.0.0.1/32
rpcport=8432
daemon=1
server=1
gen=0

kotodの起動

下記コマンドでkotodを起動します。
kotod

Koto server starting

プールアドレスの確認

下記コマンドで、プールアドレスを確認します。
koto-cli getaddressesbyaccount ""

[
  "k1もしくはjzから始まるkアドレス"
]

kアドレスの作成

下記コマンドで、支払用kアドレスを作成します。
koto-cli getnewaddress ""

k1もしくはjzから始まるkアドレス

zアドレスの作成

下記コマンドで、シールド用zアドレスを作成します。
koto-cli z_getnewaddress

zから始まるzアドレス

プールの設定

redisのインストール

下記コマンドを実行してredisをインストールします。
cd
sudo apt-get install redis-server

パッケージのインストール

下記コマンドを実行して必要パッケージをインストールします。
sudo apt-get install build-essential libsodium-dev

nodejsとnpmのインストール

下記コマンドを実行してnodejsとnpmをインストールします
sudo apt-get install -y nodejs npm
sudo npm cache clean
sudo npm install n -g
sudo n v9
sudo npm i npm -g
sudo apt-get purge -y nodejs npm
sudo ln -sf /usr/local/bin/node /usr/bin/node
sudo ln -sf /usr/local/bin/npm /usr/bin/npm

nodejsとnpmのバージョン確認

node -v
npm -v

pm2のインストール

下記コマンドを実行してpm2をインストールします。
sudo npm install -g pm2

k-nompのインストール

k-nompのビルド

下記コマンドを使用してk-nompをビルドします。
※ハードフォーク対応版ブランチからcloneします。
git clone -b koto-hf-dev https://github.com/yoshuki43/k-nomp
cd k-nomp
npm update ※途中で躓く場合はnpm audit fixを一度実行から再度npm updateして下さい。
npm install

k-nompの設定

cp config_example.json config.json
vi config.json

config.json
        <中略>       

        "port": {公開用ポート番号},
        "stratumHost": "{ドメイン名}",

     <中略>

vi coins/koto.json

koto.json
{
    "name": "Koto",
    "symbol": "KOTO",
    "algorithm": "yescrypt",
    "requireShielding": true,
    "nSubsidySlowStartInterval": 43200,
    "nSubsidyHalvingInterval": 1051200,
    "payFoundersReward": false,
    "percentFoundersReward": 20,
    "maxFoundersRewardBlockHeight": 849999,
    "foundersRewardAddressChangeInterval": 17709.3125,
    "vFoundersRewardAddress": [],
    "kotoFoundersReward": [
        {
            "comment": "for mainnet",
            "address": "k3EEgqMM8jpaGW6XXUHpv3kDprMfm1x1VEf",
            "start": 335600,
            "last": 1072799
        }
    ],
    "txfee": 0.0004
}

vi coins/koto-testnet.json

koto-testnet.json
        <中略>       

        "symbol": "TOKO",

     <中略>

vi node_modules/stratum-pool/lib/transactions.js

transactions.js
        <中略>       

        var nVersionGroupId = (txVersion & 0x7fffffff) >= 3 ? util.packUInt32LE(0x2e7d970) : new Buffer([]);

     <中略>

cp pool_configs/koto_example.json pool_configs/koto.json
vi pool_configs/koto.json

koto.json
{
        "enabled": true,
        <中略>
        "address": "{k1もしくはjzから始まるkアドレス}",
        <中略>
        "zAddress": "{zから始まるzアドレス}",
        <中略>
        "tAddress": "{k1もしくはjzから始まるkアドレス(上のaddressとは別のアドレス)}",
        <中略>
        "rewardRecipients": {
        "{k1もしくはjzから始まるkアドレス(手数料を受け取りたいアドレス)}": 1.0
        <中略>
}

k-nompの起動

sudo pm2 start init.js --name k-nomp

pm2のスタートアップ登録

pm2 startup

[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu

sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu

pm2 save

ログの確認

pm2 logs

おわりに

今回Kotoのハードフォーク対応プールの構築方法を記載しました。
ファイアウォールの設定などは各VPSのファイアウォール機能やufw等で適宜行って下さい。
もしプールを構築された場合は、KotoのDiscordチャンネルまでご一報頂けますと幸いです。
またご不明な点があれば上記チャンネルの「ROZ - mofumofu.me#1977」までお申し付け下さい。

参考サイト

ubuntu ユーザを追加して sudo 権限をつける
kotoをUbuntuにインストール
kotoのプールを作成
Ubuntuに最新のNode.jsを難なくインストールする
Node.jsのデーモン化ツールpm2をインストール

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0