ソラナのトークンスキャナーボットは、現在の更新を受信しているだけで信頼できるものになるわけではありません。接続は切れ、要求は失敗し、解析機能は見慣れない記録に出会い、観測を受け取ってから保存するまでの間に処理が再起動することもあります。これらの中断が、見える空白になるのか、正常に見える状態表示の裏で黙って消えるのかは、復旧の仕組みによって決まります。

役立つ問いは「ボットが再接続したか」だけではありません。「どの観測が保存済みだと分かり、どの範囲が不完全かもしれず、どの証拠が通常運用への復帰を支えるか」です。接続が正常でも、過去の記録は不完全なままの場合があります。逆に、便利な機能がすべて戻る前でも、復旧した記録は研究に十分な場合があります。

このガイドでは、定めた対象集合について、トークンに関係するイベントを集める架空のスキャナーを追います。設計原則は独自の運用例であり、一つのRPCメソッドが、ソラナのトークン履歴を完全にするすべてのイベントを提供するという主張ではありません。それぞれの収集方法には、それぞれの対象範囲と制約が必要です。

ソラナのトークンスキャナーボットの復旧は、失敗する前に始まる

復旧は、正常に動いている間に作った記録に依存します。観測の識別情報、情報源の文脈、関係するイベントの位置、取り込み時刻、解釈の状態、進捗に対応するチェックポイントを保存します。この情報がなければ、再起動して配信を受け直せても、中断の前後に何が起きたかを説明できません。

受信したことと、永続的に保存したことを分けます。メモリーに一時的に置いただけのイベントは、処理が止まると消える場合があります。チェックポイントが表すべきなのは、接続上で最後に見たメッセージではなく、再起動後にシステムが再構成できる範囲の進捗です。この違いが、復旧できる中断になるか、気付かないままデータを失うかを分けることがよくあります。

先行するソラナAPIの運用ガイドでは、スキーマ、利用枠、復旧の責任を説明しています。スキャナーは、それらの責任を注文ではなく観測に適用します。何を収集したかを証明する記録と、その証明が不完全なときに何をするかという方針が必要です。

それぞれの収集処理が対象とする範囲を明示する

収集処理が観測するものには、指定したアドレスが関わる取引、対応するプログラム内のアカウント変更、定めた市場一覧からのイベントなどがあります。これらは、それぞれ違う対象集合です。正常な収集処理でも、自分が何を対象にするかを報告するべきです。復旧の際に、購読や問い合わせから確認できる以上の範囲が完全であると示唆しないためです。

例えば、あるアドレスに関係する取引履歴が、ネットワークで作られたすべてのトークンを網羅する一覧になるわけではありません。トークンスキャナーが複数の収集処理を組み合わせても、それぞれの識別情報と対象範囲は保ちます。一つが失敗したら、ボットは対象集合のどの部分が影響を受けるかを示すべきです。

ソラナの新規トークンスキャナーのガイドでは、イベントの時系列が、どの節目を観測するかに依存する理由を説明しています。復旧でも、その区別を保つ必要があります。同じ資産に言及しているというだけで、復旧できたプールの観測を、失われたミント作成の証拠の代わりにはできません。

カーソルの意味は情報源との取り決めに依存する

カーソルは、特定の情報源や収集方法が理解する位置の印です。あらゆる情報源に通じる時刻ではなく、無関係な問い合わせで使い回すべきではありません。カーソルと一緒に問い合わせの文脈を保存します。そこには、解釈に必要なネットワーク、アドレスやフィルター、コミットメント方針、メソッドの版を含めます。

ソラナの文書にある、アドレスに関係する署名履歴のメソッドは、条件に合う取引署名を新しいものから古いものへ返し、beforeやuntilを含むページ分割用の項目を備えています。これは、カーソルを使う履歴インターフェースの具体例です。文書上の対象は、指定したアドレスをアカウントキーに含む取引です。ソラナの公式メソッド文書。

スキャナーが永続保存するチェックポイントには、返されたどの記録を保存し、正常に処理したかという、独自の意味も必要です。ページを受信しても、すべての取引詳細を取得し、解釈した証明にはなりません。収集用のカーソルを進めつつ、補足情報が不完全な記録を別に追うこともできますが、後続の利用側がその違いを理解している必要があります。

チェックポイントを進める前に証拠を確実に保存する

一つのページに十件の観測識別子が含まれるとします。ボットがチェックポイントを進めた後、その識別子を保存する前に停止すると、次の実行でそれらを飛ばす可能性があります。より安全な設計では、観測の永続保存とチェックポイントの更新を、復旧できる一つの操作にまとめるか、その間の受け渡しを再生できる形で保存します。

