Solana での現在のトランザクションが常に失敗するのはなぜですか?
最も基本的な概念から始めて、段階的に分析してみましょう。
ユーザーの観点から見ると、Solana で取引する場合、基本的に 3 つの潜在的な結果があります:
トランザクション実行成功、すべて正常です。
#トランザクションの実行に失敗しました #、ユーザーは支払いを完了しましたガス料金を入力しましたが、実行結果はエラーを返しました。これは、ユーザーが購入しようとしているトークンが売り切れている、または価格の動きが速すぎる(事前に設定されたスリッページを超えている)など、トランザクションの条件が満たされていない場合に発生します。
: トランザクションにはトレースがありません。つまり、トランザクションは「ブロック リーダー ノード」に到達できませんでした (日々のメモ: 4 つのブロック 1 ターンかかる義務ノード)。 これは、ほとんどのユーザーが現在遭遇している状況です。本質的に、これはネットワーク層の問題であり、コンセンサス層や実行層の問題ではありません。
#実行の問題は輻輳の主な原因ではありませんこれらの最も重要な問題を当面脇に置き、まず
実行に失敗したトランザクション (つまり 2 番目のケース) を見て、なぜ Says が失敗したかを説明しましょう。トランザクションは輻輳の主な原因ではありません。チェーン上のデータを組み合わせると、実行に失敗したすべてのトランザクションのうち、実際のユーザーによって送信されたのは約 8% のみで、残りは開始された裁定取引であることがわかります。チェーン上のロボットによって。
裁定取引者が「ジャンク」取引を開始し続ける理由は、裁定取引の成功によって得られる潜在的な利益に比べて、裁定取引が頻繁に行われるためです。取引コストは最小限であると言えます。
具体的には、裁定取引者は 1 日以内に継続的に取引を開始できます。そのコストは 1 日あたり約数百ドル (Solana のネットワーク料金が安いため) ですが、成功できる限りはたった 1 回の取引で、数十万ドルの利益を得ることができます。 これらの失敗したトランザクションは、Solana ネットワークに障害が発生し、ブロックチェーンがまだ正常に動作していることを意味するものではなく、条件が満たされなかったため失敗したロボット トランザクションの一部にすぎないことに注意してください。
これは、ソラナさんの現在のひどい経験の主な理由ではありません。実際、ソラナの取引失敗率は11月以降、約50%で推移しています。
さあ、ここ数日間の Solana の輻輳の本当の理由について話しましょう. 主な理由は「トランザクションの損失」です。
上で述べたように、これらは「ブロック リーダー ノード」に到達できなかったトランザクションです。トランザクションが到達できなかった理由は、トランザクションがネットワーク層で破棄されたためです。
ネットワーク層はインターネットの通信層です。あるエンドポイントから別のエンドポイントにデータ パケットを送信するために使用されます。一般的なネットワーク層プロトコルには、TCP、UDP、QUIC (Google が開発) などが含まれます。 。 待って。 Solana は以前、ネットワーク層プロトコルを QUIC (ユーザーと「ブロック リーダー ノード」の間の接続を確立するのに役立つ ) にアップグレードしました。
Solana は継続的なブロック生成メカニズムを採用しており、未確認のトランザクションを一時的に保存するメモリプールがないため、一度接続が失われると、トランザクションは二度と含まれないことを意味します。とあるブロック。
QUIC プロトコルの利点は、「ブロック リーダー ノード」が新しい機能を取得できることです。 特定の基準に従ってブロックをカットする一部のユーザー' 接続を制限するか、データ転送速度を制限します。
この機能の重要性は、ネットワーク需要のピークが発生したときに、「ブロック リーダー ノード」が特定の接続をアクティブに切断できるため、Solana が障害の影響を受けるのを防ぐことができるということです。ネットワークのアクティビティが増加し、完全に停止します。
QUIC プロトコルの設計がそれほど完璧であるのに、なぜ Solana が今もこれほどブロックされているのか、もう一度疑問に思っているかもしれません。
本当の問題は、「ブロック リーダー ノード」が特定の接続を積極的に規制することを選択できるようになりましたが、どの接続を規制する必要があるかを決定するロジックに問題があることです。
この問題をより具体的に理解するために、各「ブロック リーダー ノード」に通信可能な X 個の接続がある状況を想像できます。しかし、ネットワーク需要のピークが発生すると、ノードが受信する接続リクエスト はその収容能力の 10 ~ 100 倍になります...現時点では、ノードは接続を切断することを選択する必要があります。特定の接続。 ただし、切断するコネクションをどのように選択するか(xxx以下のコストですべてのコネクションを切断するなど)、すべてのコネクションを切断するかどうかについては、 基準が定められていないのが現状です。 off はランダムです...…
結局のところ、現在の状況でトランザクションを確認したい場合、できることはさらにトランザクション リクエストを送信することだけですが、## 以降、 # ネットワークにリクエストを絶えず送信しているロボットが多数あります 大量の接続リクエストを送信することにより、平均的なユーザーが接続を確立してトランザクションを完了することがますます困難になります。 #########直し方?かかる時間?
これがソラナが現在直面している問題です。現在、Jump (Firedancer クライアント開発チーム)、Anza (Agave クライアント開発チーム)、Solana Labs およびその他のチーム がネットワーク層の修復に取り組んでいます。修正は今週段階的に公開され、数週間以内にいくつかの強力なアップデートがリリースされる予定です。
これで問題を効果的に解決できますか?ソラナは再び「月に行く」のでしょうか...絶対的な答えはありません。
まだ多くの不確実性がある主な理由は 3 つあります:
まず、次の修正パッチが有効になるかどうかは誰も保証できません。実際に動作して初めて、実際に何が起こるかを確認できます。
2 つ目は、Jump が開発した Firedancer クライアントで問題を解決できるようですが、正式にリリースされるのは今年末になる予定です。
3 番目の問題は「ジャンク」トランザクションに関するものです。Solana の経済メカニズムにより、悪意のある攻撃者がチェーン上で「ジャンク」トランザクション攻撃を継続することをネットワークが阻止することが困難になります。 。
#最後に、私は皆さんに 1 つのことを認識していただきたいと思います。私は、ソラナが正しいトレードオフを行っていると信じています (日々のメモ: というのは、適切な接続セグメンテーション標準を設定して)、イーサリアムに多くの問題がなくなったのと同じように、Solana も最終的にはこれらの問題から解放されるでしょう。
以上が詳細な分析: Solana はどのようにしてブロックされたのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。