Guide: How to build a Cardano Stake Pool ガイド:カルダノステークプールを構築する方法(編集中)

徒然草2.0

引用元:https://www.coincashew.com/coins/overview-ada/guide-how-to-build-a-haskell-stakepool-node#5-start-the-node

Guide: How to build a Cardano Stake Pool
ガイド:カルダノステークプールを構築する方法

On Ubuntu/Debian, this guide will illustrate how to install and configure a Cardano stake pool from source code on a two node setup with 1 block producer node and 1 relay node.
Ubuntu / Debianでは、このガイドは、1つのブロックプロデューサーノードと1つのリレーノードを持つ2つのノードセットアップでソースコードからCardanoステークプールをインストールおよび構成する方法を示します。

0. Prerequisites
0.前提条件
Mandatory skills for stake pool operators
ステークプールオペレーターの必須スキル
As a stake pool operator for Cardano, you will be competent with the following abilities:
Cardanoのステークプールオペレーターは、次の能力を習得します。
operational knowledge of how to set up, run and maintain a Cardano node continuously
Cardanoノードを継続的にセットアップ、実行、維持する方法に関する運用知識
a commitment to maintain your node 24/7/365
ノードを24時間365日維持することへの取り組み
system operation skills
システム運用スキル
server administration skills (operational and maintenance).
サーバー管理スキル(運用および保守)。
experience of development and operations (DevOps)
開発と運用の経験(DevOps)
experience on how to harden and secure a server.
サーバーを強化および保護する方法に関する経験。
passed the official Stake Pool School course.
ステークプールスクールの公式コースに合格。

Before continuing this guide, you must satisfy the above skills requirements.
このガイドを続ける前に、上記のスキル要件を満たしている必要があります。

Minimum Node Hardware Requirements
Two separate servers: 1 for block producer node, 1 for relay node
One air-gapped offline machine (cold environment)
Operating system: 64-bit Linux (i.e. Ubuntu 20.04 LTS)
Processor: 4 core CPU
Memory: 8GB RAM
Storage: 20GB SSD
Internet: Broadband internet connection with speeds at least 10 Mbps.
Data Plan: at least 1GB per hour. 720GB per month.
Power: Reliable electrical power
ADA balance: at least 505 ADA
ノードの最小ハードウェア要件
2つの別個のサーバー:1つはブロックプロデューサーノード用、1つはリレーノード用
1つのエアギャップオフラインマシン(寒い環境)
オペレーティングシステム:64ビットLinux(Ubuntu 20.04 LTSなど)
プロセッサー:4コアCPU
メモリー:8GB RAM
ストレージ:20GB SSD
インターネット:速度が10 Mbps以上のブロードバンドインターネット接続。
データプラン:1時間あたり少なくとも1GB。 1か月あたり720GB。
電力:信頼できる電力
ADA残高:505 ADA以上

Recommended Node Futureproof Hardware Setup
Three separate servers: 1 for block producer node, 2 for relay nodes
One air-gapped offline machine (cold environment)
Operating system: 64-bit Linux (i.e. Ubuntu 20.04 LTS)
Processor: 8 core or higher CPU
Memory: 16GB+ RAM
Storage: 1TB SSD
Internet: Broadband internet connections with speeds at least 100 Mbps
Data Plan: Unlimited
Power: Reliable electrical power with UPS
ADA balance: more pledge is better, to be determined by a0, the pledge influence factor
For instructions on installing Ubuntu, refer to the following:
推奨ノードの将来性のあるハードウェア設定
3つの別個のサーバー:1つはブロックプロデューサーノード用、2つはリレーノード用
1つのエアギャップオフラインマシン(寒い環境)
オペレーティングシステム:64ビットLinux(Ubuntu 20.04 LTSなど)
プロセッサー:8コア以上のCPU
メモリ:16GB + RAM
ストレージ:1TB SSD
インターネット:100 Mbps以上の速度のブロードバンドインターネット接続
データプラン:無制限
電源:UPSによる信頼性の高い電力
ADAバランス:プレッジの影響因子であるa0によって決定されるプレッジは多いほど良い
Ubuntuのインストール手順については、以下を参照してください。

If you are rebuilding or reusing an existing cardano-node installation, refer to section 18.2 on how to reset the installation.
既存のカルダノノードのインストールを再構築または再利用する場合は、インストールをリセットする方法についてセクション18.2を参照してください。

1. Install Cabal and GHC
1. CabalとGHCをインストールします

Press Ctrl+Alt+T. This will launch a terminal window.
Ctrl + Alt + Tを押します。これにより、ターミナルウィンドウが起動します。
First, update packages and install Ubuntu dependencies.
まず、パッケージを更新してUbuntuの依存関係をインストールします。

sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install git make tmux rsync htop curl build-essential pkg-config libffi-dev libgmp-dev libssl-dev libtinfo-dev libsystemd-dev zlib1g-dev make g++ tmux git jq wget libncursesw5 libtool autoconf -y

Install Libsodium.

