romanz / electrs

An efficient re-implementation of Electrum Server in Rust
MIT License
1.02k stars 373 forks source link

Rocksdb version #1034

Open yancyribbens opened 1 month ago

yancyribbens commented 1 month ago

Just a question, but if I understand electrs will only work with an old version of rocksdb 7.8.3-2. I was thinking of trying out electrs on a different OS type then what the docs describe (debian or ubuntu). Building an older version of rocksdb shouldn't be too hard (fingers crossed) but just wondering the rational.

yancyribbens commented 1 month ago

I guess this is only an issue with dynamic linking.

yancyribbens commented 1 month ago

After a little more digging, I think the docs might be out of date. It seems that at least rocksdb 7.9.2 is supported https://github.com/romanz/rust-rocksdb/commit/c1314a3d5942cf19975a3e1058cd2fa418bb1837

romanz commented 1 month ago

In this project, we are using the same RocksDB version that is being used in the current Debian stable release, to allow dynamic linking: https://packages.debian.org/bookworm/librocksdb-dev -> 7.8.3

romanz commented 1 month ago

In theory, it's possible to update the RocksDB dependency and compile it from source - but currently RocksDB 7.8.3 is good enough for electrs.

romanz commented 1 month ago

Actually, if there was a stable enough pure Rust key-value store, with performance characteristics similar to RocksDB, I would prefer switching to it -> https://github.com/romanz/electrs/issues/201

yancyribbens commented 1 month ago

hmm yeah sled would be cool to try

Kixunil commented 1 week ago

If the Rust wrapper didn't break API we could've just used ranged versions and allow linking any version from a reasonable range. The users would just need to update Cargo.lock.