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のデータを保存している場所の構造とかもまとめられればと思います。
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す