-
Notifications
You must be signed in to change notification settings - Fork 36
ENSIP-24: Arbitrary Data Storage #53
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
|
A consequence of this design is that you can implement a resolver that has all of the traditional profiles, but only uses This greatly simplifies crosschain resolvers, since there's only 1 storage mechanism, and profiles are just last-mile logic for function → key and data → result. eg. IMO, this reveals there's a further abstraction for resolvers, where we separate the data translation (frontend) from the data storage (backend), but that's another discussion 😄. |
Agreed. In hindsight, these abstractions would have been implemented from the get go. Stacking complexity is not going to incentivize developers to build on top of ENS. |
Arachnid
left a comment
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.
Fully supportive of this; a bytes equivalent to the text accessor is a good idea.
supportedDataKeys is also a good idea; perhaps consider adding supportedTextKeys to this standard as optional as well for completeness?
|
This should be updated to: Remove: => The keyHash and dataHash values are the keccak256 hashes of the key and the data being set. |
As an extension of ENSIP-5 for text-record discoverability? I think this should be added somewhere, but I don't think this ENSIP is naturally where implementors would look, and thus it might get overlooked.
It was intentionally written as it is to enforce the explicit It also allows for the implementor to calculate the hashes off chain if they like, which could have non-negligible gas savings if storing large |
stevieraykatz
left a comment
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.
This specification just makes sense and I fully support its inclusion. Instead of attempting to solve each unique new resolution challenge with a unique ensip and resolver profile, I'm a huge fan of this generic storage approach.
The only gap I see is a community-accepted standardization of storage keys. Perhaps this spec is not the place to record the set but some structure should be established for convention's sake. Perhaps a 4byte analog to start?
|
I've made some small changes based on discussions with @adraffy and @nxt3d.
@stevieraykatz The Interoperable Addressing standards outline some standard keys for that use case. As more 'standard' keys are defined I do see value in creating a database somewhere that outlines them as well as linking to further explainers on their usage and associated specs. |
This ENSIP proposes a new resolver profile for resolving arbitrary
bytesdata.It's development has been motivated by the the requirements of ERC-7828: Interoperable Names using ENS.
This specification is simple yet incredibly flexible. It allows for the resolution of anything using an ENS name.