報酬とモニタリング
登録済みのライトノードには、ライトノード割り当ての一部が付与されますが、その対象資格を維持し続けるには健全な状態を保つ必要があります。このページでは、ライトノード報酬シェア3%、報酬の付与と請求の仕組み、ノードが委任に対して行うこと・行わないこと、そしてノードのモニタリング方法について説明します。
登録は両方のネットワークで開放されています。現在の状況については報酬プログラムの状況を参照してください。ノードに付与される額は、ライトノード割り当て、対象となるノードの数、それらのステークと稼働率、そして以下で説明するノードごとの上限によって決まります。
ブロック報酬シェア3%
QoreChainの手数料分配は、ネットワークデータを提供するライトノードのために固定の3%シェアを確保しています。これはプロトコルの報酬配分における5つの分配先の1つで — バリデータ(37%)、バーン(30%)、トレジャリー(20%)、ステーカー(10%)、そしてライトノード(3%) — オンチェーンで強制されています。全体の内訳についてはTokenomicsを参照してください。
このシェアに参加するには、自己申告ではなくオンチェーンで確認される次の条件が必要です。有効なlightnode_operatorライセンス(登録時に確認されます)、ボンド済みバリデータに委任された最低1,000 QOR(これは委任先の全バリデータにわたる合計であり、バリデータごとではありません。jail されたバリデータやアンボンドされたバリデータへの委任はカウントされません。登録時に必須で、報酬が付与されるたびにステーキングから再度読み取られます)、そして登録時に一度だけ支払う1 QORの登録手数料です。参加はネットワーク全体で10,000ライトノードが上限となっています。登録の仕組みについてはRegistration and Licensingを、現在の状況については報酬プログラムの状況を参照してください。
3%とは、ライトノードモジュールに流れ込む分を指すものであり、ノードごとの受給権ではありません。対象となる各ノードには、蓄積された分のうちステーク加重のシェアが付与され、ノードごとに上限が設けられます。獲得されなかった分は、ガバナンス投票でのみ解放できるリザーブに入ります。チェーン v3.2.3 以降、ノードごとの上限は30日あたり2,000 QOR(max_reward_per_month_per_node)で、決済間に経過したブロック時間に応じて按分され、稼働率に応じてスケールされます(lightnode-monthly-cap ルール)。これは以前のブロック単位の上限(max_reward_per_block_per_node、1ブロックあたり1713 uqor)に代わるものです。v3.2.4以降(テストネットでは2026年10月19日から、メインネットではブロック高3,742,566から)は、ノードの上限は、前回の決済とそのノード自身の登録のうち遅い方から始まるため、新たに登録されたノードには、登録前の期間分は付与されません。ライトノード報酬シェア3%を参照してください。
登録と委任が済んだら、対象資格を維持するにはノードを稼働させ続けるだけです。ノードは最低80%の稼働率を維持し、1,000ブロック間隔(平均ブロック時間を約3.2秒と実測した場合、メインネットで約54分。ほぼ1秒に1ブロックを生成するテストネットでは約17分)でハートビート稼働証明を送信し続ける必要があります。
タイミングのルール。 チェーンは、前回のハートビートから1,000ブロック未満で送信されたハートビートを拒否します(heartbeat submitted too early)。登録後の最初のハートビートには、このような下限はありません。前回のハートビート(まだ送信していない場合は登録)から1,000 + 100ブロック(heartbeat_intervalとheartbeat_grace_periodの合計。メインネットでは約54分に、約5分の猶予を加えた時間)以内にハートビートが届かない場合、ノードは非アクティブとマークされ、報酬の付与が停止します。それ以降に送信されたハートビートも受理され、ノードは再アクティブ化されます。デーモンは、チェーン自身が記録しているノードのlast_heartbeatから1,000ブロックが経過した時点で次のハートビートを送信し、60秒ごとに確認します。
ウィンドウを逃しても失うのは稼働率であって、登録ではありません。 ウィンドウを逃したノードは非アクティブとマークされ、報酬の獲得を停止しますが、次に成功したハートビートで即座に再アクティブ化されます — 再登録は不要です。稼働率は、登録したブロック以降の、受信したハートビート数と期待されるハートビート数(1,000ブロックにつき1回)の累積比率であり、上限は1です。min_uptime_for_rewardsのしきい値(0.80)を下回るノードは何も獲得できません。しきい値以上では、ノードごとの上限が稼働率に応じてスケールします。したがって長時間の停止は比率を下げ、その比率は期限内のハートビートが積み重なることでのみ回復します。ノードが非アクティブと表示される場合はstatusを確認してください。署名者、ライセンス、登録の状態が報告されます。
成功したハートビートが証明するのは、オペレーターのキーが時間内に署名したという事実だけであり、ノードがソフトウェア全体を継続的に実行していることを証明するものではありません。これは稼働の署名であり、「アクティブなノードとして検証済み」という意味ではないと捉えてください。
last_heartbeatはタイムスタンプではなくブロック高ですノードのオンチェーン記録を直接クエリすると、last_heartbeatはブロック高であり、値が0の場合はまだハートビートが記録されていないことを意味します — この場合チェーンは、ノードのregistered_atの高さから非アクティブの期限を計測します。0を単純な経過時間の計算として読み取ると、登録したばかりのノードが数百万ブロックも遅延しているように見えてしまいます。
報酬対象資格: 有効なオンチェーンライセンスと最低ボンドステーク量を保持し、登録した上で、稼働率とハートビート間隔のしきい値を上回るよう、ハートビートによる稼働証明を継続してください。
報酬の仕組み
付与
100ブロックごとに、チェーンは対象となる各ノード(アクティブで、最低委任ステーク量と最低稼働率を満たすもの)に、蓄積された分のシェアを付与します。ノードごとの上限(前回の決済からの経過時間に応じて按分された、30日あたり最大2,000 QOR)はライトノード報酬シェア3%で説明されているとおりです。この額はノードのaccumulated_rewardsに加算されます。次のコマンドで確認できます。
curl -s https://api.qore.host/qorechain/lightnode/v1/rewards/<operator-address>
# or: qorechaind query lightnode rewards <operator-address>
(テストネットにはhttps://api-testnet.qore.hostを使用してください。)
請求
付与された報酬は、請求するまでノードの記録上に残ります。ノードに代わりに請求させることもできます。[delegation]の下でauto_claim = trueを設定すると、デーモンは、蓄積されたライトノード報酬がmin_reward_claim(デフォルトは1000000 uqor、つまり1 QOR)を超えた時点でオペレーターアカウントへ請求します。確認はcompound_interval(デフォルトは1h)ごとに行われます。請求はハートビートと同じ方法(ネイティブ、またはqorechaindによるフォールバック)で署名されます。自動請求はデフォルトでオフであり、請求のみを行います。ノードが再委任したりステークを移動したりすることはありません。
qorechaindで手動で請求するには(オペレーターキーをqorechaindのキーリングに置き、耐量子キーをlightnode-sx keys export <key-name> --out ~/.qorechaind/pqc/<key-name>.dilithiumでエクスポートしたうえで)、「生成してから共同署名」の組み合わせを使用します。
qorechaind tx lightnode claim-rewards --from operator --chain-id <chain-id> --node https://rpc.qore.host --gas 300000 --fees 30000uqor --generate-only > claim.json
qorechaind tx pqc cosign claim.json --from operator --pqc-key <key-name> --chain-id <chain-id> --node https://rpc.qore.host
qorechaind tx lightnode deregisterは登録を解除し、まだ付与されたままの分を支払います。登録手数料は返金されません。
委任の追跡とレピュテーションアラート
ノードは起動時、およびその後5分ごとに、オペレーターアカウントの委任をチェーンから反映します。rebalance_enabledが有効(デフォルト)の場合、委任先の各バリデータのレピュテーションスコアも確認し、min_reputation(デフォルトは0.5)を下回るものについて警告をログに記録します。ステークは移動しません。委任の変更はご自身のウォレットから行ってください。([delegation]のvalidatorsとsplit_weightsオプションは受け付けられますが、現在は動作に反映されません。)
報酬と委任の確認
lightnode-sx validators # the bonded validator set
lightnode-sx delegation # the operator account's delegations, as mirrored by the running daemon
lightnode-sx rewards # the operator account's pending staking rewards
3.1.6以降、これらのコマンドとUXのDelegationビューは、operator_addressのアカウントを読み取ります。rewardsが表示するのは委任から得られるステーキング報酬であり、ライトノード報酬ではありません。すべてをチェーンから直接読み取るには、次を使用します。
curl -s https://api.qore.host/cosmos/staking/v1beta1/delegations/<operator-address>
curl -s https://api.qore.host/cosmos/distribution/v1beta1/delegators/<operator-address>/rewards
curl -s https://api.qore.host/qorechain/lightnode/v1/rewards/<operator-address> # light-node rewards
モニタリング
ノードを健全な状態に保つことが、報酬の対象資格を維持することにつながります。監視すべきものは3つあります。
テレメトリ
リアルタイムテレメトリは、バリデータ、コンセンサス/ネットワーク、ブリッジ、トークノミクスをカバーし、それぞれが独自の間隔(config.tomlの[telemetry]配下で設定)で更新されます。CLIからは次のように確認できます。
lightnode-sx status # node and light-client sync status
lightnode-sx network # recent synced headers and latest height
UXエディションは、Overview、Network、Bridge、Tokenomicsの各ビューで同じデータをライブで表示します — UX Editionを参照してください。
同期とハートビートの健全性
statusコマンドは、チェーンID、最新のブロック高、チェーンがキャッチアップ中かどうか、ライトクライアントの同期済み高さと同期状態、Signer(ネイティブ、qorechaind、または理由付きで利用不可)、そして — operator_addressが設定されている場合は — LicenceとRegistrationの状態(ノードのステータスと最後のハートビートの高さを含む)を報告します。登録済みで、同期しており、稼働しているノードはハートビート稼働証明の送信を継続し、報酬の対象資格を維持します。これらのハートビートはPQC共同署名トランザクションパイプライン(ハイブリッドDilithium-5 / ML-DSA-87)を通じて生成され、チェーンのPQC必須のデフォルト方針と整合しています — パイプラインの仕組みとノードが署名者を選択する方法についてはRegistration and Licensingを参照してください。statusがノードの停滞や未同期を示している場合、稼働証明に失敗している可能性があります — 対象資格に影響が及ぶ前に調査してください。
セルフテストの健全性
暗号スタックに問題があると疑われる場合は、いつでもPQCセルフテストを実行できます。
lightnode-sx selftest
これはkeygen → sign → verify → 改ざん検出(5つのチェック)を実行し、いずれかが失敗すると非ゼロで終了します。ノードの問題を診断する際、耐量子署名スタックの問題を除外する最も速い方法です。セルフテストの詳細な内訳についてはSX Editionを参照してください。
チェーンクエリ
ベースURL: https://api.qore.host(メインネット)および https://api-testnet.qore.host(テストネット)。
| クエリ | 返される内容 |
|---|---|
GET /qorechain/lightnode/v1/params | 登録手数料、ハートビート間隔と猶予、最低委任ステーク量、報酬シェア、最低稼働率、ノード数の上限。 |
GET /qorechain/lightnode/v1/stats | 登録済みおよびアクティブなノード数、付与された報酬の合計。 |
GET /qorechain/lightnode/v1/node/{address} | 1つのノードの記録(status、last_heartbeat、total_heartbeats、expected_heartbeats、accumulated_rewards)。 |
GET /qorechain/lightnode/v1/rewards/{address} | 付与済みで未請求の報酬。 |
GET /qorechain/lightnode/v1/reward_pool | モジュール残高が、リザーブ、付与済み報酬、次回の支払いにどう分割されているか。ノードごとの上限(max_reward_per_month_per_node、および以前のmax_reward_per_block_per_node)も含みます。 |
GET /qorechain/license/v1/check/{address}/lightnode_operator | アドレスが有効なライセンスを保有しているかどうか。 |
次に読むべきページ
- Registration and Licensing — 登録を済ませ、稼働し続ける方法。
- Tokenomics — 報酬とバーンの全体モデル。