3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?