-
Notifications
You must be signed in to change notification settings - Fork 15
Closed
Description
Background
- The ENS Subgraph uses https://github.com/graphprotocol/ens-rainbow for healing unknown labels.
- Placeholder: Verified backwards compatibility with ENS Subgraph #51 requires us to implement an equivalent label healing strategy as the ENS Subgraph.
- Plans are under development / discussion with @djstrong for how we can propose a new ENS protocol standard for dynamically growing the set of healed labels.
- To help stay focused on shipping the "v1" release of ENSNode, this goal should be processed separately and is generally outside the scope of this issue.
Key Implementation Constraints
- Steps for someone to deploy their own instance of ENSNode should be kept as simple as possible.
- Ideally, when ENSNode starts up it would be able to detect if it has successfully "synced" the rainbow tables.
- This operation should be implemented carefully, such that ENSNode can recover from any possible crash / inconsistent state while a sync is in progress but not 100% completed.
- Assuming that the process of initializing all rainbow table state into a new ENSNode deployment could take some time. We should provide operational visibility into this process at both the command-line level, log level, and ideally also at an API level to support goals that @tk-o will be advancing for a "Realtime Dashboard" of ENSNode state.
- The rainbow tables need to be fully synced before any indexing can correctly begin.
- Very open to applying some simplifications where we can in our V1. For example: very open to assuming for now that the set of rainbow table records is immutable. Advice appreciated.
- Operations that exceed the limits of a non-Enterprise plan on Railway need to be avoided. For example, not sure if unzipping a multi gb file would cause out of memory errors. Hopefully not.
- When we begin our internal development its fine to make use of the cloud hosted files referenced at https://github.com/graphprotocol/ens-rainbow. Suggest we provide our own hosted copy of these files for the use of others who run ENSNode. Please ask @BanaSeba to support this goal. For example, he can put a copy of these files into a public S3 bucket for us, or whatever strategy might be proposed.
- While we advance this task, please look for opportunities to refine our README. For example:
- Identify the value proposition of how we automatically sync rainbow tables.
- Identify any additional "Getting Started" steps.
- Identify any additional environment variables (if any).
- Refine any comments about initial sync / indexing times.
- Identify any special considerations for someone running their own ENSNode instance. For example:
- Minimum required db size
- Minimum required ram
- Etc..
- Share a note of appreciation / credit with the teams whose previous efforts were building on top of. Ex: The Graph (including their work on the ENS Rainbow Tables).