custom-network-preset.yml（bootstrap）覚書

# 概要

これはSymbolノード(プライベート)の各種設定の覚書です。

`custom-network-preset.yml`とはSymbolノードを一から構築（symbol-networkツールを使ってプライベートネット構築など）する際に必要となる大元の設定ファイルのことです。
symbol-networkツールを使用してノードを立てる際には`custom-network-preset.yml`の他に`key-store.yml`と`network-input.yml`が必要になります。
※ この記事では`symbol-network`ツールの使い方は説明しません。

# 各種設定

以下の`custom-network-preset.yml`はbootstrap指定時のものです。（一部追記あり）
symbol-networkツールを使用する際には `testnet`,`mainnet`,`bootstrap`のプリセットが指定できます。

```custom.network-preset.yml

maxBondedTransactionLifetime: 48h # アグリゲートボンデッドトランザクションの生存期間
blockGenerationTargetTime: 30s # ブロック生成時間
symbolServerImage: symbolplatform/symbol-server:gcc-1.0.3.6 # サーバーイメージ
symbolRestImage: symbolplatform/symbol-rest:2.4.3 # RESTイメージ
symbolExplorerImage: symbolplatform/symbol-explorer:1.1.1-alpha-202110290945
symbolFaucetImage: symbolplatform/symbol-faucet:1.0.1-alpha-202110131930
mongoImage: mongo:5.0.15 # データベースのイメージ
reservedRootNamespaceNames: symbol, symbl, xym, xem, nem, user, account, org, com, biz, net, edu, mil, gov, info # ネームスペース（ここで指定されているネームスペースは取得することができない）
maxMosaicsPerAccount: 1000　 # １アカウントが保持できるモザイクの数量
maxValueSize: 1024 # メッセージサイズ
maxSecretLockDuration: 365d # シークレットロックの最大期間
maxNamespaceDuration: 1825d # ネームスペースの最大期間
networkDescription: Private Net
initialCurrencyAtomicUnits: 8998999998000000 # 基軸通貨の発行料
maxMosaicAtomicUnits: 9000000000000000
totalChainImportance: 15000000 # ネットワークの総インポータンス
minHarvesterBalance: 500 # 最低ハーベストバランス
maxHarvesterBalance: 50000000000000 # 最大ハーベストバランス
networkType: 152
minVoterBalance: 50000
baseNamespace: symbol
explorerUrl: http://localhost:90/
faucetUrl: http://localhost:100/
beneficiaryAddress: ''
votingKeyDesiredLifetime: 720
votingKeyDesiredFutureLifetime: 120
lastKnownNetworkEpoch: 1
restExtensions: accountLink, aggregate, lockHash, lockSecret, mosaic, metadata, multisig, namespace, receipts, restrictions, transfer
nemesis:
    mosaics:
        -
            name: xym # 基軸通貨
            divisibility: 6
            duration: 0
            supply: 8998999998000000
            isTransferable: true
            isSupplyMutable: false
            isRestrictable: false
            accounts: 5
        -
            name: harvest # ハーベストモザイク
            divisibility: 3
            duration: 0
            supply: 15000000
            isTransferable: true
            isSupplyMutable: true
            isRestrictable: false
            accounts: 2
inflation: # インフレーションの設定
    starting-at-height-1: 0
    starting-at-height-10000: 0
nemesisSeedFolder: nemesis-seed
nemesisSignerPublicKey: B8571D19AE6B33A45167038F81E3F439A15B***********************
harvestNetworkFeeSinkAddress: TBBFYS4MFKDBUBUOJ437OWWQYXTZS2C2RIU2M2Q
namespaceRentalFeeSinkAddress: TDSB2HGGQ4KAKWW367QYHPHZG6IVTPIXJRCQQDY
mosaicRentalFeeSinkAddress: TA2XFWJKMURU7E5IHW2PT37GWOPEX3HNPBUK27Y
nemesisGenerationHashSeed: C8445F18765E3CB341113C022081***********************
epochAdjustment: 1703577141s
knownRestGateways:
    - https://private-dual-001.example.com:3001
    - https://private-dual-002.example.com:3001
knownPeers:
    -
        publicKey: DAD43D27A4ADEBA168B13*****************
        endpoint:
            host: private-dual-001.example.com
            port: 7900
        metadata:
            name: private-dual-001
            roles: Api,Peer,Voting
    -
        publicKey: 730F980C458837930CE433D**************************
        endpoint:
            host: private-dual-002.example.com
            port: 7900
        metadata:
            name: rivate-dual-002
            roles: Api,Peer,Voting
```

# あとがき

各種ネットワークの設定はなかなかに難解です。
正しく設定をしないとノードがクラッシュして起動しません。
また、ハーベスト権を持たない状態でノードを起動すると永遠にブロックが進まないといったことも発生するので注意が必要です。

テストネットの設定を参考にしながらインフレーションの設定を行なってみたのですが、ネメシスブロックは生成できてもノードが正常起動しないので（設定を読み込むとノードがクラッシュする）もし成功したら追記します。

# 参考：

https://docs.symbol.dev/ja/guides/network/configuring-network-properties.html