ブロックチェーンの開発は複雑なネットワーク構築に似ており、システムの効率的な運用を保証するために、すべての機能とトランザクションには安全で安定したサポート体制が必要です。 Subxt はそのようなニーズのために生まれました。開発者にとっては「橋」のようなもので、Rust エコシステムの Substrate ブロックチェーンとの効率的な対話のために特別に設計されています。 Subxt を通じて、開発者はツールボックスを開くのと同じくらい簡単に、オンチェーン データを呼び出し、トランザクションを実行し、チェーン上のリアルタイム イベントの主要なダイナミクスを取得することもできます。
この記事は、PaperMoon の Kaichao 先生によって書かれた Substrate 上級コースの 7 つの技術記事のうちの 1 つであり、開発者が Subxt を使用して Substrate とのシームレスな統合を実現する方法を深く理解できるようにすることを目的としています。外部トランザクションの送信からオンチェーン データの読み取りと監視に至るまで、Subxt は開発者の操作を簡素化し、システムのセキュリティを強化します。この記事では、Subxt のコア機能と使用法について詳しく説明し、オンチェーン開発に強固な技術サポートを提供します。
基板に接続するためのコアツール- Subxt
Subxt は、Substrate ブロックチェーンへの効率的なインターフェイスを提供するように設計された Rust ライブラリです。これにより、開発者は安全かつタイプセーフな方法でブロックチェーンと対話できるようになり、トランザクションの実行、ステータスのクエリ、イベントのサブスクライブのプロセスが簡素化されます。 Subxt の設計はパフォーマンスと安全性を重視しており、 Rust の静的型システムを利用して実行時エラーを防ぎます。これにより、開発者は分散型アプリケーションを構築する際の潜在的なエラーやセキュリティ リスクを軽減できます。
機能概要: 主要な概念と基本モジュール
subxt 関連の関数を紹介する前に、次の主要な概念を理解しておく必要があります。
外部トランザクション (Extrinsics) : チェーンに送信されるトランザクションまたはコマンドを指します。 Subxt を使用すると、ユーザーはこれらの外部機能を作成して送信できます。
Storage : Substrate の状態はキーと値のペアの形式で保存され、Subxt はこれらの保存された値を読み取り、クエリすることができます。
メタデータ: ブロックチェーン ランタイムに関する情報が含まれており、チェーン上で利用可能なすべての関数とデータ構造を定義します。
イベント: ブロックチェーン操作が発生したときの通知 Subxt は、これらのイベントをサブスクライブして、チェーン上で動的に変化するステータスを取得できます。
Subxt は、オンチェーンのデータとトランザクションを操作するための豊富なインターフェイスを提供します。
外部トランザクション (extrinsics) を送信します (これがライブラリ名の由来です)。
ブロックをサブスクライブし、ブロック内の外部トランザクションと関連イベントを読み取ります。
保存された値を読み取り、反復処理します。
メタデータから定数とカスタム値を読み取ります。
ランタイム API を呼び出して結果を返します。
上記のすべてを、安全な静的に型付けされたインターフェイスを介して実行するか、柔軟性が必要な場合は動的インターフェイスを使用して実行します。
WASM サポート: Subxt はブラウザで実行するために WASM にコンパイルでき、Rust ベースのブラウザ アプリケーションをサポートし、JS アプリケーションにバインドすることもできます。
subxt-core クレートを介して #[no_std] 環境で複数の操作を実行します。
組み込みのライト クライアント (smoldot) を使用してブロックチェーンと対話します。
実践ガイド:Subxtの使用例を詳しく解説
メタデータをダウンロードする
subxt-cli
ツールを使用して、ノードからターゲット ランタイムのメタデータをダウンロードします。
インストール:
エンコードされたメタデータをファイルに保存します。
デフォルトでは、このコマンドは http://localhost:9933/ で実行されているローカル ノードのメタデータを照会します。他のノードをクエリする場合は、 --url
パラメーターを使用してノード アドレスを指定できます。
依存関係を追加する
次のコンテンツを Rust プロジェクトの Cargo.toml ファイルに追加します。
オンチェーンストレージを取得する
Substrate ブロックチェーンでは、チェーン上の状態データを永続化するためにストレージが使用されます。オンチェーン ストレージを取得するプロセスには通常、次の手順が含まれます。
接続の確立: まず、ターゲットのブロックチェーン ノードに接続するための API クライアントを作成する必要があります。これは、ノードとの接続と通信を自動的に処理する OnlineClient を通じて行われます。
ストレージ クエリの定義: 次に、クエリを実行するストレージ アイテムを定義する必要があります。 Substrate では、保存されたデータはキーと値のペアの形式で保存され、これらのキーを通じて特定のデータにアクセスできます。たとえば、アカウントの残高情報を取得したい場合は、そのアカウントのストアド クエリを作成する必要があります。
クエリの実行: API クライアントの fetch メソッドを呼び出して、格納されたデータを取得するリクエストを送信します。
処理結果: データの取得に成功したら、残高などの必要なフィールドを抽出し、後続の処理または表示を実行できます。
トランザクションの送信
Substrate ブロックチェーンでは、トランザクション (または外部トランザクション) の送信は、ブロックチェーンと対話するための中心的な操作の 1 つです。このプロセスには通常、次の手順が含まれます。
接続を確立します。ストレージ タイプをクエリし、最初にチェーン ノードとの API クライアント接続を確立して、トランザクションを送信できることを確認します。
トランザクションを構築する: Subxt が提供するインターフェイスを使用して、トランザクションの特定のコンテンツを定義します。このプロセスでは、残高送金などの取引タイプを指定し、取引の宛先アドレスと送金金額を設定する必要があります。
署名されたトランザクション:トランザクションを送信する前に、トランザクションの開始者が関連するアクセス許可を持っていることを証明するために署名する必要があります。これは通常、秘密キーによって署名され、トランザクションの正当性が保証されます。
トランザクションの送信: API クライアントを使用して、署名されたトランザクションをブロックチェーンに送信します。送信後、トランザクションは保留キューに追加され、次のブロックで確認されます。
結果の監視:トランザクションイベントを監視することで、トランザクションの処理状況を取得し、成功したかどうかを確認できます。成功後は、返されたイベント情報に基づいて後続の処理を実行できます。
コミュニティ活動と将来の発展、 Subxt の環境支援とイノベーションの展望
高度な柔軟性とセキュリティにより、subxt は次のようなさまざまなアプリケーション シナリオで使用できます。
分散型アプリケーション (DApps): Subxt は、ブロックチェーンと対話するフロントエンド アプリケーションを構築する際に、シンプルな API インターフェイスを提供します。
自動化されたスクリプト:開発者は、Subxt を使用してスクリプトを作成し、チェーン上のアセットを自動的に管理したり、通常のタスクを実行したりできます。
オンチェーン分析ツール: Subxt を使用してブロックチェーン データを読み取り、オンチェーンのアクティビティとユーザーの行動を分析します。
Subxt の開発活動は非常に活発で、継続的な更新と機能拡張が行われています。開発者は、豊富なドキュメントやサンプルにアクセスし、コミュニティのディスカッションに参加し、問題を報告し、コードを貢献することができます。 Substrate エコシステムが発展し続けるにつれて、Subxt はさらなるパフォーマンスの最適化、新機能のサポート、およびより多くのクロスチェーン インタラクション機能を含めて進化し続けます。このため、開発者が革新を続けるための重要なツールとなっています。
第16回基板入門講座に今すぐお申し込みください
OneBlock+ と Polkadot が共同で第 16 回 Substrate ブロックチェーン開発入門コースを開始し、登録が開始されました。このコースは開発者向けに特別に設計されており、カスタマイズされた機能を備えたブロックチェーンを 15 分で迅速に構築する方法について詳しく説明し、Polkadot エコシステムに効率的に統合するのに役立ちます。 6 つのコアクラスを通じて、ブロックチェーンの理論的知識と基本概念を習得し、サブストレートテクノロジーの使用に習熟します。さらに、このコースでは、毎週のライブ Q&A と授業後の演習も提供され、知識を定着させ、学習上の問題を解決するのに役立ちます。コースを修了すると、複数の質の高い開発職に推薦される機会が得られ、キャリア開発の新たな方向性が開かれます。
📪 20 日までのカウントダウン、今すぐコースに登録してください:
https://wj.qq.com/s2/14957929/h3bh/