-
Notifications
You must be signed in to change notification settings - Fork 21
Delete at height safely #187
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
base: main
Are you sure you want to change the base?
Changes from all commits
d058c4e
e5715ec
aa71d4a
8d21c08
10e875d
2a067f1
4bab408
387512d
9365072
1c0f56e
f8e708c
e9315cd
08808c2
1dbbe26
4175259
0512cd8
91607cb
e5600e0
067cb97
abb3e01
a2d4d8f
84dda1a
c4b1270
346dafc
7e122c2
9ad7e6f
156df86
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -583,6 +583,29 @@ pruner_grpcListenAddress.docker.host = localhost:${PORT_PREFIX}${PRUNER_GRPC_POR | |
| # Default: 10m | ||
| pruner_jobTimeout = 10m | ||
|
|
||
| # UTXO-specific pruning settings | ||
| # Enable defensive checks before deleting UTXO transactions | ||
| # When enabled, verifies that all spending children are mined > BlockHeightRetention blocks ago | ||
| # Default: false | ||
| pruner_utxoDefensiveEnabled = false | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Root cause identified: The SQL pruner service does not have a defensiveEnabled field in its struct (stores/utxo/sql/pruner/pruner_service.go:26-34) and does not read the UTXODefensiveEnabled setting during initialization (pruner_service.go:88-94). The defensive verification is hardcoded into the SQL DELETE query (lines 230-258) and always runs regardless of the flag value. Fix needed:
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ✅ Verified and resolved - Both implementations now correctly read and respect the defensiveEnabled flag from settings. |
||
|
|
||
| # UTXO batcher settings - optimized for multi-million record pruning operations | ||
| # These settings control batching of operations during delete-at-height (DAH) UTXO pruning | ||
| # Larger batch sizes = fewer round-trips to storage = faster pruning | ||
| pruner_utxoParentUpdateBatcherSize = 2000 | ||
| pruner_utxoParentUpdateBatcherDurationMillis = 100 | ||
| pruner_utxoDeleteBatcherSize = 5000 | ||
| pruner_utxoDeleteBatcherDurationMillis = 100 | ||
|
|
||
| # Maximum concurrent operations during UTXO pruning | ||
| # Increase this if you have a large connection pool and want faster pruning | ||
| # Default: 1 (auto-detect from connection pool) | ||
| pruner_utxoMaxConcurrentOperations = 1 | ||
|
|
||
| # Batch size for reading child transactions during defensive UTXO pruning | ||
| # Default: 1024 | ||
| pruner_utxoDefensiveBatchReadSize = 1024 | ||
|
|
||
| # @group: dashboard | ||
| # Vite dev server ports (comma-separated) | ||
| # dashboard_devServerPorts = 5173,4173 | ||
|
|
@@ -1493,19 +1516,6 @@ utxostore_storeBatcherDurationMillis = 10 | |
|
|
||
| utxostore_storeBatcherSize = 2048 | ||
|
|
||
| # Pruner batcher settings - optimized for multi-million record pruning operations | ||
| # These settings control batching of operations during delete-at-height (DAH) pruning | ||
| # Larger batch sizes = fewer round-trips to Aerospike = faster pruning | ||
| utxostore_prunerParentUpdateBatcherSize = 2000 | ||
| utxostore_prunerParentUpdateBatcherDurationMillis = 100 | ||
| utxostore_prunerDeleteBatcherSize = 5000 | ||
| utxostore_prunerDeleteBatcherDurationMillis = 100 | ||
|
|
||
| # Maximum concurrent operations during pruning (0 = use Aerospike connection queue size) | ||
| # Increase this if you have a large connection pool and want faster pruning | ||
| # Default: 0 (auto-detect from connection pool) | ||
| utxostore_prunerMaxConcurrentOperations = 0 | ||
|
|
||
| # this value determines if a caching mechanism will be used for external transactions | ||
| # if you have the memory available, it will speed up your IBD | ||
| # and it is required for large blocks which load in the same tx multiple times, e.g. 814337 | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.