具体的な保存方法は実装によって異なります。原則は、システムが復旧できる証拠より先まで進んだと、チェックポイントが主張してはいけないということです。アトミックに保存できないなら、主となるチェックポイントを動かす前に、小さなジャーナルへ、処理予定のページと完了状態を記録できます。

この原則は解釈にも当てはまります。解析が失敗しても、加工前の観測は安全に保存できる場合があります。その場合、収集用のチェックポイントは受信を表し、別の解釈用チェックポイントは使える記録の範囲を表せます。両者を混同すると、既知のデータを繰り返しダウンロードするか、未対応の記録を理解したふりをするかという、望ましくない選択を迫られます。

再開の境界では再生が起きると見込む

慎重に再開する際は、最後のチェックポイントの前後を少し重ねて読み直すことがよくあります。この重なりは、正確な境界に関する不確実さから守る一方、必ず観測の繰り返しを生みます。ボットは、同じトークンに関係するだけで本当は別のイベントを捨てずに、重複を認識する必要があります。

情報源に適したイベント識別情報を使います。取引署名が一つの取引を識別しても、その中の複数の関連する命令やアカウント変更には、より細かな位置の情報が必要かもしれません。識別の仕組みでは、スキャナーが取引記録を一つ保存するのか、そこから作る複数のイベント記録を保存するのかを説明するべきです。

繰り返し届いた観測は、必要に応じて証拠を更新しつつ、発見や通知の重複を作らないようにします。先行する継続できるソラナ自動化のガイドでも、意図と再試行について関連する点を説明しています。ここでは、同じ原則が収集を守ります。観測を再生しても、元のイベントが新たに発生したことにはなりません。

解釈できなかった記録を別の待ち行列に残す

見慣れない記録を、説明なく消してはいけません。加工前の証拠への参照、解析機能の版、失敗理由、次の確認に向けた状態を保存します。一時的に依存先が失敗しただけなら、再試行できる記録もあります。新しい形式への対応や、矛盾するデータを人が調べることが必要な記録もあります。

同じ条件では同じ結果になる解析失敗を、一時的なネットワーク問題のように繰り返し再試行してはいけません。同じバイト列が同じ解析機能で失敗するなら、すぐ繰り返しても役立つ可能性は低いでしょう。その記録を規模に制限を設けた確認用の待ち行列へ移し、対象範囲の条件が許すなら、現在の収集を続けられるようにします。

この待ち行列は、完全性の報告でも見えるままにします。予想したすべてのページを収集できても、履歴の一部について使える解釈がない場合があります。その状態は「収集済みだが未解決」と説明します。保存と理解の違いを隠す、単一の正常表示よりも情報が伝わります。

スキャナーの再試行に限度を設ける

再試行の方針では、どの失敗を再試行できるか、何回まで試せるか、待ち時間をどう増やすか、いつ停止するか、または適切な担当者へ対応を引き継ぐかを定めるべきです。一時的な通信障害は、無効な要求、未対応の応答、これ以上取得できない過去の履歴とは異なります。すべてを同じように扱うと、資源を浪費し、本当の問題が見えにくくなります。

多くの処理担当が同時に失敗する可能性があるなら、全員が足並みをそろえて再開しないよう、再試行の時刻にばらつきを加えます。情報源が文書で定めた制限と、応答に含める明示的な再試行の指示を守ります。すべてのメソッド、提供元、作業量に正しいかのように、共通の再試行間隔を公表することは避けます。

最後に失敗した状態には、永続的な記録が必要です。「再試行を使い切った」という記録は、影響する問い合わせ範囲と、最後に正常だった位置を示すべきです。その記録があれば、未解決の空白を残しながら、影響を受けていない作業を続けられます。無制限の再試行は、取得できない一つの範囲を、スキャナー全体をいつまでも止める原因に変えてしまう場合があります。

現在の収集と過去の欠落分の取得を分ける

復旧中のスキャナーは、失われた期間を取り戻しながら、現在の観測も処理する必要がある場合があります。この二つの流れでは、緊急性と必要な資源が違います。分けなければ、大規模な履歴取得が現在の収集を遅らせ、最初の空白を直す間に別の空白を作る可能性があります。

それぞれの流れへ明示的な処理能力を割り当て、別々の進捗位置を保ちます。保存後にイベント識別情報で記録をまとめることはできますが、今届いたことと、過去に発生したことを混同してはいけません。昨日の観測を取り戻しても、今日新しく作られたトークンにはなりません。

この境界では、ソラナの新規トークン通知のガイドが関係します。後続の通知ルールは、証拠が現在の配信なのか、遅れて届いたものなのか、過去を補ったものなのかを知る必要があります。過去のすべてのイベントを新着通知として出す復旧処理は、読者を圧倒し、発見の時期を誤って伝える可能性があります。

