Closed qezz closed 2 months ago
@qezz could you provide the arguments of how to run your node? And I will double check with 48Club, seems like they provide the snapshot with Path & LevelDB mode.
@zzzckck here are the args we use
ExecStart=/opt/validators/bsc/bin/1.4.10/geth \
--datadir /opt/validators/bsc/data \
--config /opt/validators/bsc/config/config.toml \
--monitor.doublesign \
--history.transactions=0 \
--syncmode=full --tries-verify-mode=none --pruneancient=true --diffblock=5000 \
--cache 98304 --metrics --metrics.addr="0.0.0.0"
To clarify, before restart with the new datadir I switched the binary to the "latest stable release", which is 1.4.13
@qezz
DBEngine = leveldb
in config.toml, if so please remove it @buddh0
1
root@rpc05:/opt/validators/bsc# realpath data/geth/chaindata/
/opt/validators/bsc/data/geth/chaindata
root@rpc05:/opt/validators/bsc# ls -lah data/geth/chaindata/LOG
-rw-r--r-- 1 bsc bsc 533K Aug 19 19:37 data/geth/chaindata/LOG
2
root@rpc05:/opt/validators/bsc# cat config/config.toml | grep -Ei DBEngine | wc -l
0
I tried many times locally, not find the same issue
I think your action replaced the previous data dir with this one
maybe not execute correctly
may you do more check?
data/geth/chaindata/
? or '.sst' exist?
'.ldb' indacate the leveldb, and '.sst' files indacate the pebble db.du -sh /opt/validators/bsc/data/geth
if no other people report the same issue, this issue will be closed 3 days later (08/23)
I'm OOO for 2 days, will check back a bit later.
By any chance, is there a flag to force the db backend to be the pebbledb? So we don't need to guess if it's applied properly or not
By any chance, is there a flag to force the db backend to be the pebbledb? So we don't need to guess if it's applied properly or not
I am afraid there is no such flag, the database will be determined since genesis block and can not be changed after that.
@zzzckck just to clarify then, what is this option?
@zzzckck just to clarify then, what is this option?
this option try to use PebbleDB, and it will report error if the underlying database format is LevelDB. It can not covert the database, but indicate user wanna use PebbleDB, but it is not the case, it will fail.
this option try to use PebbleDB, and it will report error if the underlying database format is LevelDB.
That's exactly what I need, thanks.
It seems to help or whatever. Differences are:
--db.engine=pebble
flagUPD:
root@rpc05:~# journalctl -alxfu bsc -n 100000 --no-host | grep -iE "scheme|backing database"
Aug 28 11:22:35 geth[2045963]: INFO [08-28|11:22:35.088] Using pebble as the backing database
Aug 28 11:22:54 geth[2045963]: INFO [08-28|11:22:54.651] State scheme set to already existing disk db scheme=path
Aug 28 11:22:54 geth[2045963]: INFO [08-28|11:22:54.651] Allocated memory caches state_scheme=path trie_clean_cache=33.32GiB trie_dirty_cache=256.00MiB snapshot_cache=16.78GiB
We were running
v1.4.10
on hash+leveldb.Following the https://forum.bnbchain.org/t/faq-pbss-pebbledb/2260
I fetched the snapshot from https://github.com/48Club/bsc-snapshots?tab=readme-ov-file#geth-full-node-with-pbss, replaced the previous data dir with this one.
I didnt change any args, as it says in the https://forum.bnbchain.org/t/faq-pbss-pebbledb/2260
After I started the node, I see
Moreover the database dir (chaindata) was automatically wiped by the process, and it's now trying to fetch data from 4y ago.
What am I doing wrong?