-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Extract the namesys and the keystore submodules #7925
Conversation
This is a draft. There are a number of linting problems in namesys repo that I want to fix. Fun fact: I extracted go-ipfs-keystore 2 years ago. In the end it seems it was not needed and go-ipfs was never updated to use the extracted version. I have re-extracted it. namesys has been extracted keeping the git history ( |
e761d27
to
598cae8
Compare
This is ready from my side. |
598cae8
to
84980c5
Compare
The extraction LGTM and thanks a ton for the better documentation 🙏. Although, I noticed that you changed how the republisher tests were working, what did we get out of reworking those tests? Obviously there's more work to do here since the namesys interfaces aren't quite right and we can do that in follow-up PRs to go-ipfs + go-namesys. It's going to be annoying to keep doing duplicate PRs (which is why we kept things in the same repo), but I guess that's the tradeoff with the extraction here. To me one of the main benefits of the extraction is that it becomes really easy to see and work towards what a clean interface for go-namesys should be. Some things I noticed that it'd be nice to do now, but we could do later if they're complex and will make this take too long to merge, are:
|
It is much better to merge and follow up on smaller PRs.
Removed dependencies from go-namesys to go-ipfs helper functions. Essentially consisted in creating libp2p hosts manually iirc. An extraction PR is not the place to refactor anything other than the minimal necessary for the extraction itself as it gets tangled right away. The longer it stays open, the more confusing it is and the more work it creates. I am happy creating follow up issues for the above points in their repositories and personally committing to move forward with them, including bringing things like InitializeKeyspace back to go-ipfs. |
Namesys is a very useful submodule. Given a ValueStore and a Datastore it can resolve and publish /ipns/ paths. This functionality does not need to be sequestered inside go-ipfs as it can and should be used without IPFS, for example, for implementing lightweight IPNS publishing services or for resolving /ipns/ paths. "keystore" extraction was necessary, as there is a dependency to it in namesys. Keystore is also a useful module by itself within the stack. Fixes #6537
84980c5
to
3db9551
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. I did a go mod tidy
and go fmt ./...
and force pushed, assuming tests are still passing we'll merge and then handle changes in follow up PRs.
Thanks for doing this and thanks in advance with the help with the followup PRs🙏
I'll open issues and ping you. |
The following follow-ups have appeared:
|
Namesys is a very useful submodule. Given a ValueStore and a Datastore it can
resolve and publish /ipns/ paths.
This functionality does not need to be sequestered inside go-ipfs as it can
and should be used without IPFS, for example, for implementing lightweight
IPNS publishing services or for resolving /ipns/ paths.
"keystore" extraction was necessary, as there is a dependency to it in
namesys. Keystore is also a useful module by itself within the stack.
Fixes #6537