テストネットのネットワーク設定をみてみる

# はじめに

SymbolのAPIの`network/properties`にアクセスするとSymbolのネットワークの設定を見ることができます。
この設定はネットワーク内で共有されており、各ノードはこの設定に従い協調して動作します。

https://sym-test.opening-line.jp:3001/network/properties

この記事ではこの設定の主要なものについて解説します。

## network
- nemesisSignerPublicKey
 - 初期ブロックを作成したアカウントの公開鍵
 - テストネットの値:`78F0F6FFDE5C130777506FE2A597ADC5E98BD46041ABF775908299FE94BFD5D0`
 - generationHashSeed  - 初期に生成されるハッシュシード。リプレイ攻撃を防ぐためにトランザクションの署名時に必要。ネットワーク毎に異なる
 - テストネットの値: `6C1B92391CCB41C96478471C2634C111D9E989DECD66130C0430B5B8D20117CD `
- epochAdjustment
 - ネットワーク上の時間とUNIXタイムの差分
 - テストネットの値: `1573430400s`

## chain
- enableVerifiableState
 - ステートハッシュを計算して各ブロックの状態を完全に検証可能にするか
 - テストネットの値: `true`
- enableVerifiableReceipts
 - レシートを軽サインして各ブロックの状態変化を完全に検証可能にするか
 - テストネットの値: `true`
- currencyMosaicId
 - 基軸通貨のモザイクID
 - テストネットの値: `0x5B66'E76B'ECAD'0860`
- harvestingMosaicId
 - ハーベスティング用もモザイクID
 - テストネットの値: `0x5B66'E76B'ECAD'0860`
 - パブリックチェーンでは基軸通貨と同じ
- blockGenerationTargetTime
 - ブロック生成目安時間
 - テストネットの値: `30s`
- importanceGrouping
 - 重要度の計算間隔。この値の倍数のブロックでのみ重要度が計算される
 - テストネットの値: `180`
- importanceActivityPercentage
 - 重要度の計算のうち、使用した手数料などネットワークアクティビティを考慮する割合
 - テストネットの値: `5`
- maxRollbackBlocks
 - ロールバック可能なブロック数
 - テストネットの値: `0` (無限と思われる)
- maxTransactionLifetime
 - トランザクションの最大有効期限
 - テストネットの値: `6h`
- initialCurrencyAtomicUnits
 - 基軸通貨の初期供給量
 - テストネットの値: `7'831'975'436'000'000`
- maxMosaicAtomicUnits
 - 設定可能なモザイクの最大供給量(絶対値)
 - テストネットの値: `9'000'000'000'000'000`
- totalChainImportance
 - ネットワーク内における重要度の総量 
 - テストネットの値: `7'831'975'436'000'000`
- minHarvesterBalance
 - ハーベスティングに参加するためのハーベスト用通貨の最低保有量(絶対値)
 - テストネットの値: `10'000'000'000`
- maxHarvesterBalance
 - ハーベスティングに参加できるハーベスト用通貨の最大保有量(絶対値)
 - テストネットの値: `50'000'000'000'000`
- minVoterBalance
 - ファイナライズの投票に参加するためのハーベスト用通貨の最低保有量(絶対値)
 - テストネットの値: `3'000'000'000'000`
- harvestBeneficiaryPercentage
 - 委任先のノードが設定したアカウントが受け取るハーベスト報酬の割合
 - テストネットの値: `25`
- harvestNetworkPercentage
  - ネットワークが受け取るハーベスト報酬の割合
  - テストネットの値: `5`
- harvestNetworkFeeSinkAddress
  - ネットワークが受け取るハーベスト報酬の受取先アドレス
  - テストネットの値: `TDGY4DD2U4YQQGERFMDQYHPYS6M7LHIF6XUCJ4Q`
- maxTransactionsPerBlock
  - 1ブロックあたりの最大Tx数 (内部Txも含む)
  - テストネットの値: `6'000`

# plugin:catapult.plugins.aggregate	
- maxTransactionsPerAggregate
  - アグリゲートトランザクションに含められる内部Tx数
  - テストネットの値: `100`
- maxCosignaturesPerAggregate
  - 連署人数の最大値
  - テストネットの値: `25`
- maxBondedTransactionLifetime
  - Bondedトランザクションの最大有効期限
  - テストネットの値: `48h`

#plugin:catapult.plugins.lockhash
- lockedFundsPerAggregate
  - ロックする通貨の量(絶対値)
  - テストネットの値: `10'000'000`
- maxHashLockDuration
  - ハッシュロックTxの最大有効期間
  - テストネットの値: `2d`

# plugin:catapult.plugins.locksecret	
- maxSecretLockDuration
  - シークレットロックの最大有効期間
  - テストネットの値: `365d`
- minProofSize
  - proofの最低サイズ(byte)
  - テストネットの値: `20`
- maxProofSize
  - proofの最大サイズ(byte)
  - テストネットの値: `1024`

# plugin:catapult.plugins.metadata	
- maxValueSize
 - 値の最大サイズ
 - テストネットの値: `1024`

# plugin:catapult.plugins.mosaic
- maxMosaicsPerAccount
  - 1つのアカウントで保有できるモザイクの数
  - テストネットの値: `1000`
- maxMosaicDuration
  - モザイクの最大有効期限
  - テストネットの値: `3650d`
- maxMosaicDivisibility
  - モザイクの可分性の最大値
  - テストネットの値: `6`

# plugin:catapult.plugins.multisig	
- maxMultisigDepth
  - マルチシグアカウントの階層の最大値
  - テストネットの値: `3`
- maxCosignatoriesPerAccount
  - マルチシグアカウントの連署人の最大値
  - テストネットの値: `25`
- maxCosignedAccountsPerAccount
  - 1つのアカウントでマルチシグアカウントの連署人になれる数
  - テストネットの値: `25`

# plugin:catapult.plugins.namespace	
- maxNameSize
  - ルートネームスペースの最大長
  - テストネットの値: `64`
- maxChildNamespaces
  - 子ネームスペースの最大長
  - テストネットの値: `256` 
- maxNamespaceDepth
  - ネームスペースの階層の最大値
  - テストネットの値: `3`
- minNamespaceDuration
  - ネームスペースの最低保有期間
  - テストネットの値: `30d`
- maxNamespaceDuration
  - ネームスペースの最大保有期間
  - テストネットの値: `1825d`
- namespaceGracePeriodDuration
  - 期限切れモザイクの救済期間
  - テストネットの値: `1d`
- reservedRootNamespaceNames
  - 予約済のルートネームスペース
  - テストネットの値: `symbol, symbl, xym, xem, nem, user, account, org, com, biz, net, edu, mil, gov, info`

# plugin:catapult.plugins.restrictionaccount	
- maxAccountRestrictionValues
  - 1つのアカウントが設定可能なアカウント制限の数
  - テストネットの値: `512`

# plugin:catapult.plugins.restrictionmosaic	
- maxMosaicRestrictionValues
  - 1つのモザイクが設定可能なモザイク制限の数
  - テストネットの値: `20`

# plugin:catapult.plugins.transfer	
- maxMessageSize
  - メッセージの最大長
  - テストネットの値: `1024`