mkdir $HOME/git
cd $HOME/git
git clone https://github.com/input-output-hk/libsodium
cd libsodium
git checkout 66f017f1
./autogen.sh
./configure
make
sudo make install

Install Cabal.

cd
wget https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-unknown-linux.tar.xz
tar -xf cabal-install-3.2.0.0-x86_64-unknown-linux.tar.xz
rm cabal-install-3.2.0.0-x86_64-unknown-linux.tar.xz cabal.sig
mkdir -p $HOME/.local/bin
mv cabal $HOME/.local/bin/

Install GHC.

wget https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-deb9-linux.tar.xz
tar -xf ghc-8.6.5-x86_64-deb9-linux.tar.xz
rm ghc-8.6.5-x86_64-deb9-linux.tar.xz
cd ghc-8.6.5
./configure
sudo make install

Update PATH to include Cabal and GHC and add exports. Your node’s location will be in $NODE_HOME. The cluster configuration is set by $NODE_CONFIG and $NODE_BUILD_NUM.
PATHを更新してCabalとGHCを含め、エクスポートを追加します。ノードの場所は$ NODE_HOMEになります。クラスタ構成は、$ NODE_CONFIGおよび$ NODE_BUILD_NUMによって設定されます。

echo PATH="$HOME/.local/bin:$PATH" >> $HOME/.bashrc
echo export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH" >> $HOME/.bashrc
echo export NODE_HOME=$HOME/cardano-my-node >> $HOME/.bashrc
echo export NODE_CONFIG=mainnet>> $HOME/.bashrc
echo export NODE_BUILD_NUM=$(curl https://hydra.iohk.io/job/Cardano/iohk-nix/cardano-deployment/latest-finished/download/1/index.html | grep -e "build" | sed 's/.*build\/\([0-9]*\)\/download.*/\1/g') >> $HOME/.bashrc
source $HOME/.bashrc
Update cabal and verify the correct versions were installed successfully.
cabal update
cabal -V
ghc -V

Cabal library should be version 3.2.0.0 and GHC should be version 8.6.5
Cabalライブラリはバージョン3.2.0.0で、GHCはバージョン8.6.5である必要があります

2. Build the node from source code
Download source code and switch to the latest tag. In this case, use tags/1.18.1

cd $HOME/git
git clone https://github.com/input-output-hk/cardano-node.git
cd cardano-node
git fetch --all
git checkout tags/1.18.1

Update the cabal config, project settings, and reset build folder.

echo -e "package cardano-crypto-praos\n flags: -external-libsodium-vrf" > cabal.project.local
sed -i $HOME/.cabal/config -e "s/overwrite-policy:/overwrite-policy: always/g"
rm -rf $HOME/git/cardano-node/dist-newstyle/build/x86_64-linux/ghc-8.6.5
Build the cardano-node from source code.
cabal build cardano-cli cardano-node

Building process may take a few minutes up to a few hours depending on your computer’s processing power.
Copy cardano-cli and cardano-node files into bin directory.

sudo cp $(find $HOME/git/cardano-node/dist-newstyle/build -type f -name "cardano-cli") /usr/local/bin/cardano-cli
sudo cp $(find $HOME/git/cardano-node/dist-newstyle/build -type f -name "cardano-node") /usr/local/bin/cardano-node

Verify your cardano-cli and cardano-node are the expected versions.

cardano-node version
cardano-cli version

4. Configure the block-producer node
4.ブロックプロデューサーノードを構成する

A block producer node will be configured with various key-pairs needed for block generation (cold keys, KES hot keys and VRF hot keys). It can only connect to its relay nodes.
ブロックプロデューサーノードは、ブロック生成に必要なさまざまなキーペア(コールドキー、KESホットキー、VRFホットキー)で構成されます。リレーノードにのみ接続できます。
A relay node will not be in possession of any keys and will therefore be unable to produce blocks. It will be connected to its block-producing node, other relays and external nodes.
リレーノードはキーを所有していないため、ブロックを生成できません。ブロック生成ノード、他のリレー、および外部ノードに接続されます。

For the purposes of this guide, we will be building two nodes on two separate servers. One node will be designated the block producer node, and the other will be the relay node, named relaynode1.
このガイドでは、2つの別々のサーバー上に2つのノードを構築します。 1つのノードはブロックプロデューサーノードとして指定され、もう1つのノードはrelaynode1という名前のリレーノードになります。
Configure topology.json file so that only relay nodes connect to the public internet and your block-producing node
topology.jsonファイルを構成して、リレーノードのみがパブリックインターネットとブロック生成ノードに接続します
the block-producing node can only connect to your relay nodes
ブロック生成ノードはリレーノードにのみ接続できます
On your block-producer node, run the following. Update the addr with your relay node’s public IP address.
ブロックプロデューサーノードで、次のコマンドを実行します。 addrをリレーノードのパブリックIPアドレスで更新します。

5. Configure the relay node(s)
5.リレーノードを構成します。
On your other server that will be designed as your relay node or what we will call relaynode1 throughout this guide, carefully repeat steps 1 through 3 in order to build the cardano binaries.
リレーノードとして設計する他のサーバー、またはこのガイド全体でrelaynode1と呼ぶサーバーで、カルダノバイナリを構築するために手順1〜3を慎重に繰り返します。
You can have multiple relay nodes as you scale up your stake pool architecture. Simply create relaynodeN and adapt the guide instructions accordingly.
ステークプールアーキテクチャをスケールアップするときに、複数のリレーノードを使用できます。単にrelaynodeNを作成し、それに応じてガイドの説明を変更してください。
On your relaynode1, run with the following after updating with your block producer’s public IP address.
relaynode1で、ブロックプロデューサーのパブリックIPアドレスで更新した後、次のコマンドで実行します。

cat > $NODE_HOME/${NODE_CONFIG}-topology.json << EOF 
 {
    "Producers": [
      {
        "addr": "<BLOCK PRODUCER NODE'S PUBLIC IP ADDRESS>",
        "port": 6000,
        "valency": 2
      },
      {
        "addr": "relays-new.cardano-mainnet.iohk.io",
        "port": 3001,
        "valency": 2
      }
    ]
  }
EOF

Valency tells the node how many connections to keep open. Only DNS addresses are affected. If value is 0, the address is ignored.
Valencyは、開いたままにする接続の数をノードに通知します。 DNSアドレスのみが影響を受けます。値が0の場合、アドレスは無視されます。

Port Forwarding Tip: You’ll need to forward and open ports 6000 to your nodes. Check with https://canyouseeme.org/ .
ポート転送のヒント:ポート6000をノードに転送して開く必要があります。 https://canyouseeme.org/で確認してください。

6. Configure the air-gapped offline machine
6.エアギャップオフラインマシンを構成する

echo export NODE_HOME=$HOME/cardano-my-node >> $HOME/.bashrc
source $HOME/.bashrc
mkdir -p $NODE_HOME

Copy from your hot environment, your block producer node, a copy of the cardano-cli binaries to your cold environment, this air-gapped offline machine. You can use USB keys or other secure file transfer method.
ホット環境、ブロックプロデューサーノード、カルダノクリバイナリのコピーをコールド環境(このエアギャップオフラインマシン)にコピーします。 USBキーまたはその他の安全なファイル転送方法を使用できます。

※7はskip

8. Start the nodes
8.ノードを起動します
Press Ctrl+Alt+T. This will launch a terminal window.
Add execute permissions to the script, start your stake pool, and begin syncing the blockchain!
cd $NODE_HOME
Ctrl + Alt + Tを押します。これにより、ターミナルウィンドウが起動します。
スクリプトに実行権限を追加し、ステークプールを開始して、ブロックチェーンの同期を開始します!

chmod +x startBlockProducingNode.sh
./startBlockProducingNode.sh
cd $NODE_HOME
chmod +x startRelayNode1.sh
./startRelayNode1.sh

To stop your node, you can press ‘q’ or run the command killall cardano-node
ノードを停止するには、「q」を押すか、killall cardano-nodeコマンドを実行します

Pro tip: If you synchronize a node’s database, you can copy the database directory over to your other node directly and save time.
プロのヒント:ノードのデータベースを同期する場合、データベースディレクトリを他のノードに直接コピーして時間を節約できます。

Congratulations! Your node is running successfully now. Let it sync up.
おめでとう!現在、ノードは正常に実行されています。同期させてください。

9. Generate block-producer keys
The block-producer node requires you to create 3 keys as defined in the Shelley ledger specs:
stake pool cold key (node.cert)
stake pool hot key (kes.skey)
stake pool VRF key (vrf.skey)
First, make a KES key pair.
cd $NODE_HOME
cardano-cli shelley node key-gen-KES \
–verification-key-file kes.vkey \
–signing-key-file kes.skey
KES (key evolving signature) keys are created to secure your stake pool against hackers who might compromise your keys. On mainnet, these will be regenerated every 90 days.
Cold keys must be generated and stored on your air-gapped offline machine. The cold keys are the files stored in $HOME/cold-keys.
Make a directory to store your cold keys
9.ブロックプロデューサーキーを生成する
ブロックプロデューサーノードでは、Shelley元帳仕様で定義されている3つのキーを作成する必要があります。
ステークプールのコールドキー(node.cert)
ステークプールのホットキー(kes.skey)
ステークプールVRFキー(vrf.skey)
まず、KES鍵ペアを作成します。
cd $ NODE_HOME
cardano-cli shelleyノードkey-gen-KES \
–verification-key-file kes.vkey \
–signing-key-file kes.skey
KES(鍵進化署名)鍵は、鍵を危険にさらすハッカーからステークプールを保護するために作成されます。メインネットでは、これらは90日ごとに再生成されます。
コールドキーは、エアギャップオフラインマシンで生成および保存する必要があります。コールドキーは、$ HOME / cold-keysに保存されているファイルです。
コールドキーを格納するディレクトリを作成します

コメント

タイトルとURLをコピーしました