ブログ > 2021 > June > Cardanoで稼働するソフトウェアに注目

Cardanoで稼働するソフトウェアに注目

ブロックチェーンプラットフォームを実行するために相互作用するコンポーネントの「スタック」を知ろう

2021年 6月 8日 Niamh Ahern 7 分で読めます

Cardanoで稼働するソフトウェアに注目

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ロールアウトの最新情報は、ソーシャルチャネルとブログをチェックしてください。