テストフェーズ:Gentx(Genesisトランザクション)の作成方法
# Verify Go (required: 1.21+)
go version
# Verify jq (required for scripts)
jq --version
上記がインストールされていない場合は、インストールして下さい
Go : Go インストール
jq :
- macOS:
brew install jq - Linux:
sudo apt-get install jqまたはsudo yum install jq
- macOS:
git clone https://github.com/deep-thought-labs/infinite.git
cd infinite
git switch migration
make install
機能:infinitedバイナリをコンパイルしてインストールする
推定所要時間: 2~5 分 (初回、依存関係のダウンロード)
コンパイル中にエラーが出た場合は、必要パッケージを導入して再ビルドして下さい
# 必要パッケージを導入
sudo apt update
sudo apt install -y build-essential pkg-config libssl-dev
# 再ビルド
cd ~/infinite
make clean
make install
バイナリは次の場所にインストールされます:$HOME/go/bin/infinited
直接コマンドを使用するには、$HOME/go/binPATH に含まれていることを確認してください。
# Add to PATH (add to ~/.bashrc or ~/.zshrc)
export PATH=$PATH:$HOME/go/bin
# Verify
which infinited
infinited version
# You should see something like:
# infinite
# infinited version 0.1.10
メインネット
# Initialize the chain with a moniker and chain ID (mainnet)
infinited init Xenia --recover --chain-id infinite_421018-1 --home ~/.infinited
注: チェーン ID は
customize_genesis.shで自動的に更新されますが、一貫性を保つために正しい初期チェーン ID を使用する必要があります。
テストネットとクリエイティブは、以下の--chain-idに置き換えて下さい。
# テストネット
--chain-id infinite_421018001-1
# クリエイティブ
--chain-id infinite_421018002-1
これが行うこと: デフォルトの Cosmos SDK 値を使用して基本的なジェネシス ファイルを作成します (「ステーク」額面を使用 - 次の手順でカスタマイズされます)。
⚠️必須:生成されたジェネシスはinfinited initCosmos SDKのデフォルト値を使用します。Infinite Driveのカスタマイズを適用する必要があります。
メインネット
# infiniteのルートディレクトリから実行
./scripts/customize_genesis.sh ~/.infinited/config/genesis.json --network mainnet
テストネットとクリエイティブは、以下の--networkに置き換えて下さい。
# テストネット
--network testnet
# クリエイティブ
--network creative
このスクリプトの機能:
- ✅ すべてのモジュールの額面をネットワーク固有の額面に設定します
- ✅ 完全なトークンメタデータを追加します
- ✅ EVMプリコンパイルとERC20ペアを構成する
- ✅ コンセンサス、ステーキング、ミント、ガバナンス、スラッシュ、手数料市場、分配パラメータを設定します
- ✅ 自動バックアップを作成
構成ファイルの場所: スクリプトは、次の場所にある JSON 構成ファイルからすべてのネットワーク固有のパラメータを読み取ります。
メインネット:
scripts/genesis-configs/mainnet.jsonテストネット:
scripts/genesis-configs/testnet.jsonクリエイティブ:
scripts/genesis-configs/creative.json
これらのファイルには、ネットワーク固有のパラメータ(額面、トークンメタデータ、ステーキング、ミント、ガバナンス、スラッシング、手数料市場、分配、コンセンサスパラメータ)がすべて含まれています。
⚠️すでに作成済みのアカウントがあり、ニーモニックを安全に保管している前提で進めます。
infinited keys add validator --recover --keyring-backend file --home ~/.infinited
validatorの部分は自分で管理しやすいアカウント名に変更して下さい
# Add the account to genesis with initial balance (example: 100 tokens)
infinited genesis add-genesis-account validator 100000000000000000000drop \ --keyring-backend file \ --home ~/.infinited
量:
100000000000000000000drop= 100 Improbability (100 × 10^18)
金額の形式:アトミック単位(10の18乗)を使用してください。必ずデノムサフィックス(drop, tdrop, cdrop)を含めてください。
# テストネット
tdrop
# クリエイティブ
cdrop
メインネット
# Create a gentx for the validator (example: self-delegate 1 token)
infinited genesis gentx validator 1000000000000000000drop \
--chain-id infinite_421018-1 \
--commission-rate "0.10" \
--commission-max-rate "0.20" \
--commission-max-change-rate "0.01" \
--min-self-delegation "1000000000000000000" \
--keyring-backend file \
--home ~/.infinited
テストネットとクリエイティブは以下の単位と--chain-idに置き換えて下さい
# テストネット
1000000000000000000tdrop
--chain-id infinite_421018001-1
# クリエイティブ
1000000000000000000cdrop
--chain-id infinite_421018002-1
--commission-rate "0.01" \
--commission-max-rate "0.05" \
パラメータ:
validator: アカウント名(キーリングに存在し、Genesisに資金がある必要があります)金額: 自己委任する金額(1トークン = 1 × 10^18、アカウント残高以下である必要があります)
- メインネット:
1000000000000000000drop - テストネット:
1000000000000000000tdrop - クリエイティブ:
1000000000000000000cdrop
- メインネット:
--chain-id:infinited initで使用されているチェーンIDと一致する必要があります- メインネット:
infinite_421018-1 - テストネット:
infinite_421018001-1 - クリエイティブ:
infinite_421018002-1
- メインネット:
--commission-rate: 初期手数料(例:10% = “0.10”、クリエイティブ使用1% = “0.01”)--commission-max-rate: 最大手数料(例:20% = “0.20”、クリエイティブ使用5% = “0.05”)--commission-max-change-rate: 更新ごとの最大変更 (例: 1% = “0.01”)--min-self-delegation: 自己委任する最小トークン数(アトミック単位、例:1トークン = “10000000000000000000”)
# Collect all gentx files into genesis
infinited genesis collect-gentxs --home ~/.infinited
⚠️重要:
- チェーンはブロックを生成するためにジェネシスに少なくとも1つのバリデータを必要とする
collect-gentxsを実行しない場合、チェーンは開始されますが、ブロックは生成されません。- すべてのバリデータは同じ
--chain-idを使用する必要があります
# Validate the genesis file
infinited genesis validate-genesis --home ~/.infinited
これは以下をチェックします:
- ✅ すべてのデノミネーションの一貫性
- ✅ 総供給量は残高の合計に等しい
- ✅ バリデーターの設定が正しい
- ✅ JSON構造は有効であること
ファイナライズされたgenesis.jsonは、起動前にネットワーク内のすべてのノードに配布される必要があります。
# Copy genesis to all validator nodes
scp ~/.infinited/config/genesis.json user@validator1:/path/to/.infinited/config/
scp ~/.infinited/config/genesis.json user@validator2:/path/to/.infinited/config/
⚠️重要:すべてのノードは完全に同じ genesis.jsonファイルを使用する必要があります。少しでも相違があると、ネットワークがフォークします。
メインネット
infinited start \
--chain-id infinite_421018-1 \
--evm.evm-chain-id 421018 \
--home ~/.infinited
テストネット:
infinited start \
--chain-id infinite_421018001-1 \
--evm.evm-chain-id 421018001 \
--home ~/.infinited
クリエイティブ:
infinited start \
--chain-id infinite_421018002-1 \
--evm.evm-chain-id 421018002 \
--home ~/.infinited
常に二つのチェーンIDを指定して下さい:
--chain-id: コスモスチェーンID (形式:{name}_{number}-{version})--evm.evm-chain-id: EVMチェーンID(整数、EIP-155)