Technical Versioning & Compatibility
ENSRainbow uses three distinct version numbers—each serving a different purpose.
1. ENSRainbow Software Version
Section titled “1. ENSRainbow Software Version”The semantic version of the Node.js application itself (e.g. v0.4.2
).
- Bumped when new features, fixes, or breaking changes are released.
- Shown in
/v1/version
under theversion
field.
2. Database Schema Version (DB_SCHEMA_VERSION
)
Section titled “2. Database Schema Version (DB_SCHEMA_VERSION)”Specifies the expected on-disk structure of the LevelDB database as well as the expected format of the downloadable pre-built LevelDB databases.
- Passed as an environment variable when running ENSRainbow.
The API server will refuse to start if the on-disk database schema is different than the running software’s expected schema.
3. Label-set Version (LABEL_SET_VERSION
)
Section titled “3. Label-set Version (LABEL_SET_VERSION)”Identifies incremental sets of rainbow records for a given label-set (LABEL_SET_ID
).
- For each label-set, starts at 0 and increments by one with each incremental set of rainbow records.
- Each increment contains only incremental additions from all previous versions.
- Enables deterministic, reproducible healing results across time.
Choosing Versions in Practice
Section titled “Choosing Versions in Practice”Scenario | Recommended DB_SCHEMA_VERSION | LABEL_SET_ID / LABEL_SET_VERSION |
---|---|---|
Local dev / tests | Latest | ens-test-env / 0 |
Production parity with ENS Subgraph | Latest | subgraph / 0 |
Maximum coverage | Latest | searchlight / latest |
For a complete list of available label sets and their versions, see the Available Label Sets documentation page.
Related Documentation
Section titled “Related Documentation”- Label Sets & Versioning - Conceptual overview of why versioning matters
- Data Model - How versions are stored in the database