Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added docs/ensnode.io/src/assets/ENSApi3D.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/ensnode.io/src/assets/ENSDb3D.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 22 additions & 0 deletions docs/ensnode.io/src/components/atoms/ENSNodeServiceCard.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
import { Icon } from "astro-icon/components";

interface ENSNodeServiceCardProps {
title: string;
description: string;
href: string;
}

const { title, description, href } = Astro.props as ENSNodeServiceCardProps;
---

<a href={href} class="not-content group w-full h-fit min-h-[100px] flex flex-row justify-between items-center gap-5 border border-gray-200 hover:border-gray-300 hover:shadow-xs cursor-pointer rounded-2xl overflow-hidden p-4">
<div class="w-fit flex flex-row justify-start items-center gap-5">
<slot name="icon"/>
<div class="not-content w-full h-fit flex flex-col justify-start items-start gap-2">
<h4 class="not-content text-2xl leading-normal font-semibold text-black">{title}</h4>
Comment thread
Y3drk marked this conversation as resolved.
Comment thread
Y3drk marked this conversation as resolved.
<p class="not-content text-base leading-normal text-[var(--sl-color-text)]">{description}</p>
</div>
</div>
<Icon name="lucide:chevron-right" class="not-content h-10 w-10 shrink-0 text-gray-200 group-hover:text-gray-300" />
</a>
36 changes: 36 additions & 0 deletions docs/ensnode.io/src/content/docs/docs/integrate/why-ensnode.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,45 @@
title: Why ENSNode?
description: Why ENSNode is the best way to build ENSv2 apps.
---
import { LostENSNamesImage } from "@workspace/docs/ensnode.io/src/components/atoms/images/LostENSNamesImage.tsx";
import { ENSAdminImage } from "@workspace/docs/ensnode.io/src/components/atoms/images/ENSAdminImage.tsx";

:::caution[Coming Soon]
We're actively working on this page right now. Check back by May 18th for full content!
:::
Comment thread
lightwalker-eth marked this conversation as resolved.

This page will explain why ENSNode is the best way to build ENSv2 applications — including ENSNode's ENSv2 readiness, multichain support, how it compares to the legacy ENS Subgraph, and much more.

Comment thread
lightwalker-eth marked this conversation as resolved.
## Why it's important for ENS?

ENS has evolved beyond mainnet, yet indexing hasn't kept pace.
ENSNode solves this with a purpose-built indexer, ensuring ENSv2 and Namechain
launch with the complete data foundation the ecosystem requires.
Comment thread
Y3drk marked this conversation as resolved.
Outdated
<a href="https://discuss.ens.domains/t/spp2-namehash-labs-application/20502" target="_blank" rel="noopener noreferrer">Learn more</a>

<iframe
class="w-full h-auto aspect-[26/17] sm:max-w-[90%] shrink-0 rounded-[20px] object-cover"
src="https://www.youtube.com/embed/g88tCK5TECU?si=5RLwiBjGGEm7smSO"
title="NameHash Labs Season 2 Proposal"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
referrerpolicy="strict-origin-when-cross-origin"
allowfullscreen
/>

### Close critical ENS infrastructure gaps

Indexed ENS data is vital for the upcoming launch of ENSv2 and Namechain.
Comment thread
Y3drk marked this conversation as resolved.
Outdated
Existing ENS indexed data providers (the ENS Subgraph) are fundamentally unsuitable for ENSv2
and a replacement is critically required for many of ENS’s most important apps,
including the official ENS Manager App among many others.

<LostENSNamesImage styles="w-full h-auto" />

### Strengthen the decentralization and &quot;unstoppability&quot; of ENS

Our infrastructure under development removes a strict dependency on many centralized
offchain gateway servers whose downtime would otherwise shut down impacted multichain ENS
names that are key to the future of ENSv2 and Namechain, such as subnames of base.eth,
Comment thread
Y3drk marked this conversation as resolved.
Outdated
linea.eth, or tokenized DNS names such as .box names or 3DNS names.

