Skip to content

Latest commit

 

History

History
 
 

README.md

Blockscout ENS service

This project provides indexed data of domain name service for blockscout instances.

Here is brief overview of the project structure:

bens-structure

Service is multi-chain, meaning that only one instance of graph-node, postgres and bens-server is required.

Current supported domains

Subgraph Name Network TLD Note
ens-subgraph Ethereum .eth
rns-subgraph Rootstock .rsk
genome-subgraph Gnosis .gno SpaceID contracts
bns-subgraph Base .base
mode-subgraph Mode .mode SpaceID contracts
lightlink-subgraph Lightlink .ll SpaceID contracts
zns-subgraph Polygon .poly
d3-connect-subgraph Shibarium .shib

Envs

Variable Req​uir​ed Description Default value
BENS__DATABASE__CONNECT__URL true e.g. postgresql://postgres:postgres@localhost:5432/postgres
BENS__DATABASE__CREATE_DATABASE false
BENS__DATABASE__RUN_MIGRATIONS false
BENS__SERVER__HTTP__ADDR 0.0.0.0:8050
BENS__SERVER__HTTP__ENABLED true
BENS__SERVER__HTTP__MAX_BODY_SIZE 2097152
BENS__SUBGRAPHS_READER__REFRESH_CACHE_SCHEDULE 0 0 * * * *
BENS__TRACING__ENABLED true
BENS__TRACING__FORMAT default

Quickstart developer run

  1. Install just, dotenv-cli

  2. Run commands:

    just graph-node-start
    just deploy-subgraph ens-sepolia
    just run-dev

Contribute

If you want to add your name service procol to blockscout you should:

  1. Clone this blockscout-rs repo to add new protocol.

  2. Write subraph code: read subgraph writer guide

  3. [OPTIONAL] if your protocol is based on SpaceID, read SpaceID integration section.

  4. Add your protocol to deployment config config.json

  5. Start graph-node (more in graph-node guide):

    just graph-node-start
  6. Deploy subgraph to graph-node (read more in how to deploy subgraphs guide)

    just deploy-subgraph <protocol_name>
  7. Add protocol to dev.json config and start bens-server connected to common database (read more in how to start bens guide)

    just run-dev
  8. Check that bens-server responses with valid domains. You can find swagger docs at https://blockscout.github.io/swaggers/services/bens/main/index.html

  9. Add your protocol to list of supported domains

  10. Update default config of BENS server for production and staging

  11. Finally, create PR with:

    • New directory inside blockscout-ens/graph-node/subgraphs with your subgraph code
    • Updated BENS config
    • Updated supported domains list
    • Result of indexed data: proof that your indexed subgraph contains correct amount of domains, resolved_addresses and so on