-
Notifications
You must be signed in to change notification settings - Fork 0
feat(scripts): add LSM support as UTXO_BACKEND option #94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Change supported UTXO_BACKEND values to include 'disklmdb' for the existing `V1LMDB` backend in both fast and slow cluster scripts. Add the new `V2LSM` backend option as 'disk'. Update testnet.json files accordingly to reflect these changes.
- Add "empty" as a valid option for UTXO_BACKEND and MIXED_UTXO_BACKENDS in both common-start-fast and common-start-slow scripts. - Implement logic to rotate through mixed UTXO backends for block producing nodes, defaulting to "empty" (unset) when specified. - Update testnet.json documentation to clarify that the default backend is "empty" (mem without configuration) if unset.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds support for the LSM (Log-Structured Merge-tree) backend as a UTXO storage option for Cardano cluster scripts. The changes introduce a new backend configuration system that allows for different UTXO storage backends across cluster nodes.
Key Changes:
- Adds 'disklmdb' as the option for the existing V1LMDB backend (previously 'disk')
- Adds 'disk' as the new option for the V2LSM backend
- Introduces MIXED_UTXO_BACKENDS support to allow rotating different backends across pool nodes
- Updates documentation in testnet.json files to reflect the new backend options
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| src/cardonnay_scripts/scripts/mainnet_fast/testnet.json | Updates UTXO_BACKEND documentation to include new 'disk', 'disklmdb', and 'empty' options |
| src/cardonnay_scripts/scripts/conway_slow/testnet.json | Updates UTXO_BACKEND documentation to include new 'disk', 'disklmdb', and 'empty' options |
| src/cardonnay_scripts/scripts/conway_fast/testnet.json | Updates UTXO_BACKEND documentation to include new 'disk', 'disklmdb', and 'empty' options |
| src/cardonnay_scripts/scripts/common/common-start-slow | Adds validation for new backend options, implements MIXED_UTXO_BACKENDS support, refactors pool_num extraction, and updates jq configuration logic for V2LSM and V1LMDB backends |
| src/cardonnay_scripts/scripts/common/common-start-fast | Adds validation for new backend options, implements MIXED_UTXO_BACKENDS support, refactors pool_num extraction, and updates jq configuration logic for V2LSM and V1LMDB backends |
Comments suppressed due to low confidence (2)
src/cardonnay_scripts/scripts/common/common-start-slow:266
- The default behavior when UTXO_BACKEND is unset has changed. Previously, the documentation indicated the default was 'mem', but the new behavior is to not set any LedgerDB.Backend configuration (the entire LedgerDB section may be deleted if no other LedgerDB fields are set). This could result in different default behavior depending on cardano-node's internal defaults. This significant change should be explicitly documented in the PR description and verified to be intentional.
elif has("LedgerDB") then
.LedgerDB |= del(.Backend)
else
.
end
src/cardonnay_scripts/scripts/common/common-start-fast:269
- The default behavior when UTXO_BACKEND is unset has changed. Previously, the documentation indicated the default was 'mem', but the new behavior is to not set any LedgerDB.Backend configuration (the entire LedgerDB section may be deleted if no other LedgerDB fields are set). This could result in different default behavior depending on cardano-node's internal defaults. This significant change should be explicitly documented in the PR description and verified to be intentional.
elif has("LedgerDB") then
.LedgerDB |= del(.Backend)
else
.
end
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Change supported UTXO_BACKEND values to include 'disklmdb' for the existing
V1LMDBbackend in both fast and slow cluster scripts. Add the newV2LSMbackend option as 'disk'. Update testnet.json files accordingly to reflect these changes.