Stratumとは?マイナーとプールの通信の仕組み

seineとbntpool.comのStratum通信を、ログイン、採掘ジョブ、シェア目標、送信、応答の順にたどり、接続状況の読み方を学びます。

· 5 分で読めます
Stratumとは?マイナーとプールの通信の仕組み

bntpool.comからseineへのジョブと、プールへ返るシェアを追ってみましょう。通信の流れが分かると接続メッセージ、ジョブ更新、提出応答を読みやすくなります。このガイドはbntpool.comの実装を説明します。最初の接続先と支払先設定はプール設定ガイドを参照してください。

採掘におけるStratumとは?

簡単な答え

Stratumはマイナーがプールの仕事を受け取り、結果を提出するための通信層です。seineとbntpool.comでは持続的なTCP接続上でログイン、ジョブ、シェアのJSONメッセージを交換します。ハッシュは自分の機械で計算し、プールはノードからブロックテンプレートを取得して提出結果を処理します。

マイナーはログインとシェアを送り、ジョブと応答を受け取ります。プールはノードとテンプレートやブロック候補を交換します。

接続先は採掘用の通信を指定します

公開されている接続先はstratum+tcp://bntpool.com:3333です。スキームが転送方式、ホスト名がサービス、ポートが採掘用の受付を指定します。ブラウザーのhttps://bntpool.com接続は別用途です。Get Startedから完全な採掘先をコピーしてプール設定へ入力してください。

持続接続により、仕事が利用可能になった時点で双方がメッセージを送れます。bntpoolは改行区切りJSONを使い、要求IDで要求と応答を対応付けます。これはこのプールの通信形式です。マイナーにはBlocknetのハッシュアルゴリズムだけでなく形式と機能への対応も必要です。現在のフィールドはプロトコルのソースで確認できます。

マイナーのログインでは何が起きますか?

クライアントは支払先、rig名、プロトコル版、対応機能を含むloginを送ります。プールは確認し、プロトコル情報と必要機能を返します。これにより仕事の交換方法を確立します。TCP接続成功が最初の段階で、ログイン受理はアプリケーションの対話も始まったことを示します。

rig名は同じアドレス配下の機械を識別します。複数台なら異なる名前を使い、意図した支払先を維持してください。必要なのは受取アドレスであり、ウォレットの復元フレーズや秘密支出鍵ではありません。セッションが受理され仕事があれば、プールはjobを送って計算を開始させます。

採掘ジョブには何が入りますか?

割り当てと基になるテンプレートのID、ヘッダーデータ、ブロック高、シェア目標、ネットワーク目標、割り当てnonce範囲を含みます。nonceはハッシュ計算で変えて試す値です。範囲はそのセッションの探索空間を定めます。ジョブIDにより、後の提出を元の仕事と条件へ結び付けられます。

シェア目標は仕事の証拠として送る結果を、ネットワーク目標はブロック候補になる結果を定めます。多くの適格シェアはブロックにならずプールの会計に使われます。難易度ガイドで目標の大きさと期待作業量の関係を説明しています。プロトコルは割り当ての一部として目標を渡します。

接続したままジョブは変わります

新しいジョブだけでは切断を意味しません。上流テンプレートが変わったときや、シェア難易度を変更した割り当てが必要なときにプールは仕事を更新できます。可変難易度は観測した仕事の流れに合わせて提出しきい値を調整します。マイナーは新しい割り当てに従い、持続接続は双方向の通信を続けます。

技術ログではジョブIDとテンプレートIDを区別してください。異なるセッション情報を持つ複数の割り当てが同じテンプレートを参照できます。ブロック高だけでは全変更を表せません。通常の運用では仕事が届き、計算が進み、提出に応答があるかを確認します。追跡ガイドに活動の確認場所があります。

シェア提出には何が含まれますか?

適格な結果を見つけると、seineはジョブ、nonce、申告ハッシュを指定したsubmitを送ります。プールは割り当ての情報を使って処理し、要求IDに対応する応答を返します。申告値はメッセージの一部であり、その後の扱いはプールの検証とブロック検証で決まります。ブロック候補は検証のためdaemonへ提出されます。

応答には受理、検証状態、難易度情報が含まれる場合があります。成功応答すべてをブロック発見とせず、それぞれのフィールドを読み分けましょう。会計と支払いはこの交換の先で行われます。シェア結果ガイドは提出結果を、PPLNSガイドは対象作業と報酬・支払いの関係を説明します。

この順序をマイナー確認にどう使いますか?

接続先到達、ログイン受理、ジョブ受信、計算稼働、提出への応答の順に読みます。切断したらクライアントは再接続し、セッションを確立してから追加の仕事を受け取ります。正確なログ文と時刻で該当段階を特定しましょう。サイトが動いていても、その機械から採掘ポートへ到達できる証明にはなりません。

意図した支払先でMy Statsを開き、プール状態でサービスの状況を確認してください。起動・再接続後はシェアに基づく推定値が観測を蓄える時間を与えます。通信と支払い時期を分けて考えましょう。ログインで準備し、ジョブで仕事を受け、シェアで結果を報告し、その後の報酬段階はプールの会計で決まります。

よくある質問

プール採掘でStratumは何をしますか?

マイナーとプールの間でセッションの識別、仕事の配信、シェアの送信と応答を運びます。ハッシュ計算はマイナーがローカルで行います。プールは仕事を上流ノードへつなぎ、報酬方式に必要な会計処理を維持します。

Stratumのアドレスはウェブサイトと同じですか?

接続の用途が異なります。bntpool.comのサイトはページとAPIにHTTPSを使い、公開されている採掘先はstratum+tcp://bntpool.com:3333です。マイナーのプール設定には採掘先を入力します。サイトを開けるだけでは採掘接続は成立しません。

Stratumシェアが受理されたら支払い済みですか?

いいえ。シェア応答はセッション内での提出結果です。検証、ネットワークで有効なブロック、報酬対象、支払い完了は別段階です。My Statsで活動を追い、支払いガイドで承認数、PPLNS、支払いしきい値を確認してください。