Conversation
|
How do we upgrade an older quarkchain node to this version? Will the data be impacted? |
Contributor
Author
No. Full nodes running older versions only need to upgrade the Docker image. Existing data will remain intact. |
syntrust
approved these changes
Mar 9, 2026
ping-ke
approved these changes
Mar 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem: python-rocksdb blocks upgrading to Python 3.13
python-rocksdb is a Cython wrapper around the RocksDB C++ library. It is effectively broken on upgrading to Python 3.13 for two reasons:
python-rocksdb calls
PyEval_InitThreads()from its .pyx source. This API was deprecated in Python 3.9, became a no-op, and was removed in Python 3.12.Fix: delete the call (trivial).
Python 3.13 support requires Cython 3.x, but
python-rocksdbwas written with Cython 0.29.x semantics, and those assumptions break under Cython 3.x. Migrating would require non-trivial .pyx refactors.Is migrating python-rocksdb to Cython 3.x viable?
A serious attempt already exists: faust-streaming/python-rocksdb migrated the codebase to Cython 3.x and removed the PyEval_InitThreads() call.
However, it has two major issues:
Even after migrating to Cython 3.x, the fork only reaches Python 3.12. Python 3.13 introduced additional C API changes beyond 3.12, and the fork never added/validated 3.13 support.
The fork is effectively unmaintained and explicitly points users to rocksdict as the recommended replacement.
Why rocksdict
PyO3 abstracts CPython internals, so Python version churn is largely handled by upgrading the PyO3 crate rather than patching our wrapper code. This is the main reason rocksdict already supports Python 3.7–3.14.
No system RocksDB dependency, no Cython, no local compilation step — significantly lowers install friction and CI variability.
The project is actively maintained and has comparable stars to python-rocksdb.
Validation/tests completed
I’ve validated the change with the following tests:
Next step
I’m planning to run a mainnet full node with this change and validate end-to-end sync behavior under real network conditions.