EthereumとCardanoのノードクライアント

この記事は、CardanoのProject Catalystが主催するシリーズの一部で、すでにCardanoに精通している人々がEthereumをよりよく理解できるように、そしてその逆もまた然りです。シリーズ](https://www.lidonation.com/tags/ethereum)の他の記事はこちらです。私たちの助成金の詳細については、提案 をご覧ください。

いくつかの基本的な定義

ブロックチェーンネットワークにおけるテクノロジースタックの中核となるのは、ノードと、人間がノードを操作するのを助けるクライアントです。今日は、これらの要素がイーサリアムとカルダノのネットワークでどのように機能するかを比較対照してみましょう。本題に入る前に、いくつかの基本的な定義を整理しておきましょう。

コンピュータサイエンスでは、ノードはネットワーク内の物理的なデバイスで、情報の送信、受信、転送を行うことができるものです。ブロックチェーンネットワークは、メッセージの交換と保存に関するルールの集合体に過ぎません。ブロックチェーン・ネットワーク上のノードの形や大きさはさまざまですが、いずれもコンピュータ・ネットワーク上のノードと同じように、他のノードに情報を送ったり、受け取ったり、転送したりすることができます。この一般的な考え方の周りにはもっとふわふわとした複雑なものがありますが、この記事の目的では、この基本的な定義で行きましょう。

コンピュータサイエンスにおけるクライアントは、外部またはリモートのリソースを使用するものを大まかに指します。たとえば、Chrome、Brave、SafariなどのブラウザはHTTPクライアントで、リモートのウェブサーバーと通信して、この記事やその他のウェブコンテンツを画面に表示します。 同様に、ブロックチェーンは、異なるインタラクションを実行できるように、異なるクライアントを提供します。例えば、ブロックチェーンウォレットクライアントでは、暗号を受け取ったり、他の人に送ったりすることができます。ノードクライアントは、技術者がコンピュータのハードウェアを設定して、ブロックチェーンネットワーク上で情報を送受信したり、転送したりするのを支援します。2 Adaや0.1 Ethを友人やeコマースサイトに送信する場合、そのメッセージは通常、ノードクライアントによって処理され、ブロックチェーンに記録されます。

ブロックチェーンノードクライアントは、例えば私たちのブラウザクライアントと比較して、小さな独自性があります。ブロックチェーンノードとそのクライアントは、通常、腰のところでくっついているので、時には互換的に呼ばれることがあります。ブラウザクライアントはブラウザの中にいて、地球の裏側にあるウェブサーバーと会話しています。しかし、ブロックチェーンノードとノードクライアントは、多くの場合、同じデバイスに住んでいます。しかし、その親密さにもかかわらず、ブロックチェーンノードとブロックチェーンノードクライアントは2つの別物です。

ブロックチェーンノードは、データを受信して検証し、メッセージを転送し、または検証されたデータを他のノードに送信します。 ブロックチェーンノードは、ブロックチェーンの中核となるルールが格納される場所です。

ブロックチェーンノードクライアントは、ブロックチェーンノードの監督者である。ブロックチェーンノードクライアントは、開発者がトランザクションを構築し、採掘作業を実行できるようにします。ブロックチェーンノードクライアントは、ブロックチェーンノードが稼働している環境に合わせた多くの追加機能を備えていることがあります。例えば、ノードから取得したブロックチェーンのコピーを、特定のソフトウェアが読むのに最適化された方法で保存することがあります。クライアントによっては、非ブロックチェーンシステムがクライアントの背後にあるブロックチェーンノードと対話するための複数のネットワークプロトコルを提供するものもあります。クライアントは、プログラミング言語に特化することができます。

イーサリアム上の ## ノードクライアント イーサリアムのノードは、設計・作成時に、正式な仕様書によって定義されました。形式仕様とは、何かを行う、あるいは構築するための指示が、数学を使って正確に定義されていることを、オタク的な言い方で表したものです。イーサリアムのノードは正式仕様であるため、他のクライアントと相互運用性を保ち、台帳の規則に従いながら、特定のタイプのユーザーに対応するさまざまなクライアントを構築することが可能です。 その結果、イーサリアムは2015年から存在しており、他のブロックチェーンネットワークと比較して、ノードクライアントの豊かなエコシステムを享受しています。

イーサリアム財団は、Go(Geth, Prysm ), .Net/C#, Java そして Rust など人気のプログラミング言語コミュニティ向けクライアントを保持しています。また、コンピュータのコマンドラインインターフェースだけで素早くノードを読み取り、イーサリアムのブロックチェーンと通信するためのイーサリアムクライアント(OpenEthereum )がある。

イーサリアムのノードクライアントは、フルノードクライアント、ライトクライアント、リモートクライアントのいずれにもなり得ます。 フルノードクライアントはブロックチェーン全体の履歴を保持し、ブロックチェーンがサポートする可能なすべてのアクションを実行できるようにします。 ライトクライアントは通常、ブロックチェーンデータの一部のみを保持し、特定の(そして限定的な)ことを実行できるようにします。 より高速で、より少ないリソースで実行できる傾向があります。 リモートクライアントは、データの保存やメッセージの検証を行いません。その代わり、リモートでフル/ライトクライアントに接続し、タスクを実行します。リモートクライアントは、通常、ウォレットアプリケーションを構築するために使用されます。リモートクライアントの利点は、ブラウザのような場所に埋め込んで、ユーザーが自分のキーフレーズを使ってブラウザで何かを構築したり、取引に署名したり、デコードしたりできるようにできることです。ただし、ブロックチェーンに提出したり検証したりする必要があるものは、その後、リモートフルクライアントまたはライトクライアントに送られて処理されます。

これらのノードとノードクライアントは、ほとんど交換可能です。ライトクライアントをフルノードに接続したり、フルノードクライアントをアーカイブノードに接続したりすることができます。通常、ノードクライアントは、接続されているノードの種類を測定し、それに応じて自分自身を構成する。

多くのクライアント、特にブロックチェーンのコアに近いクライアントを持つことのトレードオフの1つは、イーサリアムのコアシステムへのアップデートを調整し、リリースすることです。 これは難しいことかもしれません。コミュニティ全体からの調整がないと、クライアントがアップデートに対応できていない状況が発生し、ネットワーク上にメッセージを作成して問題を引き起こす可能性があります。 2021年8月、人気のあるクライアントノードの1つであるGethは、多くのユーザーが古いバージョンのクライアントを使用しており、これが原因でイーサリアムネットワークがフォークしてしまいました。ブロックチェーン上のフォークは、複数のバージョンの履歴が競合したときに起こります。それらのユーザーはノードクライアントを更新することができ、履歴は調整された。

カルダノのノードクライアント

カルダノのノードとクライアントに関しては、まだ始まったばかりである。この記事を書いている時点では、実運用されているノードとクライアントの実装は1つだけである。これはHaskellで書かれており、Cardanoの設立主体の1つであるIOGによってメンテナンスされている。つまり、ブロックチェーン層に密接に触れるリッチなアプリケーションを構築したい場合、アプリケーションがブロックを構築したり、他のCardanoノードからのブロックを処理したい場合は、Haskellで書かなければならないということである。 また、このクライアントは、ブロックの生成や中継に興味があることを想定しています。

IOGのノードとクライアントの実装は、ノードクライアントにトランザクションを送信し、基本的な質問をするためのCLIとRESTインターフェースの両方を提供します。

IOGは、Mithrilと呼ばれる別のノードとクライアントの実装を開発中です。これは現在テスト中で、今後数カ月でリリースされる予定です。Mithrilでは、完全なノードクライアントを作成し、ブロックチェーンと完全に同期させることができます hours rather than days. 将来的には、Mithrilはイーサリアム式のライトクライアントを開発するためのキーコンポーネントにもなるでしょう。

Project Catalystを通じて、カルダノコミュニティは、現在IOGノードとクライアントの実装がうまく機能していないユースケースとプログラミング言語コミュニティに対応するための代替ノードクライアントを夢見ているのです。

link model_type=CatalystUser id=2]Five Binaries[/link]のチームは、特にメタデータ・アプリケーションに対応するクライアントを開発したいと考えています。Metadata oracle nodeです。