<ENSAdminImage styles="w-full h-auto rounded-2xl rotate-y-180" />
Comment thread
Y3drk marked this conversation as resolved.
Comment thread
Y3drk marked this conversation as resolved.
15 changes: 12 additions & 3 deletions docs/ensnode.io/src/content/docs/docs/services/ensapi/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ sidebar:
---

import { LinkCard } from '@astrojs/starlight/components';
import { FasterLookupImage } from "@workspace/docs/ensnode.io/src/components/atoms/images/FasterLookupImage.tsx";

ENSApi is a web service built on top of [ENSDb](/docs/services/ensdb), and provides access to indexed ENS data through multiple HTTP APIs.

Expand All @@ -18,15 +19,15 @@ The **Omnigraph API** is the _new_ primary GraphQL API for ENSNode that provides

### ENS Subgraph API

The Subgraph API is the **deprecated** _legacy_ ENSv1-only GraphQL API. It is now deprecated in favor of the Omnigraph API, but is still available for backwards compatibility reasons with The Graph's ENS subgraph.
The Subgraph API is the **deprecated** _legacy_ ENSv1-only GraphQL API. It is now deprecated in favor of the Omnigraph API, but is still available for backwards compatibility reasons with The Graph's ENS subgraph.

## REST APIs

A growing set of REST APIs are also being added to ENSApi.
A growing set of REST APIs are also being added to ENSApi.

<LinkCard
title="ENSApi Reference"
description="Learn more about ENSApi's REST APIs"
description="Learn more about ENSApi's REST APIs"
href="/docs/services/ensapi/reference/api-reference"
/>

Expand All @@ -38,3 +39,11 @@ ENSApi can be configured via environment variables.
title="ENSApi Configuration Options"
href="/docs/services/ensapi/usage/configuration"
/>

## ENS Protocol Acceleration

We are engineering radically accelerated resolution of most ENS queries. ENSNode’s
architecture unlocks near-instant bulk resolution of live ENS records, including name
resolution configurations that span across multiple chains.

<FasterLookupImage styles="w-full h-auto" />
34 changes: 27 additions & 7 deletions docs/ensnode.io/src/content/docs/docs/services/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,35 @@ sidebar:
---

import { LinkCard, CardGrid } from "@astrojs/starlight/components";
Comment thread
Y3drk marked this conversation as resolved.
Outdated
import ENSNodeServiceCard from "@workspace/docs/ensnode.io/src/components/atoms/ENSNodeServiceCard.astro"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please see related comments on import statements, thanks

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resolved on Slack

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Created a follow-up issue for this item, as requested → #2134

import ENSRainbow3DImage from "@workspace/docs/ensnode.io/src/assets/ENSRainbow3D.png";
import ENSIndexer3DImage from "@workspace/docs/ensnode.io/src/assets/ENSIndexer3D.png";
import ENSAdmin3DImage from "@workspace/docs/ensnode.io/src/assets/ENSAdmin3D.png";
import ENSApi3DImage from "@workspace/docs/ensnode.io/src/assets/ENSApi3D.png";
import ENSDb3DImage from "@workspace/docs/ensnode.io/src/assets/ENSDb3D.png";

**Developing or contributing to ENSNode?** Use these sections for concepts, deployment, configuration, and contribution guides for the part of the stack you care about.
Comment thread
Y3drk marked this conversation as resolved.
Outdated

Each ENSNode instance is composed of **a set of services**. Each service has a clear role in indexing, storing the onchain state of ENS, APIs, name healing, or admin operations.
Comment thread
lightwalker-eth marked this conversation as resolved.
Outdated
Comment thread
Y3drk marked this conversation as resolved.
Outdated

<CardGrid>
<LinkCard title="ENSApi" href="/docs/services/ensapi" description="APIs for building on ENS." />
<LinkCard title="ENSIndexer" href="/docs/services/ensindexer" description="Multichain indexer for ENSv2." />
<LinkCard title="ENSDb" href="/docs/services/ensdb" description="The live, onchain state of ENS in your DB." />
<LinkCard title="ENSRainbow" href="/docs/services/ensrainbow" description="Heals unknown ENS names." />
<LinkCard title="ENSAdmin" href="/docs/services/ensadmin" description="ENSNode operator dashboard and ENS Protocol Inspector." />
</CardGrid>
<div class="w-full h-fit flex flex-col justify-start items-start gap-4 min-[800px]:gap-6 ">
Comment thread
Y3drk marked this conversation as resolved.
<ENSNodeServiceCard title="ENSApi" href="/docs/services/ensapi" description="APIs for building on ENS.">
Comment thread
Y3drk marked this conversation as resolved.
Outdated
<img slot="icon" src={ENSApi3DImage.src} class="scale-100 w-[125px] sm:w-[150px] lg:w-[175px] h-auto aspect-square max-sm:overflow-hidden" />
</ENSNodeServiceCard>

