Ethereum 2.0のノードが話す必要がある – 解決策は「趣味」です

次回のethereumブロックチェーンの作成に取り組んでいる開発者は、クライアント開発者がアップグレードに先立ってテスト作業を強化するのに役立つコードを開発しました。

Ethereum 2.0は、4年前のブロックチェーンネットワークのスケーラビリティと使いやすさを大幅に向上させると発表された開発者のアジェンダにとって、これまでで最大のアップグレードです。 2.0の繰り返し(Serenityとしても知られている)の作業は急速に進んでおり、クライアント開発者Parityの最高技術責任者であるFredik Harrysonによれば、アップグレードの最初の段階的導入のためのコード仕様はほぼ半分完成している。

このように、アップグレードの多くの側面がまだ研究中で現在完成していますが、4月23日に承認され最終的に実装されれば、ethereum 2.0ソフトウェアを実行するノード間の基本通信を容易にする新しいコードが明らかにされました。

Hobbitsと呼ばれるプロトコルは、ブロックチェーンのパフォーマンステスト会社Whiteblock、ethereumベンチャーキャピタルスタジオConsensys、およびethereum 2.0の実装者チームであるChainsafeとYeethの間のパートナーシップで開発されました。

この技術を紹介するブログ記事で 、Trenton Van Eppsは次のように書いています。

「Ethereum 2.0クライアントが実際のテストネットに近づくにつれて、各クライアント間で情報をやり取りする方法が必要になります。これは、ワイヤプロトコルと呼ばれる一連のリンクで発生します。

ブロックプロトコル自体を構成するノード同士が重要な情報、つまりトランザクション履歴をやり取りするため、ワイヤプロトコルがこれらの分散ネットワークの機能の中心になります。

2月にCoinDeskと話して、ethereumの創設者Vitalik Buterinは、ワイヤプロトコルが本質的に「ネットワークを介して送信されるメッセージのルール」を決定すると説明しました。

「たとえば、2つのノードが互いに通信していて、1つのノードがブロックチェーンと同期したい、またはブロックを公開したい場合、どのようにしてブロックについて聞きたいですか。取引について知りたいのですが。 「ブテリンはコインデスクに言った。

Ethereum 2.0は、実際には、FilecoinやIPFSのようなプロジェクトの背後にある、サンフランシスコに拠点を置くスタートアップProtocol Labsによって開発および維持されている「libp2p」と呼ばれるワイヤプロトコルを利用することになるでしょう。しかし、その実装がすべてのethereum 2.0クライアントで実現されるまで、Hobbitsはlibp2pの準備が整っていないクライアント間の相互通信を確立する手段として想定されています。

Hobbitsの構築に貢献したConsensysのプロトコルエンジニア、Jonny RheaがCoinDeskに説明した。

「libp2pはまだないので、すべての部分をまとめることができるようになるまで、テストワイヤプロトコルのような最小限のワイヤプロトコルを見つける必要がありました。」

Libp2p

当時指摘されていたButerinのすべてのブロックチェーンには、ネットワークを介してメッセージを送受信する方法を定義するためのワイヤプロトコルまたは「ミニ言語」があります。現在のbitcoinとethereumでは、ワイヤプロトコルはいわゆるゴシップネットワークを使用しています。

ButerinがCoinDeskに語ったように:

「bitcoinと[ethereum 1.0]では、どちらもゴシップネットワークと呼ばれています。ブロードキャストされたものはすべて最終的には誰にでも届きますが、[ethereum 2.0]ではそれができません。単一ノードがダウンロードできるよりも多くのメッセージがあるからです。」

そのため、新しいethereum 2.0ワイヤプロトコル(libp2p)には2つの大きな利点があります。ノードがメッセージを送信しようとするたびにネットワークがあふれたり輻輳したりするのを防ぐために、最初に「gossipsub」と呼ばれる新しいプロトコル設計を利用します。

「新しいブロックを持っていて、6人の仲間とつながっている場合は、そのブロックを2人か3人の仲間にランダムに送信します」とRheaは言います。私はそのメッセージを伝えます。それからそれらのノードはピアを持っています、彼らはそれを私に返送しませんが、彼らは確率的にメッセージを送信するためにもう2つのピアを選びます。」

より一般的には、Rheaが追加したlibp2pワイヤプロトコルを使用することの2番目の利点はモジュール性です。

「libp2pの素晴らしいところは、それがモジュール式であるということです」とRhea氏は言います。 「インターネット上で、あるノードが別のノードを見つける方法が気に入らないとしましょう。それは交換することができます。それは交換することができます。」

現時点では、Van Epps氏によると、ethereumクライアント用のlibp2pの実装は、プログラミング言語GoとRustの2つだけです。

しかし、Van Epps氏は、「ETH 2.0の発売までの長い道のりは、各クライアント言語にlibp2pを適切に実装することにかかっている」と述べています。

そのため、Java、Javascript、Swiftなどのプログラミング言語でのこれらの他の実装が完成するまで、Hobbitsは「基本的なメッセージングタイプをサポートし、ノード同士の通信を可能にする最小限の転送仕様」として機能します。

RheaはCoinDeskにこう語った。

「テストできるようにしたいものはたくさんあります。私たちのチームであるChainsafeや、[プログラミング]言語でlibp2pを実装していない他のチームがすべて[テストネットワーク]を作成し、それでも基本的に通信できるように、この基本的なワイヤプロトコルを開発しました。

Shutterstockを介してワイヤ画像