lesson-3_Subnetをカスタムしよう
🌻 genesis file
このレッスンではSubnetをカスタムします。
genesis file
を作成し、それを元にSubnetを作成することで独自のカスタムを加えることができます。
📓 genesis file Subnet の初期設定を含むファイルです。 Subnet を作成する際、Avalanche はパラメータに基づいてジェネシスファイルを自動で生成します。 また、独自の genesis file を作成することもできます。これにより、Subnet の構成をより詳細に制御することができます。
前回のレッスンで作成したmySubnetのgenesis fileは以下のコマンドで内容を確認することができます。
cat ~/.avalanche-cli/subnets/mySubnet/genesis.json
または
avalanche subnet describe mySubnet --genesis
出力結果
% avalanche subnet describe mySubnet --genesis
{
"config": {
"chainId": 1111,
"feeConfig": {
"gasLimit": 8000000,
"targetBlockRate": 2,
"minBaseFee": 25000000000,
"targetGas": 15000000,
"baseFeeChangeDenominator": 36,
"minBlockGasCost": 0,
"maxBlockGasCost": 1000000,
"blockGasCostStep": 200000
},
"homesteadBlock": 0,
"eip150Block": 0,
"eip150Hash": "0x2086799aeebeae135c246c65021c82b4e15a2c451340993aacfd2751886514f0",
"eip155Block": 0,
"eip158Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"istanbulBlock": 0,
"muirGlacierBlock": 0,
"subnetEVMTimestamp": 0
},
"nonce": "0x0",
"timestamp": "0x0",
"extraData": "0x",
"gasLimit": "0x7a1200",
"difficulty": "0x0",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x0000000000000000000000000000000000000000",
"alloc": {
"8db97c7cece249c2b98bdc0226cc4c2a57bf52fc": {
"balance": "0xd3c21bcecceda1000000"
}
},
"airdropHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"airdropAmount": null,
"number": "0x0",
"gasUsed": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"baseFeePerGas": null
}
以下、主要部分にコメントをつけたので簡単にgenesis fileの中身を確認します。
{
"config": {
"chainId": チェーンID。
"feeConfig": {
"gasLimit": 1つのブロックで使用できるガスの総量。
"targetBlockRate": ブロックの生成間隔時間(秒)。
"minBaseFee": トランザクションで使用できる最小の基本料金。
"targetGas": 10秒間隔で消費するガスの目標量。利用量と目標量の比較で基本料金が増減されます。
"baseFeeChangeDenominator": 利用量と目標量の差を割る分母値。基本料金の増減具合を決定します。
"minBlockGasCost": ブロックの生産に課金するガスの最小量。
"maxBlockGasCost": ブロックの生産に課金するガスの最大量。
"blockGasCostStep": ブロックのガスコストの変化量を求める際に使用する値。
},
},
"gasLimit": feeConfig内のgasLimitと同じである必要があります。0x7a1200は8,000,000の16進数表記です。
"alloc": {
アドレスとその初期残高を定義します。
残高は10進数でも16進数でも定義可能です。
},
}