Dari Nyeri RocksDB ke Kemenangan GraniteDB
Pembangunan Ferrous Network mengungkapkan keterbatasan database umum. Berikut adalah mengapa saya menulis GraniteDB dari awal.
Saya membutuhkan penyimpanan persisten untuk:
- UTXO set
- Block index
- Chain state
- Mempool
RocksDB adalah pilihan yang jelas. Tapi kemudian kenyataan menyakitkan: waktu load yang lama dan tidak terkendali.
Masalah yang Dimulai Semua
RocksDB adalah mesin penyimpanan yang luar biasa, tapi tidak dirancang untuk blockchain.
Saya membutuhkan sesuatu yang lebih spesifik:
- Pemulihan crash yang deterministik
- Perilaku snapshot yang dapat diprediksi
- Pembacaan titik yang cepat untuk lookup akun/keadaan
- Penulisan batch yang aman untuk eksekusi blok
- Waktu startup yang cepat
- Kode yang dapat diaudit
GraniteDB: Mesin Penyimpanan Blockchain Pertama
Saya memulai menulis GraniteDB untuk memecahkan masalah spesifik saya.
GraniteDB = Mesin penyimpanan Rust + Semantik keadaan blockchain + Kebenaran > Throughput (awalnya) + Tidak ada interop C++ yang menyakitkan
Fitur Utama
- Kontrak API yang jelas
- Format WAL yang siap produksi
- Model threading single-penulis
- Invariant yang eksplisit di mana-mana
Pendapat Geek
GraniteDB tidak menjanjikan untuk menjadi 10x lebih cepat dari RocksDB, tapi menawarkan kelebihan lain seperti waktu startup yang cepat, pemulihan crash yang deterministik, dan kode yang dapat diaudit.
Saya tidak berjanji bahwa GraniteDB akan menjadi segalanya untuk semua orang, tapi untuk keadaan blockchain, mungkin ini adalah yang tepat.