TxPipesは、データや読み込みの多いアプリケーションに特化したRust node clientを開発したいと考えています。クラウドネイティブであり、現在のIOGノードクライアントのようにローカルサーバにではなく、クラウドに効率的にデータを保存できるようにしたいと考えています。TxPipeクライアントは、HTTP/JSONとgRPCネットワーク通信のサポートも提供します。

Ethereumと同様、Cardanoのノードとクライアントの実装は正式に規定されているため、現在のIOGのクライアントや将来のクライアントと相互運用性を持ちながら、これらをはじめとする多くのノードとクライアントのソフトウェアを特定の環境向けに記述することができる。

結論

ブロックチェーンネットワークは、立ち上げ後にどれだけコミュニティとグローバルな支持を集めることができるかによって生死を決します。ノードとクライアントの実装の豊かなエコシステムを持つことは、ブロックチェーンネットワークがビジネスコミュニティから支持されていることの良い兆候の1つです。

イーサリアムについては、この記事を読む前に、テレビやビルボード、あるいは何らかのスクリーンで何度も目にしたことがあるかもしれない。イーサリアムは、ビジネス界からの支持を獲得しています。

スマートコントラクト・ブロックチェーンアプリケーションのサポートを開始してからわずか1年で、すでに多くのノードとクライアントを実装するところまで来ていることは、Cardanoにとって良い兆候です。そのコミュニティは充実しており、今後作業が進めば、より広いビジネスコミュニティからどれだけの賛同が得られるかがわかるだろう。

Related Links

このような記事をメールで受け取る

Was the article useful?

Or leave comment
Share

No comments yet…

avatar
You can use Markdown
close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3分 24秒
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4分 3秒
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3分 48秒
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2分 16秒
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3分 14秒
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3分 19秒
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4分 59秒
    Darlington Kofa
0:00
/
~0:00