Comment thread
Y3drk marked this conversation as resolved.
<ENSNodeServiceCard title="ENSIndexer" href="/docs/services/ensindexer" description="Multichain indexer for ENSv2.">
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<ENSNodeServiceCard title="ENSIndexer" href="/docs/services/ensindexer" description="Multichain indexer for ENSv2.">
<ENSNodeServiceCard title="ENSIndexer" href="/docs/services/ensindexer" description="Multichain indexer based on Ponder that combines any number of ENSv1 &quot;Nametrees&quot; and the ENSv2 &quot;Namegraph&quot; into a single unified &quot;ENS Unigraph&quot; indexed data model inside your ENSDb.">

@Y3drk Please double check these quotation marks. I may have easily messed them up in this GitHub PR comment panel.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified that the quotation marks are okay.

image

<img slot="icon" src={ENSIndexer3DImage.src} class="scale-190 w-[125px] sm:w-[150px] lg:w-[175px] h-auto aspect-square max-sm:overflow-hidden" />
</ENSNodeServiceCard>

<ENSNodeServiceCard title="ENSDb" href="/docs/services/ensdb" description="The live, onchain state of ENS in your DB.">
<img slot="icon" src={ENSDb3DImage.src} class="scale-100 w-[125px] sm:w-[150px] lg:w-[175px] h-auto aspect-square max-sm:overflow-hidden" />
</ENSNodeServiceCard>

<ENSNodeServiceCard title="ENSRainbow" href="/docs/services/ensrainbow" description="Heals unknown ENS names.">
<img slot="icon" src={ENSRainbow3DImage.src} class="scale-175 w-[125px] sm:w-[150px] lg:w-[175px] h-auto aspect-square max-sm:overflow-hidden" />
</ENSNodeServiceCard>

<ENSNodeServiceCard title="ENSAdmin" href="/docs/services/ensadmin" description="ENSNode operator dashboard and ENS Protocol Inspector.">
<img slot="icon" src={ENSAdmin3DImage.src} class="scale-190 w-[125px] sm:w-[150px] lg:w-[175px] h-auto aspect-square max-sm:overflow-hidden" />
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
Comment thread
Y3drk marked this conversation as resolved.
Outdated
</ENSNodeServiceCard>
</div>
13 changes: 4 additions & 9 deletions docs/ensnode.io/src/pages/index.astro
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
---
import { ENSADMIN_URL } from "astro:env/client";
import ENSNodeSuite from "../components/organisms/ENSNodeSuite";
import Header from "../components/organisms/Header.astro";
import InfrastructureInnovations from "../components/organisms/InfrastructureInnovations";
import Proposal from "../components/organisms/Proposal.astro";
import Hero from "../components/overrides/Hero.astro";
import Layout from "../layouts/Layout.astro";
// Counter is temporarily commented out to prepare a better storytelling for it
import JoinTelegram from "src/components/molecules/JoinTelegram";
Comment thread
Y3drk marked this conversation as resolved.
Outdated
Comment thread
Y3drk marked this conversation as resolved.
Outdated
---

<Layout data-page="home">
<Header />
<Hero ensadminUrl={ENSADMIN_URL} />
<Proposal />
<!--<Counter />-->
<!--<SectionDivider />-->
<InfrastructureInnovations />
<ENSNodeSuite />
<section class="relative bottom-20 w-full h-fit box-border flex flex-col flex-nowrap justify-center items-center gap-10 sm:gap-20 px-5 sm:px-28 -my-10">
<JoinTelegram />
</section>
</Layout>
Loading