埋めようとする前に空白を記録する

ボットが中断を検出したら、分かっている境界と影響範囲を持つ空白の記録をすぐ作ります。正確な終点は、最初は不確かかもしれません。その不確実さは、復旧に成功するまで後回しにせず、明示するべきです。そうすれば、途切れない履歴を前提にする解釈を一時停止するかどうか、利用側が判断できます。

証拠が届くにつれて、空白の範囲を狭められます。完全に解決することも、一部だけ解決することも、必要な履歴を取得できず未解決のままになることもあります。いずれも正当な結果です。目標は、すべての空白を無理に成功へ変えることではなく、何が分かっているかを正確に説明し続けることです。

仮の収集処理で、チェックポイントC120とC145の間に接続が切れたなら、最初はその区間を疑わしい範囲とするかもしれません。保存した観測を再生して照合すると、C138までは連続していると確認でき、残りは未解決のままになる場合があります。ダッシュボードは、再接続後に区間全体を緑の表示へ置き換えるのではなく、その部分的な進捗を示すべきです。

空のページから完全性を推測しない

空の応答には、問い合わせが目的の境界へ達した場合、フィルターに合う記録がない場合、情報源に要求した履歴がない場合、要求の文脈が間違っていた場合などがあります。解釈は、メソッドの文書にある動作と、応答の前後の証拠に依存します。

ボットは、空白が解決したと宣言する前に、問い合わせの文脈を検証するべきです。ネットワーク、アドレス、コミットメント、ページをたどる方向が、保存した復旧計画と一致するかを確かめます。入力ミスやフィルターの変更によって、技術的には成功しても、失われた区間について何も示さない要求になる場合があります。

完全性を確認できなければ、その制約を報告します。スキャナーは部分的な観測でも役立つ情報を提供できますが、後続の研究では候補の履歴が不完全だと分かる必要があります。空のページを、何も存在しないことの普遍的な証拠として扱うと、まさに復旧によって記録を改善するべき場所で、誤った確信が生まれます。

取引の詳細を取得できない場合に対応する

履歴の問い合わせで取引を識別できても、選んだ要求の文脈では、その詳細をすぐ取得できない場合があります。識別子と、詳細取得の状態を別々に保ちます。詳細の応答がないことを、自動的に失敗した取引や、存在しないイベントへ変えてはいけません。

ソラナの取引メソッドと署名状態のメソッドは、違う種類の証拠を示します。状態の照会にも、最近のキャッシュと、任意に行う履歴検索の区別が文書で示されています。スキャナーは問いに合ったメソッドを使い、応答の制約を残すべきです。ソラナの署名状態の文書。

研究では、詳細が未解決の記録を分類の外へ置きながら、収集範囲の件数には含められます。これによって、扱いにくい観測を気付かないまま失うことを防げます。後から情報を補えば、日付を持つ改訂として解釈を完成できます。取り込んだ当初から十分な証拠があったように見せる必要はありません。

到着順を信頼せずにイベントの順序を保つ

過去のページは新しいものから古いものへの順で返り、現在のメッセージは活動に合わせて届く場合があります。スキャナーは、情報源の関係する位置を使って順序をそろえ、運用分析のためには到着順も保存するべきです。片方でもう片方を上書きしてはいけません。

二つの観測が大まかな時刻の印を共有するとき、区別するために追加のイベント識別情報が必要かもしれません。表示に整列済みの一覧が必要だというだけで、細かな時系列を作り上げてはいけません。証拠から順序の一部しか分からないなら、その制約を解釈にも残します。

これは、権限の変更、プールの作成、初めて観測した取引に関わります。ソラナの新しいコインの通知ガイドでは、通知の待ち行列と期限切れを扱っています。収集側は十分な時刻の文脈を渡し、遅れて届いたことによって、元のイベントの発生時期を通知が誤って説明しないようにするべきです。

到着順を信頼せずにイベントの順序を保つRetryReplayQuarantineResumeTRADING FIELD NOTESEDUCATIONAL RESOURCE
再試行 → 再生 → 隔離 → 再開。 観測の永続保存、情報源ごとのカーソル、限度のある再試行、収集の空白を示す明確な証拠を中心に、トークンスキャナーの復旧を設計します。

復旧時に暫定的な観測を照合し直す

停止前に暫定的な観測を受け入れたスキャナーは、再接続後にそれらを調べ直す必要がある場合があります。一部は必要な確信の状態まで進み、別のものは根拠を失っているかもしれません。受信したすべてのメッセージが永久に有効だと仮定せず、その確認を復旧計画へ含めるべきです。

