-
Notifications
You must be signed in to change notification settings - Fork 231
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
IPNS: allow lean V2-only records #376
Comments
Yes please! This is long overdue. I've just finished implementing IPNS in Java and was wondering when we would do this. I've gone with only including V2 sig already, but as you say the matching v1 protobuf fields are still required. If this is likely to happen, then I will just relax the validation now. |
Yes @lidel we should absolutely do this. I feel bad that this is the current state of things, at the time it was basically the only option if we wanted to implement the improvements associated with v2 records which were even longer overdue. Given both the proliferation of more IPFS implementations and the ongoing refactor work in the Go IPFS libraries it seems like something that both should be done, and should be easier to do than previously. |
There's also the public key field (i.e. for RSA keys) which could still live in the protobuf as it doesn't need to be signed and isn't currently duplicated in the |
I would be happy to take this if it doesn't have any dependencies that we have to wait for. |
For anyone following, this work continues in IPIP-428 |
Where we are today (2023 Q1)
We are still living with the legacy of decisions made in 2021 and require creation of hybrid V1+V2 records, but we only care about V2 fields during the validation.
I've researched and documented the current state in #319, and obviously it is not the best.
Gist:
data
CBOR fielddata
field, for the record to be considered validWe've been producing and expecting these hybrid V1+V2 records since 2021.
Proposed move to V2-only IPNS
It is time to clean up IPNS ecosystem and stop requiring V1 fields when there is no
signatureV1
.For modern IPNS, the outer
IpnsEntry
protobuf should effectively only have two required fields:data
and itssignatureV2
, and such record, as long signature is valid, should be accepted as valid.We can get to that future in two steps:
signatureV1
is present. IF there is nosignatureV1
and onlysignatureV2
anddata
fields are present and valid, the record should be considered valid.signatureV1
is missing 🙃 and we could only care about CBOR versions from the start :(Migration plan for V2-only IPNS
cc #205 @aschmahmann for sanity check
The text was updated successfully, but these errors were encountered: