fault_proving(compression): glue code for integ into fuel-core#2859
fault_proving(compression): glue code for integ into fuel-core#2859
Conversation
8979d04 to
eeda839
Compare
| Enabled(fuel_core_compression::config::Config), | ||
| } | ||
|
|
||
| impl configuration::CompressionConfigProvider for &Config { |
There was a problem hiding this comment.
maybe we dont need this trait
eeda839 to
1a2f441
Compare
403d5bb to
76884dd
Compare
ee4d5e8 to
82b5032
Compare
2edc33b to
cf54700
Compare
d2e249f to
91aca13
Compare
a690077 to
41910bf
Compare
1fcd2a1 to
be1ad5c
Compare
## Linked Issues/PRs <!-- List of related issues/PRs --> - none ## Description <!-- List of detailed changes --> The in memory database fails when trying to access the metadata column ~ the `COUNT`'s were mismatched between the strum::enumCount impl and the actual number of columns. This PR fixes that with a custom impl. tested with #2859. ## Checklist - [x] Breaking changes are clearly marked as such in the PR description and changelog - [x] New behavior is reflected in tests - [x] [The specification](https://github.com/FuelLabs/fuel-specs/) matches the implemented behavior (link update PR if changes are needed) ### Before requesting review - [x] I have reviewed the code myself - [x] I have created follow-up issues caused by this PR and linked them here ### After merging, notify other teams [Add or remove entries as needed] - [ ] [Rust SDK](https://github.com/FuelLabs/fuels-rs/) - [ ] [Sway compiler](https://github.com/FuelLabs/sway/) - [ ] [Platform documentation](https://github.com/FuelLabs/devrel-requests/issues/new?assignees=&labels=new+request&projects=&template=NEW-REQUEST.yml&title=%5BRequest%5D%3A+) (for out-of-organization contributors, the person merging the PR will do this) - [ ] Someone else?
netrome
left a comment
There was a problem hiding this comment.
There's a dangling todo that should be resolved. Otherwise I think it would be more future-proof to use a dedicated metadata table, but since it's unused that's not a hard blocker from my side.
| fn metadata_column() -> Self::Column { | ||
| Self::Column::MerkleMetadataColumn | ||
| } |
There was a problem hiding this comment.
I think we should have a dedicated metadata column. I had problems trying to use the MerkleMetadataColumn as the metadata column in the state root service. This is what I had to do to fix it: https://github.com/FuelLabs/fuel-proof-system/pull/42/commits/41c6fb0ef46c016c9261f0f736798b107a4c23a0
There was a problem hiding this comment.
Though, since you don't use the metadata table but instead the blocks for the Modifiable implementation you won't hit the same bug I did. So I suppose the metadata column will be unused, but it would be safer from other potential bugs to have a dedicated metadata column even if it's empty initially.
There was a problem hiding this comment.
i don't see the point of having it, the CompressedBlocks table suffices for the Modifiable implementation and will probably never change. the tests would catch something like this
There was a problem hiding this comment.
Sure, though perhaps it's then more correct to set CompressedBlocks as the metadata table here? 🤔
Anyway I agree I'm not worried about this being a production bug, since tests would catch it. I'll approve and let you decide if you want to change the metadata table or not.
| CoinBalances = 14, | ||
| /// Message balances per account. | ||
| MessageBalances = 24, | ||
| MessageBalances = 15, | ||
| /// See [`AssetsInfo`](assets::AssetsInfo) | ||
| AssetsInfo = 25, | ||
| AssetsInfo = 16, | ||
| /// Index of the coins that are available to spend. | ||
| CoinsToSpend = 26, | ||
| /// See [`DaCompressionTemporalRegistryAddressV2`](da_compression::v2::address::DaCompressionTemporalRegistryAddressV2) | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalRegistryAddressV2 = 27, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalAddressMerkleData = 28, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalAddressMerkleMetadata = 29, | ||
| // See [`DaCompressionTemporalRegistryAssetIdV2`](da_compression::v2::asset_id::DaCompressionTemporalRegistryAssetIdV2) | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalRegistryAssetIdV2 = 30, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalAssetIdMerkleData = 31, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalAssetIdMerkleMetadata = 32, | ||
| /// See [`DaCompressionTemporalRegistryContractIdV2`](da_compression::v2::contract_id::DaCompressionTemporalRegistryContractIdV2) | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalRegistryContractIdV2 = 33, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalContractIdMerkleData = 34, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalContractIdMerkleMetadata = 35, | ||
| /// See [`DaCompressionTemporalRegistryScriptCodeV2`](da_compression::v2::script_code::DaCompressionTemporalRegistryScriptCodeV2) | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalRegistryScriptCodeV2 = 36, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalScriptCodeMerkleData = 37, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalScriptCodeMerkleMetadata = 38, | ||
| /// See [`DaCompressionTemporalRegistryPredicateCodeV2`](da_compression::v2::predicate_code::DaCompressionTemporalRegistryPredicateCodeV2) | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalRegistryPredicateCodeV2 = 39, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalPredicateCodeMerkleData = 40, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalPredicateCodeMerkleMetadata = 41, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalRegistryIndexV2 = 42, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalRegistryIndexMerkleData = 43, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalRegistryIndexMerkleMetadata = 44, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalRegistryTimestampsV2 = 45, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalRegistryTimestampsMerkleData = 46, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalRegistryTimestampsMerkleMetadata = 47, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalRegistryEvictorCacheV2 = 48, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalRegistryEvictorCacheMerkleData = 49, | ||
| #[cfg(feature = "fault-proving")] | ||
| DaCompressionTemporalRegistryEvictorCacheMerkleMetadata = 50, | ||
| CoinsToSpend = 17, |
There was a problem hiding this comment.
You can't change IDs of existing columns, it will break production nodes because now they will point to wrong tables.
There was a problem hiding this comment.
other tests start to fail because the number of columns doesn't match the last one's u32 repr. is the practice to leave the old columns as is?
There was a problem hiding this comment.
No, we don't need to leave old columns. But in memory, the database requires all columns to be sequential, so it is why the test that verifies that fails.
Either we can rework how the memory database manages its state(for example, it could use a hash map. It is how it worked before, but I changed it to use an array because it was more performant). Or we can have two sets of columns, one for the in-memory database and another for Rocksdb.
## Linked Issues/PRs <!-- List of related issues/PRs --> - none ## Description <!-- List of detailed changes --> The in memory database fails when trying to access the metadata column ~ the `COUNT`'s were mismatched between the strum::enumCount impl and the actual number of columns. This PR fixes that with a custom impl. tested with FuelLabs/fuel-core#2859. ## Checklist - [x] Breaking changes are clearly marked as such in the PR description and changelog - [x] New behavior is reflected in tests - [x] [The specification](https://github.com/FuelLabs/fuel-specs/) matches the implemented behavior (link update PR if changes are needed) ### Before requesting review - [x] I have reviewed the code myself - [x] I have created follow-up issues caused by this PR and linked them here ### After merging, notify other teams [Add or remove entries as needed] - [ ] [Rust SDK](https://github.com/FuelLabs/fuels-rs/) - [ ] [Sway compiler](https://github.com/FuelLabs/sway/) - [ ] [Platform documentation](https://github.com/FuelLabs/devrel-requests/issues/new?assignees=&labels=new+request&projects=&template=NEW-REQUEST.yml&title=%5BRequest%5D%3A+) (for out-of-organization contributors, the person merging the PR will do this) - [ ] Someone else?
## Version 0.43.0 ### Breaking - [2882](#2882): Changed the type of the `resolved_outputs` for pre-confirmations. Now it also includes `Utxoid`. `resolved_outputs` field contains only `Change` and `Variable` outputs, so the `UtxoId` for them could be hard to derive, if transaction has known inputs. This information should help to create dependent transactions more easily. - [2900](#2900): Get rid of `Deref` impl on `ImportResult` by introducing wrapper type. - [2909](#2909): Compressed block headers now include a merkle root of the temporal registry after compression was performed. - [2931](#2931): In `fuel-core-compression`, the `compress` function now takes a reference to `Config` instead of the value. ### Added - [2848](#2848): Link all components of preconfirmations and add E2E tests. - [2882](#2882): Listen to tx status update from `TxStatusManager` in `TxPool`. Added logic to clean up transactions from the pool if received squeezed out pre confirmations. Added logic to promote transactions on sentry nodes when receive pre-confirmation. - [2885](#2885): Notify P2P from `TxStatusManager` in case of bad preconfirmation message. - [2901](#2901): New query `dryRunRecordStorageReads` which works like `dryRun` but also returns storage reads, allowing use of execution tracer or local debugger - [2912](#2912): Add the `allow_partial` parameter to the `coinsToSpend` query. The default value of this parameters is `false` to preserve the old behavior. If set to `true`, the query returns available coins instead of failing when the requested amount is unavailable. - [2914](#2914): Tests ensuring the proof generation and validation of tables with sparse and merklized blueprints work. ### Changed - [2859](#2859): Swap out off-chain worker compression for dedicated compression service in `fuel-core-bin`. - [2914](#2914): Break out test logic to trait methods for `root_storage_tests` and `basic_merkleized_storage_tests` test macros. - [2925](#2925): Make preconfirmation optional on API endpoints. ### Fixed - [2918](#2918): Only cancel background work if primary RocksDB instance is dropped - [2935](#2935): The change rejects transactions immediately, if they use spent coins. `TxPool` has a SpentInputs LRU cache, storing all spent coins. ### Removed - [2859](#2859): Removed DA compression from off-chain worker in favor of dedicated compression service in `fuel-core-bin`. ## What's Changed * Rework `TxStatusManager` tests by @rafal-ch in #2871 * fix(storage): custom impl of EnumCount for MerkleizedColumn by @rymnc in #2875 * Update network versions on README by @github-actions in #2889 * fix(version-compatibility): pin async-graphql to 7.0.15 by @rymnc in #2891 * Fix proptest for tx status manager by @rafal-ch in #2893 * fault_proving(compression): glue code for integ into fuel-core by @rymnc in #2859 * Link and activate preconfirmations and add integrations tests by @AurelienFT in #2848 * refactor: Get rid of `Deref` impl on `ImportResult` by introducing wrapper type. by @netrome in #2900 * fix(compression_service): post merge reviews by @rymnc in #2895 * Listen status updates from in TxStatusManager in TxPool by @AurelienFT in #2882 * chore(compression): include registry root in compressed block header by @rymnc in #2909 * Improve TxStatusManager tests coverage by @AurelienFT in #2911 * ci(benchmarks): run nightly benchmark and create PR by @rymnc in #2915 * fix: Only cancel background work if primary RocksDB instance is dropped by @netrome in #2918 * fix(ci): nightly benchmark by @rymnc in #2922 * fix(ci): explicitly push before creating PR by @rymnc in #2926 * Add allow_partial parameter to the "coins to spend" query by @AurelienFT in #2912 * fix(compression): improve robustness on startup and shutdown by @rymnc in #2923 * chore(compression): metrics for compression service by @rymnc in #2920 * chore(compression): pass compression config by reference by @rymnc in #2931 * Dry run execution tracing by @Dentosal in #2901 * Make preconfirmation optional on API endpoints by @AurelienFT in #2925 * Notify P2P in case of bad preconfirmation message by @AurelienFT in #2885 * chore(1.85): 1.85.0 readiness by @rymnc in #2937 * Reject transactions for already spent coins by @xgreenx in #2935 * feat: add tests for sparse and merkleized blueprint proof generation by @netrome in #2914 **Full Changelog**: v0.42.0...v0.43.0 --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
## Linked Issues/PRs <!-- List of related issues/PRs --> - none ## Description <!-- List of detailed changes --> The in memory database fails when trying to access the metadata column ~ the `COUNT`'s were mismatched between the strum::enumCount impl and the actual number of columns. This PR fixes that with a custom impl. tested with FuelLabs/fuel-core#2859. ## Checklist - [x] Breaking changes are clearly marked as such in the PR description and changelog - [x] New behavior is reflected in tests - [x] [The specification](https://github.com/FuelLabs/fuel-specs/) matches the implemented behavior (link update PR if changes are needed) ### Before requesting review - [x] I have reviewed the code myself - [x] I have created follow-up issues caused by this PR and linked them here ### After merging, notify other teams [Add or remove entries as needed] - [ ] [Rust SDK](https://github.com/FuelLabs/fuels-rs/) - [ ] [Sway compiler](https://github.com/FuelLabs/sway/) - [ ] [Platform documentation](https://github.com/FuelLabs/devrel-requests/issues/new?assignees=&labels=new+request&projects=&template=NEW-REQUEST.yml&title=%5BRequest%5D%3A+) (for out-of-organization contributors, the person merging the PR will do this) - [ ] Someone else?
## Version 0.43.0 ### Breaking - [2882](FuelLabs/fuel-core#2882): Changed the type of the `resolved_outputs` for pre-confirmations. Now it also includes `Utxoid`. `resolved_outputs` field contains only `Change` and `Variable` outputs, so the `UtxoId` for them could be hard to derive, if transaction has known inputs. This information should help to create dependent transactions more easily. - [2900](FuelLabs/fuel-core#2900): Get rid of `Deref` impl on `ImportResult` by introducing wrapper type. - [2909](FuelLabs/fuel-core#2909): Compressed block headers now include a merkle root of the temporal registry after compression was performed. - [2931](FuelLabs/fuel-core#2931): In `fuel-core-compression`, the `compress` function now takes a reference to `Config` instead of the value. ### Added - [2848](FuelLabs/fuel-core#2848): Link all components of preconfirmations and add E2E tests. - [2882](FuelLabs/fuel-core#2882): Listen to tx status update from `TxStatusManager` in `TxPool`. Added logic to clean up transactions from the pool if received squeezed out pre confirmations. Added logic to promote transactions on sentry nodes when receive pre-confirmation. - [2885](FuelLabs/fuel-core#2885): Notify P2P from `TxStatusManager` in case of bad preconfirmation message. - [2901](FuelLabs/fuel-core#2901): New query `dryRunRecordStorageReads` which works like `dryRun` but also returns storage reads, allowing use of execution tracer or local debugger - [2912](FuelLabs/fuel-core#2912): Add the `allow_partial` parameter to the `coinsToSpend` query. The default value of this parameters is `false` to preserve the old behavior. If set to `true`, the query returns available coins instead of failing when the requested amount is unavailable. - [2914](FuelLabs/fuel-core#2914): Tests ensuring the proof generation and validation of tables with sparse and merklized blueprints work. ### Changed - [2859](FuelLabs/fuel-core#2859): Swap out off-chain worker compression for dedicated compression service in `fuel-core-bin`. - [2914](FuelLabs/fuel-core#2914): Break out test logic to trait methods for `root_storage_tests` and `basic_merkleized_storage_tests` test macros. - [2925](FuelLabs/fuel-core#2925): Make preconfirmation optional on API endpoints. ### Fixed - [2918](FuelLabs/fuel-core#2918): Only cancel background work if primary RocksDB instance is dropped - [2935](FuelLabs/fuel-core#2935): The change rejects transactions immediately, if they use spent coins. `TxPool` has a SpentInputs LRU cache, storing all spent coins. ### Removed - [2859](FuelLabs/fuel-core#2859): Removed DA compression from off-chain worker in favor of dedicated compression service in `fuel-core-bin`. ## What's Changed * Rework `TxStatusManager` tests by @rafal-ch in FuelLabs/fuel-core#2871 * fix(storage): custom impl of EnumCount for MerkleizedColumn by @rymnc in FuelLabs/fuel-core#2875 * Update network versions on README by @github-actions in FuelLabs/fuel-core#2889 * fix(version-compatibility): pin async-graphql to 7.0.15 by @rymnc in FuelLabs/fuel-core#2891 * Fix proptest for tx status manager by @rafal-ch in FuelLabs/fuel-core#2893 * fault_proving(compression): glue code for integ into fuel-core by @rymnc in FuelLabs/fuel-core#2859 * Link and activate preconfirmations and add integrations tests by @AurelienFT in FuelLabs/fuel-core#2848 * refactor: Get rid of `Deref` impl on `ImportResult` by introducing wrapper type. by @netrome in FuelLabs/fuel-core#2900 * fix(compression_service): post merge reviews by @rymnc in FuelLabs/fuel-core#2895 * Listen status updates from in TxStatusManager in TxPool by @AurelienFT in FuelLabs/fuel-core#2882 * chore(compression): include registry root in compressed block header by @rymnc in FuelLabs/fuel-core#2909 * Improve TxStatusManager tests coverage by @AurelienFT in FuelLabs/fuel-core#2911 * ci(benchmarks): run nightly benchmark and create PR by @rymnc in FuelLabs/fuel-core#2915 * fix: Only cancel background work if primary RocksDB instance is dropped by @netrome in FuelLabs/fuel-core#2918 * fix(ci): nightly benchmark by @rymnc in FuelLabs/fuel-core#2922 * fix(ci): explicitly push before creating PR by @rymnc in FuelLabs/fuel-core#2926 * Add allow_partial parameter to the "coins to spend" query by @AurelienFT in FuelLabs/fuel-core#2912 * fix(compression): improve robustness on startup and shutdown by @rymnc in FuelLabs/fuel-core#2923 * chore(compression): metrics for compression service by @rymnc in FuelLabs/fuel-core#2920 * chore(compression): pass compression config by reference by @rymnc in FuelLabs/fuel-core#2931 * Dry run execution tracing by @Dentosal in FuelLabs/fuel-core#2901 * Make preconfirmation optional on API endpoints by @AurelienFT in FuelLabs/fuel-core#2925 * Notify P2P in case of bad preconfirmation message by @AurelienFT in FuelLabs/fuel-core#2885 * chore(1.85): 1.85.0 readiness by @rymnc in FuelLabs/fuel-core#2937 * Reject transactions for already spent coins by @xgreenx in FuelLabs/fuel-core#2935 * feat: add tests for sparse and merkleized blueprint proof generation by @netrome in FuelLabs/fuel-core#2914 **Full Changelog**: FuelLabs/fuel-core@v0.42.0...v0.43.0 --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
## Linked Issues/PRs <!-- List of related issues/PRs --> - none ## Description <!-- List of detailed changes --> The in memory database fails when trying to access the metadata column ~ the `COUNT`'s were mismatched between the strum::enumCount impl and the actual number of columns. This PR fixes that with a custom impl. tested with FuelLabs/fuel-core#2859. ## Checklist - [x] Breaking changes are clearly marked as such in the PR description and changelog - [x] New behavior is reflected in tests - [x] [The specification](https://github.com/FuelLabs/fuel-specs/) matches the implemented behavior (link update PR if changes are needed) ### Before requesting review - [x] I have reviewed the code myself - [x] I have created follow-up issues caused by this PR and linked them here ### After merging, notify other teams [Add or remove entries as needed] - [ ] [Rust SDK](https://github.com/FuelLabs/fuels-rs/) - [ ] [Sway compiler](https://github.com/FuelLabs/sway/) - [ ] [Platform documentation](https://github.com/FuelLabs/devrel-requests/issues/new?assignees=&labels=new+request&projects=&template=NEW-REQUEST.yml&title=%5BRequest%5D%3A+) (for out-of-organization contributors, the person merging the PR will do this) - [ ] Someone else?
## Version 0.43.0 ### Breaking - [2882](FuelLabs/fuel-core#2882): Changed the type of the `resolved_outputs` for pre-confirmations. Now it also includes `Utxoid`. `resolved_outputs` field contains only `Change` and `Variable` outputs, so the `UtxoId` for them could be hard to derive, if transaction has known inputs. This information should help to create dependent transactions more easily. - [2900](FuelLabs/fuel-core#2900): Get rid of `Deref` impl on `ImportResult` by introducing wrapper type. - [2909](FuelLabs/fuel-core#2909): Compressed block headers now include a merkle root of the temporal registry after compression was performed. - [2931](FuelLabs/fuel-core#2931): In `fuel-core-compression`, the `compress` function now takes a reference to `Config` instead of the value. ### Added - [2848](FuelLabs/fuel-core#2848): Link all components of preconfirmations and add E2E tests. - [2882](FuelLabs/fuel-core#2882): Listen to tx status update from `TxStatusManager` in `TxPool`. Added logic to clean up transactions from the pool if received squeezed out pre confirmations. Added logic to promote transactions on sentry nodes when receive pre-confirmation. - [2885](FuelLabs/fuel-core#2885): Notify P2P from `TxStatusManager` in case of bad preconfirmation message. - [2901](FuelLabs/fuel-core#2901): New query `dryRunRecordStorageReads` which works like `dryRun` but also returns storage reads, allowing use of execution tracer or local debugger - [2912](FuelLabs/fuel-core#2912): Add the `allow_partial` parameter to the `coinsToSpend` query. The default value of this parameters is `false` to preserve the old behavior. If set to `true`, the query returns available coins instead of failing when the requested amount is unavailable. - [2914](FuelLabs/fuel-core#2914): Tests ensuring the proof generation and validation of tables with sparse and merklized blueprints work. ### Changed - [2859](FuelLabs/fuel-core#2859): Swap out off-chain worker compression for dedicated compression service in `fuel-core-bin`. - [2914](FuelLabs/fuel-core#2914): Break out test logic to trait methods for `root_storage_tests` and `basic_merkleized_storage_tests` test macros. - [2925](FuelLabs/fuel-core#2925): Make preconfirmation optional on API endpoints. ### Fixed - [2918](FuelLabs/fuel-core#2918): Only cancel background work if primary RocksDB instance is dropped - [2935](FuelLabs/fuel-core#2935): The change rejects transactions immediately, if they use spent coins. `TxPool` has a SpentInputs LRU cache, storing all spent coins. ### Removed - [2859](FuelLabs/fuel-core#2859): Removed DA compression from off-chain worker in favor of dedicated compression service in `fuel-core-bin`. ## What's Changed * Rework `TxStatusManager` tests by @rafal-ch in FuelLabs/fuel-core#2871 * fix(storage): custom impl of EnumCount for MerkleizedColumn by @rymnc in FuelLabs/fuel-core#2875 * Update network versions on README by @github-actions in FuelLabs/fuel-core#2889 * fix(version-compatibility): pin async-graphql to 7.0.15 by @rymnc in FuelLabs/fuel-core#2891 * Fix proptest for tx status manager by @rafal-ch in FuelLabs/fuel-core#2893 * fault_proving(compression): glue code for integ into fuel-core by @rymnc in FuelLabs/fuel-core#2859 * Link and activate preconfirmations and add integrations tests by @AurelienFT in FuelLabs/fuel-core#2848 * refactor: Get rid of `Deref` impl on `ImportResult` by introducing wrapper type. by @netrome in FuelLabs/fuel-core#2900 * fix(compression_service): post merge reviews by @rymnc in FuelLabs/fuel-core#2895 * Listen status updates from in TxStatusManager in TxPool by @AurelienFT in FuelLabs/fuel-core#2882 * chore(compression): include registry root in compressed block header by @rymnc in FuelLabs/fuel-core#2909 * Improve TxStatusManager tests coverage by @AurelienFT in FuelLabs/fuel-core#2911 * ci(benchmarks): run nightly benchmark and create PR by @rymnc in FuelLabs/fuel-core#2915 * fix: Only cancel background work if primary RocksDB instance is dropped by @netrome in FuelLabs/fuel-core#2918 * fix(ci): nightly benchmark by @rymnc in FuelLabs/fuel-core#2922 * fix(ci): explicitly push before creating PR by @rymnc in FuelLabs/fuel-core#2926 * Add allow_partial parameter to the "coins to spend" query by @AurelienFT in FuelLabs/fuel-core#2912 * fix(compression): improve robustness on startup and shutdown by @rymnc in FuelLabs/fuel-core#2923 * chore(compression): metrics for compression service by @rymnc in FuelLabs/fuel-core#2920 * chore(compression): pass compression config by reference by @rymnc in FuelLabs/fuel-core#2931 * Dry run execution tracing by @Dentosal in FuelLabs/fuel-core#2901 * Make preconfirmation optional on API endpoints by @AurelienFT in FuelLabs/fuel-core#2925 * Notify P2P in case of bad preconfirmation message by @AurelienFT in FuelLabs/fuel-core#2885 * chore(1.85): 1.85.0 readiness by @rymnc in FuelLabs/fuel-core#2937 * Reject transactions for already spent coins by @xgreenx in FuelLabs/fuel-core#2935 * feat: add tests for sparse and merkleized blueprint proof generation by @netrome in FuelLabs/fuel-core#2914 **Full Changelog**: FuelLabs/fuel-core@v0.42.0...v0.43.0 --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Note
This PR introduces no breaking changes to the graphql api
Linked Issues/PRs
closes #2776
closes #2778
Description
ai generated desc:
integrating a new compression service and cleaning up the codebase by removing deprecated compression via OCW. The most important changes include adding the
fuel-core-compression-servicedependency, updating theCombinedDatabasestruct and its methods to include the new compression database, and removing deprecated DA compression-related code.Integration of Compression Service:
Cargo.toml: Addedfuel-core-compression-servicedependency and removedfuel-core-compressiondependency. [1] [2] [3]crates/fuel-core/src/combined_database.rs: UpdatedCombinedDatabasestruct to includecompressionfield and modified related methods to handle compression database operations. [1] [2] [3] [4] [5] [6] [7] [8] [9]Code Cleanup:
crates/fuel-core/src/graphql_api.rs: Removedda_compressionmodule.crates/fuel-core/src/graphql_api/api_service.rs: Removed references to DA compression and addedDaCompressionProvider. [1] [2] [3] [4]crates/fuel-core/src/graphql_api/database.rs: Removedda_compressed_blockmethod.crates/fuel-core/src/graphql_api/ports.rs: Removed DA compression-related traits and methods. [1] [2] [3] [4]Additional Changes:
crates/fuel-core/src/database.rs: AddedCompressionDatabaseto the imports and implementedModifiableforDatabase<CompressionDatabase>. [1] [2]crates/fuel-core/src/database/database_description.rs: Addedcompressionmodule.crates/fuel-core/src/database/database_description/compression.rs: Created a new file defining theCompressionDatabasestruct and its implementation.benches/benches/block_target_gas.rs: Added an additionalDefault::default()parameter in theservice_with_many_contractsfunction.Checklist
Before requesting review
After merging, notify other teams
[Add or remove entries as needed]