CardanoのJavaスタックがTxFlowでトランザクション復旧を自動化

Cardano Client Libが可搬なトランザクションプラン、自動UTxOチェーン、堅牢なリカバリーを追加。Yaci StoreとプレリリースのYanoデータノードは、同一のJavaファーストなスタックをインデクシングとローカルネットワークテストへ拡張。

By SongMarketCap

Updated:

Cardano News - CardanoのJavaスタックがTxFlowでトランザクション復旧を自動化

Cardano Communityは第71回Developer Office Hoursを公開し、そこでCardano FoundationのLead Blockchain ArchitectであるSatya Ranjanが、Cardano上で開発するJava開発者向けの新ツール群を発表した。

Cardano Client Libは安定版0.7.2が利用可能で、プレリリース系列は0.8.0-pre5に到達している。新しいコンポーネントは、多段階の実行、ロールバック処理、より大規模なトランザクション負荷を対象としている。

Cardano TxPlanがトランザクションロジックをYAMLへ移す

Cardano Client Libはアドレス導出、支払い、トークンのミンティング、Plutusスクリプト、ステーキングおよびガバナンス操作をサポートする純粋なJava SDKだ。ネイティブライブラリを必要とせず、KotlinやScalaなどのJVM言語でも動作する。

新しいTxPlanレイヤーにより、トランザクション手順をアプリケーションコード内部に完全に留めておくのではなく、可搬なYAMLまたはJSONドキュメントで定義できる。プランは支払い、ミンティング、スクリプトとのやり取りを記述でき、アドレス、署名鍵、ポリシー参照は実行時に安全に供給される。

開発者は同一のプランを受取人、アカウント、トークンのパラメータを変えて再利用できる。定義はシリアライズして保存することもでき、ロールバックや実行中断後にトランザクションを再構築するために必要な情報を保持できる。

TxPlanはCardano Client LibのQuickTxビルダーに直接接続する。既存のトランザクション組成およびプロバイダー基盤は引き続き利用可能で、反復可能なビジネス手順は独立して検証と実行ができる形式へ移行する。

TxFlowがチェーニング、ロールバック、トランザクションストリームを処理する

TxFlowは複数の相互依存するブロックチェーントランザクションを要するプロセスを調整する。開発者は入金、配分、引き出しといったステップを定義し、前段のどのアウトプットで次のステップを資金供給するかを指定できる。

このエンジンは逐次処理、パイプライン型のチェーニング、並列バッチをサポートする。パイプラインモードでは、保留中のトランザクションが生み出したアウトプットを、別個のブロック確定を待たずに後続トランザクションが消費できる。

フロー内部で確定要件、リトライポリシー、ロールバックからのリカバリーを設定できる。これにより、各アプリケーションチームが独自の監視や再送信レイヤーを構築する必要がなくなる。

TxFlowStreamはモデルを継続的かつ大規模なワークロードへ拡張する。RanjanはCSV入力をデモし、オープンなストリームがHTTPエンドポイントや外部アダプター経由でリクエストを受け取れることも説明した。Kafkaはライブラリには含まれないが、外部からストリームへ指示を供給できる。

分離されたレーンにより、各レーン内で先入れ先出しの実行を維持しつつ、異なる資金アドレスが並行してトランザクションを処理できる。ビジネス識別子は重複実行を防ぎ、H2およびPostgreSQLのストレージにより、再起動後に処理を再開できる。

デモではADAの支払い、Plutusスクリプトの実行、トークンのミンティング、ADAのバッチ支払いが取り上げられた。自動UTxOチェーニングや、シミュレーションによる中断後のリカバリーも含まれていた。

YanoがCardanoのJavaテスト基盤を拡張

発表では、モジュラーなCardanoインデクサの次期メジャーベータ系であるYaci Store 3.0.0-beta3も取り上げられた。このリリースはBlockfrost互換APIを拡充し、ガバナンスおよびProtocol Version 11に関する修正を含むが、完全なBlockfrost互換にはまだ到達していない。

YanoはJavaスタックをノードおよびテスト基盤へ拡張する。CardanoデータノードはYaciとCardano Client Libの上に構築され、永続化にRocksDBを用い、スタンドアロンのQuarkusアプリケーションとしても、埋め込み型のJavaライブラリとしても動作できる。

Yaci DevKit内では、YanoはHaskellのcardano-nodeへブロック生成を引き継ぐ前に、ローカルのCardanoネットワークを初期化し前進させることができる。アプリケーションやSDKのテストに軽量な環境が必要な場合には、Yanoのみで動作するモードも利用可能だ。

Yanoは依然としてプレリリースのプロジェクトであり、本番での検証を目的としてはいない。Ranjanは、Merkle rootをCardanoにアンカーできるアプリケーション固有のステートマシンも予告したが、その機能はまだ実験段階にある。

これら三つのコンポーネントは、Javaスタック内で明確に役割が分かれている。Cardano Client Libはトランザクションの定義と実行を担い、Yaci Storeはネットワークデータをインデックスし、Yanoはテスト用の制御可能なノード環境を提供する。Javaチームは、アプリケーションが本番に到達する前に、独自のロールバックサービスや手動のローカルノードオーケストレーションを再利用可能なインフラに置き換えることができる。