Full Consensus Node

フルコンセンサスノードを使用すると、Sunrise のコンセンサス層でブロックチェーンの履歴を同期することができます。

Chain upgrades(チェーンアップグレード)

チェーンのアップグレードを効率化し、ダウンタイムを最小限に抑えるために、ノードの管理に Cosmovisor を設定することをお勧めします。 Cosmovisor のチュートリアルに従ってください。 オンチェーンアップグレードを自動化するには、以下のオプションを設定します。

DAEMON_ALLOW_DOWNLOAD_BINARIES=true

Backups(バックアップ)

新しいバージョンの Cosmovisor を使用している場合、デフォルトの設定ではアップグレードが適用される前にステートのバックアップが作成されます。この機能は環境フラグを使用してオフにすることができます。

Alerting and monitoring(アラートとモニタリング)

アラートとモニタリングも望ましいでしょう - あなたの環境に適したソリューションを探索し、見つけることをお勧めします。Prometheus はすぐに利用可能であり、さまざまなオープンソースツールが存在します。

Hardware requirements(ハードウェア要件)

バリデータノードを実行するために推奨される最小限のハードウェア要件は以下の通りです。

  • Memory: 8 GB RAM (最小)

  • CPU: 4 cores

  • Disk: 250 GB SSD Storage

  • Bandwidth: 1 Gbps for Download/1 Gbps for Upload

If you are not using pruning, you are running an archive node, and it is recommended to have 500 GB of SSD storage. プルーニングを使用していない場合はアーカイブノードを運用していることになり、500 GB の SSD ストレージを用意することが推奨されます。

Dependencies(依存関係)

このチュートリアルは Ubuntu 22.04(LTS)で実行されます。環境構築のチュートリアルに従ってください。

Run the full consensus node(フルコンセンサスノードの実行)

Install(インストール)

Install Go 1.22

git clone https://github.com/SunriseLayer/sunrise.git
cd sunrise
git checkout $TAG
make install

Initialize(初期化)

chain-idmoniker を設定します。moniker はノードの名前です。

CHAIN_ID=sunrise-1
MONIKER="node-name"
sunrised init "$MONIKER" --chain-id $CHAIN_ID

これにより、~/.sunrise/config/に以下のファイルが生成されます。

  • genesis.json

  • node_key.json

  • priv_validator_key.json

Download the genesis file(ジェネシスファイルをダウンロードする)

For mainnet:

rm ~/.sunrise/config/genesis.json
curl -L https://raw.githubusercontent.com/sunrise-layer/network/main/launch/sunrise-1/genesis.json -o ~/.sunrise/config/genesis.json

For testnet:

rm ~/.sunrise/config/genesis.json
curl -L https://raw.githubusercontent.com/sunrise-layer/network/main/launch/sunrise-test-1/genesis.json -o ~/.sunrise/config/genesis.json

Option: Set persistent peers(永続的なピアを設定する)

PERSISTENT_PEERS=$(curl -sL https://raw.githubusercontent.com/sunrise-layer/network/main/launch/sunrise-1/peers.txt | tr '\n' ',')
echo $PERSISTENT_PEERS
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PERSISTENT_PEERS\"/" $HOME/.sunrise/config/config.toml

Set minimum gas prices(最小ガス価格の設定)

RPC ノードとバリデータノードについては、以下の最小ガス価格(minimum-gas-prices)を設定することをお勧めします。私たちはパーミッションレスな Wasm チェーンであるため、この設定はコントラクトのスパムや潜在的な Wasm コントラクト攻撃ベクトルからの保護に役立ちます。

$HOME/.sunrise/config/app.tomlで最小ガス価格を設定します。

sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0025urise\"/" $HOME/.sunrise/config/app.toml

Option: Additional settings(追加の設定)

必要に応じて、設定ファイル ~/.sunrise/config/app.toml を編集してください。

  • Enable は、API サーバーを有効にするかどうかを定義します。

sed -i '/\[api\]/,+3 s/enable = false/enable = true/' ~/.sunrise/config/app.toml;
  • EnableUnsafeCORSは、CORS を有効にするかどうかを定義します(安全ではありません - 自己責任で使用してください)。

sed -i 's/enabled-unsafe-cors = false/enabled-unsafe-cors = true/' ~/.sunrise/config/app.toml;

Storage and pruning configurations(ストレージとプルーニングの設定)

コンセンサスノードが sunrise-node ブリッジノードに接続されている場合、トランザクションのインデックス作成を有効にし、すべてのブロックデータを保持する必要があります。これは config.toml で以下の設定を行うことで実現できます。

Enable transaction indexing(トランザクションのインデックス化を有効にする)

indexer = "kv"

Retain all block data(すべてのブロックデータを保持する)

そして、app.toml では、min-retain-blocks をデフォルト設定のままにしておく必要があります。

min-retain-blocks = 0

Accessing historical state(過去のステートへのアクセス)

過去のステートを照会したい場合 — 例えば、過去の特定のブロック高におけるウォレットの残高を知りたい場合など — app.tomlpruning = "nothing" を設定して、アーカイブノードを実行する必要があります。ただし、この設定はリソースを多く消費し、大量のストレージを必要とすることに注意してください。

pruning = "nothing"

ストレージの要件を節約したい場合は、app.toml で pruning = "everything" を使用して、すべてをプルーニング(剪定)することを検討してください。

pruning = "everything"

Create (or restore) a local key pair(ローカルなキーペアの作成(または復元))

バリデーター用に新しいキーペアを作成するか、既存のウォレットを復元します。

# Create new keypair
sunrised keys add <your-key>
# Restore existing sunrise wallet with mnemonic seed phrase.
# You will be prompted to enter mnemonic seed.
sunrised keys add <your-key> --recover
# Query the keystore for your public address
sunrised keys show <your-key> -a

<your-key> を選んだキー名に置き換えてください。

Get some RISE tokens(RISE トークンを取得する)

バリデータと結合するには、RISE トークンが必要です。アクティブセットに入るには、十分なトークンが必要です。

Start the consensus node(コンセンサスノードを起動する)

Cosmovisor の設定とノードの起動については、以下の手順に従ってください。

Cosmovisor の使用は完全に任意です。Cosmovisor を使用しないことを選択した場合、バリデータがダウンタイムを持たず、ジェイルされないようにするために、ネットワークのアップグレードに確実に対応する必要があります。

Cosmovisor を使用しない場合は、次のコマンドを実行してください。

sunrised start

Syncing the node(ノードの同期)

sunrised デーモンを起動すると、チェーンはネットワークとの同期を開始します。ネットワークとの同期にかかる時間は、あなたの設定と現在のブロックチェーンのサイズによって異なりますが、非常に長い時間がかかる可能性があります。ノードのステータスを確認するには:

# Query via the RPC (default port: 26657)
curl http://localhost:26657/status | jq .result.sync_info.catching_up

このコマンドが true を返す場合、あなたのノードはまだ追いついている途中であることを意味します。そうでない場合、あなたのノードはネットワークの現在のブロックに追いついており、バリデータノードにアップグレードしても安全です。

最新のブロックに追いつくまでの時間を短縮したい場合は、他のノードからのスナップショットの使用を検討してください。

ブロック高 0 から追いつきたい場合は、各アップグレードのブロック高で sunrised をアップグレードする必要があります。

Last updated