-
Notifications
You must be signed in to change notification settings - Fork 1.3k
feat(f3): migrate f3 datastore to separate datastore #13174
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
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 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
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.
LGTM, left a couple of question around operational dynamics of migration.
Signed-off-by: Jakub Sztandera <oss@kubuxu.com>
Migrate the f3 datastore from being namespaced in the metadata metadata
datastore to having its own dedicated datastore.
Depends on #13144