新しい ブロック を生成するプロセスをハーベスティングと呼びます。
このプロセス中には、ブロックをハーベストする アカウント – ハーベスタ と呼びます – はブロックに追加された トランザクション手数料 報酬と生成された インフレーション トークンが提供されます。
アカウントがブロックをハーベストすると、そのブロックは自身の ヘッダ にハーベストアカウントによって生成された公開キーと署名を記録します。
インポータンススコア はそのアカウントがハーベスティングがオンになっていて、他のすべてのアカウントもハーベストしている場合に、アカウントが次のブロックをハーベストする確率を決定します。
Symbol のパブリックネットワークはアカウントが少なくとも 10,000
ハーベスティングモザイク を保有する必要があることを定義しています。適格なアカウントは ノードの運用 または リモートノード にデリゲートすることでインポータンススコアを新しいブロック生成のために使用することができます。
選択した方法に関係なく、ハーベスティングをアクティブ化したいアカウントは、最初に有効な VrfKeyTransaction を通知します。VRF トランザクションはハーベスタアカウントと 2 番目のキーペアをリンクして、ブロックの生成とリーダーの選択をランダム化します。
Symbol ソフトウェアはビジネスニーズに合わせたハーベスティングを目的とした モザイク定義 をサポートします。
例えばコンソーシアムネットワークではインフラを運営する企業間でハーベスティングモザイクを配布することができますが、他の参加者はサービスを利用するために 通貨モザイク を支払う必要があります。
これとは対照的に、パブリックネットワークではトランザクション手数料の支払いとネットワーク運用には同じモザイクを使用することがあります。たとえば Symbol のパブリックネットワークでは symbol.xym
をハーベストモザイクとして使用して、適格な参加者が新しいブロックをハーベストできるようにしています。
ネットワークオペレーターはハーベスト報酬 (ブロック 手数料 および インフレーション)の割合を受け取る ネットワーク手数料シンクアカウント を定義できます。パブリックネットワークにおいて、この手数料はスーパーノードプログラムの作成、ファイナライズプロセスに参加するアカウントへの報酬、またはネットワーク開発の前進に使用できます。デフォルトでは、パブリックテストネットワークはこの割合を5%に設定します。
さらに、各ノードは 受益者アカウント を設定して、ハーベスト報酬の割合 (最大25%) を共有できます。ノードオペレータはこの機能を使用して、ノードサポータのインセンティブ構造を作成できます。
受取人の共有比率とネットワークシンクアカウントは ネットワークごとに設定可能 です。
ネットワークシンクに対するネットワークの共有率が20%であり、受益者に対するネットワークの共有率が10%である場合の報酬区分
注釈
受益者の割合の計算は、ネットワークシンク計算後に行われます。ノードオペレーターが受取人またはネットワーク手数料シンクを定義しない場合、すべての報酬はブロック署名者に送られます。
適格なアカウントはノードを実行して新しいブロックを収集できます。ローカルでハーベスティングするために、アカウントは config-harvesting.properties ファイルに次のプロパティを記入します:
プロパティ | タイプ | 説明 | Default |
---|---|---|---|
harvesterSigningPrivateKey | string | ハーベスタアカウントの秘密鍵。パブリックネットワークでは、このアカウントが 0 より大きいインポータンススコアを得るには、少なくとも 10,000 ハーベスティングモザイク ユニットを保有している必要があります。 |
|
harvesterVrfPrivateKey | string | アカウントにリンクされた VRF 秘密鍵。 | |
enableAutoHarvesting | bool | true の場合、デリゲートハーベスティングが有効になります。 | false |
maxUnlockedAccounts | uint32_t | デリゲートハーベスティングアカウントの最大数 | 5 |
delegatePrioritizationPolicy | harvesting::DelegatePrioritizationPolicy | ノード一度が保持した maxUnlockedAccounts アカウントを維持するための、デリゲートハーベスター優先順位付けポリシー。可能な値は 「Importance」 または 「Age」 です。 |
Importance |
beneficiaryAddress | Address | HarvestBeneficiaryPercentage によって定義された、ブロック手数料の割合を受け取るアカウントのアドレス。 | 0000000000000000000000000000000000000000000000000000000000000000 |
ローカルハーベスティングでは、プライベートキーを格納しているノードのインスタンスに誰もアクセスしない限りは安全です。
デリゲートハーベストにより、アカウントのインポータンススコアを使用して、ローカルでノードを実行しなくても、新しいブロックを作成して報酬を受け取ることができます。
適格なアカウントはそのインポータンススコアを新しい プロキシアカウント に委任できます。プロキシアカウントの秘密鍵は、デリゲートハーベストの接続を実行するローカルハーベストを実行している任意のノードと安全に共有できます。
デリゲートハーベスティングの有効化
デリゲートハーベスティングを有効にするには、アカウントの所有者が AccountKeyLinkTransaction をアナウンスすることでインポータンススコアをプロキシアカウントにリンクする必要があります。リモートアカウントがデリゲートハーベストを受け入れられるためには、リモートアカウントがトランザクションを送受信したことがなく、以前に別のアカウントにリンクされたことがあってはなりません。
注釈
リモートアカウントはデリゲートアカウントである間、トランザクションに関与できません。
次に、アカウントは TransferTransaction を用いて 特別な暗号化メッセージ をノードへ送信する必要があります。このメッセージは受信者だけが解読できるように AES を用いて暗号化されたリモートの プロキシ秘密鍵 が含まれていなければなりません。
ノードは WebSockets を通じて暗号化メッセージを受信します。ノードがデリゲートハーベスティングをする秘密鍵を復号すると、候補アカウントが条件を満たす場合、ノードの所有者はリモートアカウントをデリゲートハーベスターとして追加できます。
リモート秘密鍵は ディスクに保存されている ため、ノードが一時的に切断された場合でも、ノードがネットワークに再接続すると、永続的にデリゲートハーベスターが再確立されます。さらに暗号化メッセージを使用すると、ノード情報の バックアップ が作成されます。デリゲートキーを含むディスクが破損や破壊された場合でも、ノード所有者はブロックチェーンを照会してデータを取得できます。
セキュリティに関して、プロキシの秘密鍵を共有しても、次の理由から元のアカウントが侵害されることはありません:
以下の条件を満たす場合、リモートハーベスターは全報酬を受け取ることができません:
ローカルハーベスティング | デリゲートハーベスティング | |
---|---|---|
設定 | catapult-server ノードのセットアップ | リモートハーベスティングの有効化 |
コスト | ノードのメンテナンス(電気、VPNのコスト) + VrfKeyLinkTransaction アナウンス手数料 | VrfKeyLinkTransaction + AccountKeyLinkTransaction + TransferTransaction アナウンス手数料 |
セキュリティ | ノードは秘密鍵を保存します。 | プロキシ秘密鍵はノードと共有されます。 |
報酬 | トータル報酬。ノード所有者は報酬の一部を受取アカウントと共有できます。 | 合計報酬 – ノードの受益者分配 |
お探しのものは見つかりましたか? フィードバックをください。