feat(f3): migrate f3 datastore to separate datastore#13174
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR migrates the f3 datastore from being namespaced within the metadata datastore to having its own dedicated datastore. Key changes include:
- Adding a new "f3" datastore constructor in fsrepo_ds.go and corresponding updates in the modules.
- Updating dependency injection and test configurations to use the new F3 datastore and removing legacy manifest provider usage.
- Introducing datastore migration logic and adjusting API definitions and documentation accordingly.
Reviewed Changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| node/repo/fsrepo_ds.go | Added a new "f3" mapping to enable a separate datastore for f3 data. |
| node/modules/storage.go | Introduced F3Datastore lifecycle management for the new f3 datastore. |
| node/modules/dtypes/storage.go | Defined the F3DS type to represent the new f3 datastore. |
| node/builder_chain.go | Updated dependency overrides to use the new F3DS injection. |
| itests/f3_test.go | Adjusted expected error strings and ensured helper functions reflect the new datastore logic. |
| chain/lf3/f3.go | Added migration logic for transferring metadata from the legacy datastore to the new one. |
| go.mod | Upgraded go-f3, x/sync, and other dependencies to support the updated functionality. |
| documentation/en/api-v1-unstable-methods.md | Removed outdated fields from the API schema documentation. |
| chain/store/store.go | Improved error details in tipset fetching. |
| build/params_shared_funcs.go | Removed deprecated F3 passive testing support. |
| build/openrpc/full.json | Updated API schema examples to align with the new F3 datastore migration. |
Comments suppressed due to low confidence (3)
itests/f3_test.go:97
- [nitpick] The comment 'not sure why "ticket is not valid" is returned' is ambiguous. Please clarify the expected error condition or remove the comment to reduce confusion in tests.
"F3GetOrRenewParticipationTicket": "ticket is not valid", // not sure why "ticket is not valid" is returned
chain/lf3/f3.go:160
- Since the field has been renamed from 'Datastore' to 'MetaDatastore', please ensure that all dependent modules and client code are updated accordingly to avoid integration issues.
metaDs := namespace.Wrap(params.MetaDatastore, datastore.NewKey("/f3"))
build/openrpc/full.json:7959
- The removal of API schema fields such as 'Pause', 'ExplicitPower', and 'IgnoreECPower' should be coordinated with external consumers to avoid breaking changes. Consider including a migration note in the changelog or API documentation.
"Pause": false,
2219bf9 to
31b7b76
Compare
6f4b4dc to
53fd1a6
Compare
10c8a9b to
fe7f794
Compare
53fd1a6 to
7652884
Compare
fe7f794 to
84630b4
Compare
Migrate the f3 datastore from being namespaced in the metadata metadata datastore to having its own dedicated datastore. Signed-off-by: Jakub Sztandera <oss@kubuxu.com>
84630b4 to
ff83fd3
Compare
masih
approved these changes
Jun 16, 2025
Member
masih
left a comment
There was a problem hiding this comment.
LGTM, left a couple of question around operational dynamics of migration.
Signed-off-by: Jakub Sztandera <oss@kubuxu.com>
masih
approved these changes
Jun 16, 2025
8 tasks
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.
Migrate the f3 datastore from being namespaced in the metadata metadata
datastore to having its own dedicated datastore.
Depends on #13144