BitcoinとEthereumで使われているLevelDBとBerkeley DBについて




BitcoinとかEthereumなどのブロックチェーンで使われるDB

BitcoinではLevelDBとBerkeleyDBが使われています。EthereumはLevelDBが使われています。

この2つのDBは全然聞き覚えがないですし、どんなDBなのか分からないので調べてみました。

LevelDB

LeveDBはGoogleが作っているOSSのkey-valueのデータストアみたいですね。特徴としてはこんな感じです。

  • 基本コマンドPut(key,value)Get(key)Delete(key)
  • 複数操作を一回の操作で完結できる(アトミック)
  • データを自動で圧縮してくれる

LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.

GitHub:https://github.com/google/leveldb

日本語記事だとこちらが非常に分かりやすいです。

Berkeley DB

名称の由来はカリフォルニア大学バークレー校で開発されてたからみたいですね。今はオラクルが買収して開発を続けているみたいです。

無料版があってそれが使われているかと思います。

用途としてはRDBだとオーバースペックだし、ファイルシステムだとトランザクション管理できないからその中間として使われているみたいです。

LevelDBもそうですが、BerkelyDB専用にインスタンスを立てる必要がないので、プロセス間通信をしないのでオーバーヘッドが少なく高速にやりとりできるみたいです。

Bitcoinとかブロックチェーンでは将来的なスケールを考慮して使われてそうですね。

詳細な機能は下のリンクが分かりやすいです。

まとめ

まだまだこの2つのDBの利点が理解できていないのでどんどん追記していきます。

Bitcoin、Ethereumのデータを保存している場所の構造とかもまとめられればと思います。

The following two tabs change content below.

高妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です