最初の観測と、後の状態を結び付けて残します。そこから作った発見や通知が、変わった証拠に依存していたなら、訂正を記録し、影響を受ける利用側を示します。説明なく元のイベントを削除すると、運用の点検が難しくなり、後続のシステムに根拠のない結論が残る場合があります。

選んだコミットメント方針は、チェックポイントの文脈に含めます。復旧中に方針を切り替えると、比較する記録の意味が変わります。切り替えに妥当な理由がある場合もありますが、見かけ上の確信だけを黙って高めるのではなく、復旧記録に明示的な移行を残すべきです。

復旧作業に使う資源を見積もる

欠落分の取得には、要求、保存、解釈、確認の時間が必要です。古い空白に利用可能な処理能力をすべて使わせる前に、作業量を見積もります。範囲を定めた復旧計画では、区間、要求の予算、優先度、停止条件を指定し、その制限内で何を完了したかを報告できます。

架空の未処理分に、6,000件の識別子があるとします。確認する一回分に200件を含めるなら、情報を補う前の段階で三十回分の作業になります。この計算だけでは、所要時間は分かりません。要求の応答時間、情報源の制限、取得できない詳細の数などが変わるからです。共通の復旧速度を約束せず、証拠をどれだけ処理し終えたかで進捗を報告します。

ボットが処理できる速度より未処理分が速く増えるなら、範囲を狭めるか、収集能力を高める必要があるかもしれません。同じ欠落分の取得を何度再起動しても、その不釣り合いは解消しません。復旧の指標は、完全な状態へ近づいているのか、単に試行を繰り返しているだけなのかを示すべきです。

重要な各手順の間で停止させて試す

意味のある復旧演習では、受信後、永続保存後、解釈中、チェックポイントを進める前にボットを中断します。それぞれについて、再起動後にどの記録が戻り、重複処理が論理的な一つのイベントを保つかを確認します。処理が起動し直すことだけを確かめず、結果を点検するべきです。

形式が壊れた記録、情報源の一時的な失敗、間違った問い合わせの文脈で返る空の応答、完全には復旧できない空白も含めます。望ましい動作は、それぞれ違います。再試行するべきものも、隔離するべきものも、明示的に未解決の区間を残すべきものもあります。

先行する暗号資産市場スキャナーの対象範囲ガイドは、研究の観点で役立ちます。対象範囲が不完全なら、候補一覧が何を表すかも変わります。復旧試験は、その意味を守ります。すぐに再開しても候補を黙って失うスキャナーは、運用上は成功したように見えながら、それが支える研究を損なう可能性があります。

再開するための基準を観測できるようにする

正常な運用へ戻るには、時間の経過だけでなく証拠が必要です。現在の収集処理が定めた確認の下で正常であり、永続保存が現在に追い付き、必要な空白が解決するか明示的に受け入れられ、後続の利用側が残る制約を知っているべきです。

制限付きの再開が適切な場合もあります。例えば、現在のアカウント状態のスナップショットで現時点の表示を支えられても、過去の取引の空白によって完全な履歴分析はできないままかもしれません。それぞれの機能を分けて表示します。証拠の要件が違うのに、すべての機能へ単一の全体的な正常状態を無理に適用するべきではありません。

未解決の制約を誰が、または何が受け入れ、どの機能が制限されたままなのかを記録します。これは、利用できる証拠の意味についての運用上の判断です。明示すれば、次の確認者が再開した理由を理解しやすくなり、後の報告が、その時点ですべての履歴が完全だったと仮定することを防げます。

今回の事例から収集の取り決めを改善する

復旧後には、最初に検出できた兆候、空白の境界、成功した再生経路、未解決のまま残った記録を点検します。原因が、情報源を利用できなかったこと、チェックポイントの設計、解釈の対応範囲、処理能力の不足のどこにあったかを特定します。原因ごとに、必要な改善は異なります。

その結果として行う変更は、具体的であるべきです。ページを永続的に記録するジャーナルを加えること、収集と解釈のチェックポイントを分けること、重複を判別する識別情報を改善すること、空白の状態を通知へ伝えることなどが考えられます。もっと注意して監視する、といった曖昧な指示は避けます。手順が変わったことで、次の中断ではよりよい証拠が残るようにするべきです。

ソラナのトークンスキャナーボットの復旧が完了したと言えるのは、残る制約も含め、システムが自分の記録を説明できるときです。再接続は、その過程の一段階です。観測の永続保存、情報源ごとのカーソル、限度のある再試行、空白の正直な状態表示によって、中断などなかったふりをせずに、スキャナーを再開できます。

さらに学ぶ

すべての資料を見る