🏗️🚧 レス
モジュール式で貢献者に優しく、超高速のイーサリアムプロトコルの実装

プロジェクトはまだ進行中です、以下の免責事項を参照してください。

レスとは何ですか?その目標は何ですか?
Reth(Rust Ethereumの略、発音)は、ユーザーフレンドリーで高度にモジュール化され、高速で効率的であることに焦点を当てた新しいイーサリアムフルノード実装です。Reth は実行レイヤー (EL) であり、エンジン API をサポートするすべてのイーサリアム コンセンサス レイヤー (CL) 実装と互換性があります。もともとはParadigmによって構築され、推進されており、ApacheおよびMITライセンスの下でライセンスされています。
完全なイーサリアムノードとして、Rethを使用すると、ユーザーはイーサリアムネットワークに接続してイーサリアムブロックチェーンと対話できます。これには、トランザクション/ログ/トレースの送受信、スマートコントラクトへのアクセスと操作が含まれます。イーサリアムノードを成功させるには、安全で効率的であり、消費者向けハードウェアで使いやすい高品質の実装を作成する必要があります。また、ソフトウェアのサポートと改善を支援できる貢献者の強力なコミュニティを構築する必要があります。
具体的には、私たちの目標は次のとおりです。
-
モジュール性:Rethのすべてのコンポーネントは、ライブラリとして使用するように構築されており、十分にテストされ、高度に文書化され、ベンチマークされています。開発者がノードのクレートをインポートし、組み合わせて、それらの上で革新することを想定しています。このような使用例には、スタンドアロンのP2Pネットワークのスピンアップ、ノードのデータベースとの直接の通信、またはノードを必要なコンポーネントに「アンバンドル」することが含まれますが、これらに限定されません。これを達成するために、私たちはApache/MIT寛容ライセンスの下でRethをライセンスしています。プロジェクトのコンポーネントの詳細については、こちらをご覧ください。
-
パフォーマンス:Rethは高速を目指しているため、RustとErgonのステージ同期ノードアーキテクチャを使用しました。また、ファウンドリを介してバトルテストおよび最適化したイーサリアムライブラリ(ethers-rsおよびrevmを含む)も使用しています。
-
誰でも好きなように自由に使える: Reth は、コミュニティのために、コミュニティによって構築された無料のオープンソースソフトウェアです。Apache/MITライセンスの下でソフトウェアをライセンスすることで、開発者がビジネスライセンスに縛られたり、GPLライクなライセンスの影響を考えたりすることなく、ソフトウェアを使用できるようにしたいと考えています。
-
クライアントの多様性:イーサリアムプロトコルは、ノードの実装が支配的ではないと、より脆弱になります。これにより、ソフトウェアのバグがある場合、ネットワークは不良ブロックを確定しません。新しいクライアントを構築することで、イーサリアムの脆弱性対策に貢献したいと考えています。
-
できるだけ多くのEVMチェーンをサポート:Rethがイーサリアムだけでなく、オプティミズム、ポリゴン、BNBスマートチェーンなどの他のチェーンも完全に同期できることを目指しています。これらのプロジェクトのいずれかに取り組んでいる場合は、お問い合わせください。
-
構成可能性:高速な履歴クエリを気にするノードオペレーターだけでなく、大規模なハードウェアで操作できない愛好家のためにも解決したいと考えています。また、ジェネシスからの同期と「高速同期」による同期の両方を希望するチームや個人をサポートしたいと考えています。Rethは十分に構成可能であり、各チームが直面するトレードオフに対して構成可能な「プロファイル」を提供することを想定しています。
地位
プロジェクトを使用する準備ができていません。2023年1月/ 2月中に完全同期を実装し、その後最適化したいと考えています。それまでの間、リポジトリのすべてのクレートが十分に文書化され、抽象化され、テストされていることを確認するために取り組んでいます。
開発者向け
ビルドとテスト
このプロジェクトをビルドするために必要なRustの最小バージョンは1.65.0です 公開 02.11.2022
git clone https://github.com/paradigmxyz/reth
cd reth
cargo test --all
貢献と支援の入手
貢献したい場合、または貢献者の議論をフォローしたい場合は、メインの電報を使用して、Rethの開発についてチャットできます。
リポジトリの構造と各パッケージの説明の詳細については、プロジェクトレイアウトを参照してください。
質問がある場合は、まず質問に対する答えが本にあるかどうかを確認してください。
答えがない場合:
貢献方法に関するガイドラインは、私たちの CONTRIBUTING.md
にあります。寄稿者向けドキュメントで貢献を始めましょう
安全
SECURITY.md
を参照してください。
確認
Reth はイーサリアムプロトコルの新しい実装です。ノードを開発する過程で、他のノードが行った設計上の決定を調査して、何がうまくいっていて、何がうまくいっていないか、そして現状を改善できる場所を理解しました。
彼らなしでは、これは不可能だったので、以下のチームに大声で叫びます。
-
Geth: 長年にわたるイーサリアムへの卓越した貢献に対して、ゴーイーサリアムチームに心から感謝します。彼らのたゆまぬ努力と献身は、イーサリアムエコシステムを形作り、今日の活気に満ちた革新的なコミュニティにするのに役立ちました。プロジェクトへのあなたの努力とコミットメントに感謝します。
-
エリゴン(fka Turbo-Geth):エリゴンは、レスが使用している「段階的同期」アーキテクチャを開拓し、MDBXを最適なデータベースとして導入しました。イーサリアムノードのパフォーマンス限界に関する最先端の研究を推進してくれたEligonに感謝します。
-
Akula: Reth は Apache バージョンの Akula の MDBX Bindings, FastRLP, ECIES のフォークを使っています。これらのパッケージはすでにApacheライセンスの下でリリースされており、標準化されたソリューションを実装しているため、反復を高速化するためにそれらを再実装しないことにしました。Rust Ethereumエコシステムへの貢献とこれらのパッケージを公開してくれたAkulaチームに感謝します。
🚧警告:建設🚧中
このプロジェクトは進行中の作業であり、個々のノードコンポーネントを完全に同期するパイプラインに配線することにまだ取り組んでいるため、頻繁に変更される可能性があります。
セキュリティ上の目的で監査されていないため、まだ運用環境では使用しないでください。
各コンポーネントの完了ステータスでドキュメントを更新し、より多くの貢献ガイドライン(設計ドキュメント、アーキテクチャ図、リポジトリレイアウト)と「良い最初の問題」を含めます。詳細については、上記の「貢献とヘルプの利用」セクションを参照してください。
そこに着くまで、ご理解のほどよろしくお願いいたします。それまでは、上記のTelegramリンクのすべての質問にお答えします。