nanocurrency / nano-node

Nano is digital currency. Its ticker is: XNO and its currency symbol is: Ӿ
https://nano.org
BSD 3-Clause "New" or "Revised" License
3.48k stars 785 forks source link

Allow for direct 21 lmdb -> 22 Rocks migration #3290

Closed My1 closed 1 year ago

My1 commented 3 years ago

Summary

basically allow users to skip the v22 LMDB migration if a migration to rocks is intended anyways

What problem would be solved by this feature?

nodes with not that crazily much free space cannot upgrade to v22 without re bootstrapping or downloading a db from somewhere which obviously not how a decentralized system should run.

Are there any previous requests for this feature?

https://discord.com/channels/370266023905198083/431804330853662721/842496966830456832

Do you have a suggested solution?

allow to just read the v21 LMDB and write into a fresh rocksdb without needing to severely bloat the LMDB up and all.

If this feature is approved, would you be willing to submit a pull request with the solution?

I would not (not that I could either)

Possible solution

honestly aside from what I mentioned I have no idea how this all would go and I also likely could not help too much sadly since I am not that deep into the node internals.

Supporting files

No response

qwahzi commented 1 year ago

Per discussion with My1, they're already running on RocksDB, and --migrate_database_lmdb_to_rocksdbstill exists (though it keeps the LMDB DB around until manual deletion)

https://docs.nano.org/commands/command-line-interface/#-migrate_database_lmdb_to_rocksdb

My1 commented 1 year ago

I wasnt even aware this existed, neat to know. one question that I am curious about is whether it rebuilds the LMDB for v22 format before the migration but then again are many ppl even running v21 anymore?