🌟

Apache ResilientDBとはなんなのか?

に公開

今回は、Apache ResilientDBについて調べてみました。今回も以下のツールを使って対象プロジェクトを決めました!

https://zenn.dev/akasan/articles/7e30ad266c02c4

※ 本企画に関する記事の目的は、それぞれのプロジェクトを本格的に深ぼるのではなく、プロジェクト名⇆どんな内容かをパッと思い出せるようにすることを目指します!
※ とはいえ深ぼってみたいプロジェクトがあればどんどん複数連載になると思います。

Apache ResilientDBとは?

公式サイトによると、

Apache ResilientDB (Incubating) offers a high-throughput yielding distributed ledger built upon scale-centric design principles to democratize and decentralize computation

ということで、スケール中心の設計原則に基づいて構築された高スループットの分散型台帳を提供し、計算を民主化し分散化するものということです。

主な特徴は以下のようです。

  • GraphQLのサポート: インタラクティブなAPI操作をサポート
  • Walletのインテグレーション: トークンのマネジメントが容易である
  • SDKのサポート: Python、RustそしてTypeScriptに対応
  • インメモリ:低レイテンシーアクセスを実現
  • 耐久性のあるストレージ:低レイテンシーアクセスを実現
  • マルチプルインターフェース:スマートコントラクト、KeyValue、UTXOに対応
  • RPCアーキテクチャ:スケーラブルな分離抽象化
  • DockernizeされたCLI:セットアップが容易である
  • セキュアな認証:NIST暗号構造の採用
  • DAG:将来対応予定
  • オープンソース

ざっくり見る限り、ブロックチェーンに関して利用される技術のようにみて取れます。なお、Apache ResilientDBはIncubatingということで、まだまだ開発が活発な成長期みたいです。後ほど共有しますが、2018年以降ロードマップで毎年多くの変更が入っているようなので、今後もブロックチェーン開発の礎になるべく開発が進められると思います。

また、GitHubには以下のような特徴もまとめられていました。

  • PBFT [Castro and Liskov, 1998] プロトコルの高度に最適化された実装を通じてクライアントトランザクションを順序付け、レプリカ間のコンセンサス確立を支援。ResilientDBは、GeoBFT [ブログ、リリース済み]、PoE、RCC、RingBFT、PoC、SpotLess、HotStuff、DAGといった最先端のコンセンサスプロトコルの導入もサポート(リリース予定のよう)
  • 少なくとも3f+1個のレプリカを展開する必要がある(ここで、f (f > 0) は任意の (または悪意のある) レプリカの最大数)
  • レプリカの1つをプライマリ(識別子0のレプリカ)として指定するプライマリ・バックアップ・アーキテクチャをサポート。プライマリ・レプリカはクライアントトランザクションのコンセンサスを開始し、バックアップは悪意のないプライマリに従うことに同意。
  • キーバリューストア、スマートコントラクト、UTXO、Python SDKなど、幅広いインターフェースを提供。ResilientDB上に構築された分散型アプリケーション(DApps)には、NFT MarketplaceとDebitableなど
  • ブロックチェーン、チェーンの状態、メタデータを永続化するために、ResilientDB は LevelDB を通じて耐久性を提供
  • デプロイメントとメンテナンスのためのシームレスなGUIディスプレイへのアクセスを提供し、監視データのプロットにGrafanaをサポート

https://github.com/apache/incubator-resilientdb#quick-facts-on-resilientdb

また、歴史についても言及されていました。

ResilientDBプロジェクトは、2018年にカリフォルニア大学デービス校のMohammad Sadoghi氏とその学生たち(リードアーキテクトのSuyash Gupta氏、リードシステムデザイナーのSajjad Rahnama氏、そしてJelle Hellings氏)によって設立され、2019年後半にオープンソース化されました。2021年9月30日には、ResilientDB v-3.0をリリースしました。2022年には、ResilientDBは完全に書き直され、再構築されました(リードアーキテクトのJunchao Chen氏、リードリカバリアーキテクトのDakai Kang氏とNexResチーム全体)。これにより、NexRes(次世代ResilientDB)と呼ばれる新しい持続可能な基盤への道が開かれました。こうして、2022年9月30日、NexRes-v1.0.0が誕生し、ResilientDBの新たな幕開けとなりました。 2023年10月21日、ResilientDBは正式にApache Incubationに受け入れられました。

学生によって作られたということで、さすがカリフォルニア大学といったところでしょうか。学生時代に作ったプロジェクトがApacheの一員になる開発ということでただただ尊敬に値するかなと思います。

なぜApache ResilientDBを使う?

公式サイトの情報を要約します!

  • ビットコインとブロックチェーンの誕生は、民主的で分散化された計算パラダイムというビジョンを刷新した。つまり、プライバシー、完全性、透明性、そして説明責任を計算モデルの根幹に組み込むことが必要である
  • このパラダイムシフトの核心にあるのは、フォールトトレラントなコンセンサスプロトコル群である
  • Apache ResilientDBにおいて、スケール中心の視点からブロックチェーンファブリック全体を大胆に再構築
  • モジュール式システム設計をゼロから再構築し、並列処理とディープパイプラインを各レイヤーに組み込み、最新のハードウェアとクラウドインフラストラクチャをグローバルに最大限に活用できる

ブロックチェーンの構築に際して従来の分散システムでは網羅できなかったため、Apache ResilientDBが作られたということのようです。

https://expolab.resilientdb.com/

ロードマップ

公式サイトにて以下のロードマップが提供されていました。プロジェクトとしては2018年からロードマップが敷かれ開発が勧められていることが確認できます。

まとめ

今回はApache ResilientDBについて紹介しました。私はブロックチェーンについて知識がなかったので、専用のデータベースが開発されていることも初耳でした。Apache ResilientDBについては専用のテックブログが解説されているようなので、詳細な情報を知りたい方はぜひ以下もみに行ってみてください!ちなみにApache ResilientDBはPython SDKもあるようなので、どこかで実際に触ってみて別途記事にしてみたいと思います。

https://blog.resilientdb.com/

Discussion