カルダノを動かすソフトウェアの詳細についての記事。ブロックチェーン・プラットフォームを実行するために相互作用するコンポーネントの「スタック:最も基本的なデータ構造の一つ一つ」について学びます。
以下はIOGブログ「A close look at the software running Cardano」を翻訳したものです。
カルダノを動かすソフトウェアに迫る
ブロックチェーン・プラットフォームを実行するために相互作用するコンポーネントの「スタック」について学びます。
By Niamh Ahern Technical Writer Education 2021年6月8日 Niamh Ahern 5 mins read
カルダノ(Cardano)はモジュールで設計されており、様々な方法で使用可能なリンクされたコンポーネントを備えています。これらのコンポーネントは、カルダノの「プラットフォームスタック」を形成しています。これらはフードの下で一緒に働き、ライブのカルダノ・ブロックチェーンの構築と使用をサポートします。
私たちは現在、アロンゾ(Alonzo)ハードフォークに向けた初期テストネットの段階にあり、これによりカルダノに完全なスマートコントラクト機能がもたらされます。このプロセスは非常に複雑で、カルダノ・プラットフォームを構成するさまざまな要素を着実にアップグレードし、それらを慎重に統合してテストする必要があります。そこで、これらの構成要素を再確認し、いくつかの用語を説明し、「プラットフォームスタック」の中でそれらがどのように相互作用するかを発見する良い機会となります。
カルダノ・プラットフォームスタックの構成要素
カルダノのプラットフォームスタックには、以下のコアコンポーネントが含まれています。
- カルダノノード(および関連するプロセス)
- カルダノ ウォレット
- ウォレットのコマンドラインインターフェース(CLI)
- DB Sync(ブロックチェーンデータをリレーショナルデータベースと同期させる)
- PostgreSQLデータベース(GraphQL、REST API、Smashと連動する
- Smashサーバー
- Rosetta API(ブロックチェーンの通信プロトコル
なお、Daedalusウォレットはコアスタックの一部ではないが、各コンポーネントと通信する(図1)。
ノードとネットワーク層
まず、カルダノノードを見てみましょう。このソフトウェアはユーザーのコンピュータ上で動作し、ネットワークを支えて、誰もが分散型ブロックチェーンに参加できるようにします。ノードは、コンセンサス、台帳、ネットワークのサブコンポーネントを統合し、トップレベルの設定、API、CLI、ログ、メモリ管理、監視機能を提供し、他のカルダノコンポーネントや熟練したユーザーが使用することができます。Daedalusはフルノードウォレットなので、もしあなたがローカルマシンでそれを実行しているなら、あなたは事実上ネットワークの実行を助けていることになる。
ネットワーク層
次に、ネットワーク層があります。これは、各カルダノノードを、ブロックチェーンと関連サービスを管理する分散システムに結びつけるものです。ネットワークは、分散型台帳の維持、トランザクション送信のサポート、ユーザーウォレットやその他のサービスとのやり取りを行うノードの集合体で構成されています。ネットワークの中核となるのは、ブロックをまとめて検証し、新しいブロックをチェーンに追加する分散型ノード(ステークプール)です。これらのノードは、ネットワークの接続を管理し、ネットワーク全体の構造を確立する専用のリレーノードによって支えられています。Daedalusウォレットやその他のサービスによって運営されている専用のコンシューマーノードは、このネットワークに接続して、チェーン上のトランザクションを追跡・送信します。
カルダノノードは、ピアとの接続を維持します。一連のミニプロトコルは、ノード間のコミュニケーションを可能にします。各ミニプロトコルは、ピアに最新のブロックを通知したり、必要に応じてブロックを共有したり、新しいトランザクションをカルダノネットワークで共有するなど、基本的な情報交換要件を実装しています。接続のために、ミニプロトコルはネットワークプロトコルのバージョンによって決定されます。
カルダノ ウォレット バックエンド
カルダノウォレットバックエンドコンポーネントは、Daedalusウォレットのグラフィカルユーザーインターフェースをサポートする。ADAを送受信するために使用されます。舞台裏では、ウォレットは完全なカルダノノードを実行しています。ライトクライアントウォレットとは異なり、共有元帳全体をロードし、すべてのトランザクションを検証するため、誰にとってもブロックチェーンのセキュリティを強化することができます。
ウォレットのコマンドラインインターフェイス(CLI
ウォレットのコマンドラインインターフェイス(CLI)は、実際のブロックチェーンとのやり取りをサポートします。より技術的に高度なユーザーは、CLIを使用して、鍵の生成、トランザクションの構築、証明書の作成、その他のタスクを実行するためのツールのコレクションを操作することができます。CLIはサブコマンドの階層で構成されており、各階層にはコマンドの構文やオプションに関する独自のドキュメントが組み込まれています。
DB Sync
DB Syncは、Cardanoチェーン上の活動をフォローし、ブロックやトランザクションをPostgreSQLに保存するコンポーネントです。ミドルウェア」コンポーネントとして、cardano-graphqlを強化します。DB Syncは、cardano-nodeからフェッチされたブロックチェーンデータを中間データベースに格納し、ブロックチェーン探索のための高レベルのインターフェースを可能にする。また、PostgreSQLからカルダノのブロックチェーンデータを取得するための多くのクエリを提供し、ブロックチェーンデータをわかりやすく反映するグラフィカルユーザーインターフェースCardano Explorerなどのサービスをサポートします。Cardano GraphQLは、データクエリ言語「GraphQL」のクロスプラットフォームなAPIです。
ロゼッタAPI
ロゼッタアプリケーションプログラミングインターフェイスは、統合プロセスをより簡単に、より速く、より信頼性の高いものにすることを目的としたハイレベルなインターフェイスを提供し、一度構築すればどこでもブロックチェーンを統合できるようにします。私たちは、カルダノとの統合プロセスを簡素化するために、独自のcardano-rosetta実装を作成しました。このインターフェースは特に取引所にとって有用で、他のブロックチェーンで使用しているのと同じインターフェースを使ってカルダノチェーンと対話することができます。
今後の展望
スマートコントラクトがまもなくカルダノに搭載されるということは、ネイティブのスマートコントラクト言語であるPlutusや、金融向けのMarlowe、DApps向けのGlowなどのスマートコントラクト開発言語がカルダノのスタックに統合されることを意味します。IO Globalのエンジニアは、Plutus、Marlowe、Glowのスクリプトをコンパイルしたり、オンチェーンで送信したり、それらと対話するための新しいコンポーネントや拡張コンポーネントを提供する予定です(図2)。
アロンゾプロトコルのアップグレードは、最近のトークンのアップグレードに基づいて行われ、いくつかのテストネットを経由してメインネットに展開されています。PlutusパートナーとPlutusパイオニアは、Plutus Coreのテストに協力し、メインネット展開前のユーザー受け入れフェーズに参加します。この時点で、私たちはPlutusとMarloweのコンポーネント(両インタープリタなど)を正式にカルダノのプラットフォームスタックに追加します。
Alonzoの展開についての最新情報は、私たちのソーシャルチャンネルやブログページをご覧ください。