Skip to content

v1 Label Healing Strategy #55

@lightwalker-eth

Description

@lightwalker-eth

Background

  1. The ENS Subgraph uses https://github.com/graphprotocol/ens-rainbow for healing unknown labels.
  2. Placeholder: Verified backwards compatibility with ENS Subgraph #51 requires us to implement an equivalent label healing strategy as the ENS Subgraph.
  3. 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.
    1. 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

  1. Steps for someone to deploy their own instance of ENSNode should be kept as simple as possible.
  2. Ideally, when ENSNode starts up it would be able to detect if it has successfully "synced" the rainbow tables.
    1. 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.
    2. 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.
  3. The rainbow tables need to be fully synced before any indexing can correctly begin.
  4. 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.
  5. 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.
  6. 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.
  7. While we advance this task, please look for opportunities to refine our README. For example:
    1. Identify the value proposition of how we automatically sync rainbow tables.
    2. Identify any additional "Getting Started" steps.
    3. Identify any additional environment variables (if any).
    4. Refine any comments about initial sync / indexing times.
    5. Identify any special considerations for someone running their own ENSNode instance. For example:
      1. Minimum required db size
      2. Minimum required ram
      3. Etc..
    6. 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).

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions