Skip to main content

はじめに

Quai Network には、マイニングプールを介さずにノードへ直接マイニングできる Stratum v1 互換サーバーが内蔵されています。これはソロマイニング設定であり、プール手数料なしで、ブロック報酬の 100% を設定したアドレスで直接受け取ることができます。 Stratum サーバーは、標準の Stratum マイニングプロトコルと Quai のワークシェア(workshare)システムの橋渡しをします。マイナーは標準的な Stratum 互換ソフトウェアを使用して接続し、保留中の Quai ヘッダーから派生したジョブを受信します。ワークシェアの難易度を満たす有効なシェア(Share)がノードに送信されます。

必要条件

Quai Network でソロマイニングを行うには、以下が必要です。

同期済みの go-quai ノード

   

Quai または Qi アドレス

マイニングハードウェア

クイックスタート

go-quai ノードを起動する際に、以下のフラグを追加して Stratum サーバーを有効にします。
ノードが完全に同期されたことを確認する前にマイニングを開始しないでください。ノードが同期されていない状態でマイニングを行うと、無効なブロックが生成され、ハッシュレートが無駄になります。

設定フラグ

Stratum サーバーは、以下のコマンドラインフラグを使用して設定できます。

サポートされているアルゴリズム

各アルゴリズムには専用のポートがあります。 ハードウェアに適したポートにマイナーを接続してください。

マイナーの設定

マイニングソフトウェアを以下の設定で構成します。

報酬受取アドレス

Quai または Qi アドレスのいずれかにマイニングできます。
  • Quai アドレス: 報酬は Quai で支払われます。
  • Qi アドレス: 報酬は Qi で支払われます。

パスワードフィールド(任意)

パスワードフィールドでは、以下のオプションパラメータを指定できます。 複数のパラメータを組み合わせる場合は、,(カンマ)で区切ります。
  • d=1000 - 難易度 1000 でシェアを送信
  • d=500,frequency=2 - 難易度 500、2秒ごとにジョブ更新
  • d=500,lock=3 - 難易度 500、報酬を12ヶ月ロック
  • x または空欄 - デフォルトのワークシェア難易度を使用
カスタム難易度は、死活監視のためのシェア送信レートにのみ影響します。ネットワークのワークシェア難易度を満たすシェアのみが、報酬のためにノードへ送信されます。

マイニング例

SHA-256 マイニング

Scrypt マイニング

KawPoW マイニング (GPU)

マイナーとノードが同じマシン上にある場合は、127.0.0.1 または localhost を使用してください。別のマシンにある場合は、ノードの IP アドレスを使用し、ポートが開放されていることを確認してください(ファイアウォール設定を確認)。

モニタリングと統計

Stratum サーバーは、設定された --node.stratum-api-addr(デフォルト: 0.0.0.0:3336)で統計および監視用の HTTP API を公開します。

利用可能なエンドポイント

プール全体の統計

マイナー固有の統計

リアルタイム更新

標準プール形式

API レスポンス例

GET /api/pool/stats

ログ

Stratum のログは nodelogs/stratum.log に書き込まれます。ログレベルは --global.log-level で設定します。 ログエントリに含まれる内容:
  • 接続イベント
  • ジョブ通知
  • シェアの送信(承認/拒否)
  • 難易度の調整

トラブルシューティング

”no pending header” エラー

ノードが同期されていない可能性があります。ノードが完全に同期され、ネットワークに接続されていることを確認してください。

“authorization failed”

Quai/Qi アドレスの形式が正しいか確認してください。アドレスは有効な Ethereum スタイルのアドレス(0x…)である必要があります。

高い拒否率(Reject rate)

  • ハードウェアに対して正しいポートに接続しているか確認してください。
  • マイナーが、送信されている難易度をサポートしているか確認してください。
  • nodelogs/stratum.log でエラーを確認してください。
  • ノードが完全に同期されているか確認してください。

接続タイムアウト

サーバーは TCP キープアライブを使用しています。書き込みが失敗すると、古い接続が検出されます。ファイアウォールで設定されたポートへの接続が許可されているか確認してください。

ノードに接続できない

  • --node.stratum-enabled で Stratum サーバーが有効になっているか確認してください。
  • ノードが実行中であり、アクセス可能か確認してください。
  • ファイアウォールルールでポート 3333-3336 の接続が許可されているか確認してください。
  • リモートマシンから接続する場合は、127.0.0.1 ではなくノードの実際の IP アドレスを使用してください。

仕組み

Stratum サーバーは、標準的なマイニングハードウェア/ソフトウェアと Quai Network のワークシェアシステムの間のブリッジとして機能します。

ジョブフロー

  1. マイナーがアルゴリズム固有のポートに接続し、購読(mining.subscribe)します。
  2. マイナーがアドレスで認証(mining.authorize)します。
  3. サーバーがノードから保留中のヘッダーを取得します。
  4. サーバーが AuxPow データから Stratum ジョブを構築します。
  5. サーバーがマイナーに難易度とジョブを送信します。
  6. マイナーが有効なナンス(nonce)を見つけて送信(mining.submit)します。
  7. サーバーがワークシェアのターゲットに対してシェアを検証します。
  8. 有効な場合、サーバーはワークシェアをノードに送信します。
  9. サーバーはマイナーに新しいジョブを送信します。
ジョブは 1 秒ごとにリフレッシュされ、マイナーは常に最新のワークに従事します。

難易度計算

Stratum の難易度は、Quai のワークシェア難易度から派生します。
  • SHA-256:
  • Scrypt:
  • KawPoW:

バージョンローリング (ASICBoost)

サーバーは互換性のある ASIC のバージョンローリングをサポートしています。マイナーがバージョンローリング機能を備えた mining.configure を送信すると、サーバーはそれを認識し、許可されたバージョンマスクを送信します。