Cardanoはモジュール単位で設計されています。ここには、さまざまな方法で使用できるコンポーネントがリンクされています。こうしたコンポーネントはCardano「プラットフォームスタック」を形成しています。これらは内部で共に作動し、稼働するCardanoブロックチェーンの構造と使用を支えています。 現在は、Cardnaoに完全なスマートコントラクト機能をもたらすAlonzoハードフォークに向けた、初期テストネットの段階にあります。このプロセスは極めて複雑で、Cardanoプラットフォームを構成するさまざまな要素をしっかりとアップグレードし、慎重に統合、テストする必要があります。したがって、今こそこうしたコンポーネントを振り返り、一部の用語を説明し、「プラットフォームスタック」の中でこれらがいかに相互作用するかを考察するいい機会です。
Cardanoプラットフォームスタックの要素
図1:Cardanoノードと通信するコンポーネント
Cardanoプラットフォームスタックには以下のコアコンポーネントが含まれます。
- Cardanoノード(および関連プロセス)
- Cardanoウォレット
- ウォレットコマンドラインインターフェイス(CLI)
- DB Sync(ブロックチェーンデータを関連するデータベースと同期)
- PostgreSQLデータベース(GraphQL、REST API、SMASHと相互作用)
- SMASHサーバー
- Rosetta API(ブロックチェーン通信プロトコル)
注:Daedalusはコアスタックに含まれませんが、コンポーネントと通信します(図1)。
ノードとネットワーク層
はじめに、Cardanoノードを見てみましょう。このソフトウェアは個人のコンピューター上で実行されてネットワークを支え、誰もが分散型ブロックチェーンに参加できるようにするものです。ノードは、コンセンサス、台帳、ネットワークのサブコンポーネントを統合し、他のCardanoコンポーネントまたは熟練したユーザーが使用できるトップレベルの設定、API、CLI、ログ、メモリー管理、そして監視機能を提供します。Daedalusはフルノードウォレットで、ローカルマシンで実行することにより、実質的にネットワークの実行に貢献することになります。
ネットワーク層
次にネットワーク層です。これは各Cardanoノードを、ブロックチェーンを管理する1つの分散型システムと関連サービスにリンクさせます。ネットワークは、互いに通信しあって分散型台帳を維持し、トランザクションの送信を支え、ユーザーのウォレットや他のサービスとやり取りするノードの集合で構成されます。ネットワークのコアは、集団的にブロックを検証し、チェーンに新たなブロックを追加する分散型ノード(ステークプール)を中心に構築されています。これを支えるのは、ネットワーク接続を管理し、ネットワークの構造を全体として確立する専用のリレーノードです。Daedalusウォレットや他のサービスが実行する専用のコンシューマーノードはこのネットワークに接続し、チェーン上でトランザクションを追跡、送信します。 Cardanoノードはピアとの接続を維持します。一連のミニプロトコルがノード間の通信を可能にします。各ミニプロトコルは基本的な情報交換要件を実装しています。例えば、Cardanoネットワークのあちこちでピアに最新ブロックを伝える、必要に応じてブロックを共有する、新たなトランザクションを共有する、などです。ミニプロトコルは、接続を目的として、ネットワークプロトコルのバージョンによって決定されます。
Cardanoウォレットバックエンド
CardanoウォレットバックエンドコンポーネントはDaedalusウォレットのグラフィカルユーザーインターフェイスをサポートしています。これは、ADAの送受信に使用されます。ウォレットはバックグラウンドでCardanoフルノードを実行しています。軽量クライアントウォレットとは異なり、これは共有された台帳全体をロードし、すべてのトランザクションを検証するため、全員にとってブロックチェーンのセキュリティが強化されます。
ウォレットコマンドラインインターフェイス(CLI)
ウォレットコマンドラインインターフェイス(CLI)は実際のブロックチェーンとのやり取りをサポートします。高度な技術を持つユーザーは、CLIにより、ツールのコレクションを使用して、鍵の生成やトランザクションの構築、証明書の作成、その他のタスクを実行することができます。これはサブコマンドの階層順に整理され、各レベルには、コマンドシンタックスやオプションのビルトインドキュメンテーションが付されています。
DB Sync
DB SyncはCardanoチェーンのアクティビティに従い、PostgreSQLにブロックとトランザクションを保存するコンポーネントです。「ミドルウェア」コンポーネントとして、cardano-graphqlを強化します。DB Syncは、ブロックチェーン探索のための高レベルのインターフェイスを有効にするために、cardano-nodeからフェッチしたブロックチェーンを中間データベースに保存します。また、数多くのクエリを提供してPostgreSQLからCardanoブロックチェーンデータをフェッチし、ブロックチェーンデータをシンプルに反映するグラフィカルユーザーインターフェイス、Cardanoエクスプローラーなどのサービスをサポートします。Cardano GraphQLは、GraphQLデータクエリ言語用のクロスプラットフォームAPIです。
Rosetta API
Rosettaアプリケーションプログラミングインターフェイスは、統合プロセスをより簡単に、より速く、より信頼できるものにすることを目的とした高レベルインターフェイスを提供します。これにより、一度構築すると、どこでもブロックチェーンを統合できます。Cardanoとの統合プロセスを簡易化するために、私たちはユニークなcardano-rosettaを作成しました。このインターフェイスは、取引所に特に役立ちます。他のブロックチェーンで使用するものと同じインターフェイスを使って、Cardanoチェーンとやり取りすることができるためです。
今後
まもなくCardanoにスマートコントラクトが搭載されますが、これは、スマートコントラクトのネイティブ言語Plutusや、金融仕様のMarlowe、DApp仕様のGlowなど、その他のスマートコントラクト開発言語がCardanoスタックに統合されることを意味します。IO Globalのエンジニアは、Plutus、Marlowe、Glowのスクリプトをコンパイルし、チェーン上に送信し、やり取りするための新コンポーネントや拡張コンポーネントを提供します(図2)。
図2:Plutus、Marlowe、Glow、Solidity、IELEはすべて、Cardanoスマートコントラクトの作成に使用可能
Alonzoプロトコルアップグレードは、最近のトークンアップグレードの上に構築され、複数のテストネットを経てメインネットで展開されます。PlutusパートナーやPlutusパイオニアたちはPlutus Coreのテストに協力し、メインネットへの展開前のユーザー受け入れフェーズに参加します。この時点で、インタープリターなどのPlutusとMarloweコンポーネントはCardanoプラットフォームスタックへと公式に追加されます。 Alonzoロールアウトの最新情報は、ソーシャルチャネルとブログをチェックしてください。
最新の記事
Quality Engineering at IO: bridging research and reality in software development 筆者: Ivan Irakoze
20 November 2024
ブラックホーク空へ:ハリケーン「へリーン」を受けて英雄達を輸送 筆者: Fernando Sanchez
29 October 2024
ワイオミングのBlockchain StampedeでCardano Day 筆者: Alejandro Garcia
21 October 2024