Symbolノード起動時のカスタムプリセットで使えそうなものをまとめていく


ノード構築をなんとなくやってませんか?
私はなんとなくでやってます。そろそろカスタムプリセットで設定できる項目について調べてみたので、アドベントカレンダーの場を借りて記事にします。
コンフィグから各サーバーの動作を知る手がかりになればと思いながら調べています。

※随時更新予定です。

この辺りの項目がプリセットで上書きされていく感じですね。
configuring node properties
gihub symbol-sdk preset guide

Restノードのスロットリング(アクセス制限)

いろいろな方の設定値を拝見していると平常時40、バースト時80くらいが良さそうですね。
throttlingRateは公式サンプルでは1000となっていますが、この設定合っているのでしょうか?

throttlingBurst: 80
throttlingRate: 40

このあたりで設定されています。
catapult-rest/bootstrapper.js at 15922d068158aa49a6e62feb4a2a6681e8762665 · nemtech/catapult-rest · GitHub

ノードのfee設定

手数料を徴収しないこともできるようですね。

minFeeMultiplier: 0

ここを見るとデフォルトが0のようですね。

RESTゲートウェイを開くかどうか

外部に開放したくない場合に使うようです。

gateways:
    - openPort: false

ノード名とホスト名

ノードリスト (testnet)で確認できますね。

複数ノードをアップデートすることもできるようです

nodes:
    - friendlyName: My node custom friendly name
      host: 'myNode.custom.hostname'

ハーベスティング系の設定

いずれも自分のものを入れておくと良いかと思います。
署名用の秘密鍵については説明不要かと思います。

nodes:
  - voting: true
    signingPrivateKey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    vrfPrivateKey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    votingPrivateKey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

voting,votingキーとは?

ファイナライズの際にノードによる投票(voting)が行われます。
こちらに参加するかどうかとどのキー(votingPrivateKey)を使うかを指定するか決めることができます。

vrfキーとは?

こちらは「テストノードを建ててハーベスティングまで〜系の記事」に出てきますね。
ハーベスティングに必要なものです。

vrfキーには以下の目指せ北海道さんの記事にあるようにジェネレーションハッシュを、vrfキーによってランダムで予測不能な値にすることができる役割があり、それによってハーベストアカウントを予測不可能なものにします。

【NEM技術勉強会】8.4 ブロックジェネレーションハッシュ 8.5 ブロックのHit値とTarget値【Symbol白書】

上記2つのキーは以下のコマンドでリンクトランザクションを発行します。

symbol-bootstrap link

設定変更のあとは?

symbol-bootstrap run のドキュメントによると --resetDataをつけてあげるとkey等の情報はそのままDBを作り直してくれるそうです。