We’ve worked on it at the last hackathon and few days after at home with @poka .
List on what’s have done :
Docker
build docker image of the indexer itself and another one for Hasura with migration
configuring the CI to auto publish docker images
refactoring docker-compose with prod, dev and test mode
prod : launch all pre-configured services
dev : launch all needed services, but not the indexer
test : launch duniter-rpc with sealing mode
Hasura
bump Hasura version
refactoring database :
with name as the primary key of identity table
renaming block index
renaming id to pubkey
Fastify
fill database directly with real sql queries and not through graphQL : more than x2 faster!
refactoring the process block mechanism with an event emitter
remove fastify-hasura and vite-node dependencies, which simplify docker workflow
started writing test with Vitest and fake data with Polkadot
indexing the true Ğ1 genesis and all transactions !
Frontend
designed awesome logo
refactored frontend and integrate anu-vue UI lib
update graphiQL to the latest
toggle mode relay graphQL API
display latest finalized block
You can take a look online here :
https://gdev-indexer-graphiql.p2p.legal
Is it easy to enable the GraphiQL plugin for click-only request? (the one with the checkboxes on the left which is enabled in Hasura console).
Moul
12 December 2022 18:08
4
Can we move the repository to a group, where we would find it more easily?
It could be moved into the nodes group. I created the indexers group .
Which one fits best?
Not sure which is the best between nodes and indexers. Depends whether we aim for precise categories or easy to find software.
Sure, good idea! Everywhere you want
I don’t know which group fit the best. Maybe tools ? Or nodes ? Websites ? I really don’t know. Feel free to move it ! I’ll adapt myself…
Moul
16 December 2022 09:55
7
I deleted the indexers group, and moved this repository into nodes group .
There is not much item at the root of this group.
Ok, thanks a lot. I’ll change my remote url.
ping @poka
Do we need to change something in the config of https://gdev-indexer-graphiql.p2p.legal/ ? It says "NetworkError when attempting to fetch resource.". @poka ?
poka
23 January 2023 11:53
11
you should use hasura console instead for now
https://gdev-indexer.p2p.legal/console
Does it have something to do with INDEXER_HASURA_GRAPHQL_ENDPOINT_GRAPHIQL in the docker-compose.yml?
services:
app:
image: duniter/duniter-indexer:latest
environment:
- POSTGRES_HOST=postgres
- INDEXER_DUNITER_WS_ENDPOINT=ws://duniter-rpc:9944
- INDEXER_DUNITER_WS_ENDPOINT_GRAPHIQL=${INDEXER_DUNITER_WS_ENDPOINT_GRAPHIQL}
- INDEXER_HASURA_GRAPHQL_ENDPOINT_GRAPHIQL=${INDEXER_HASURA_GRAPHQL_ENDPOINT_GRAPHIQL}
restart: unless-stopped
ports:
- "3000:3000"
depends_on:
- duniter-rpc
- postgres
- graphql-engine
How can we fix it?
I think currently the bug come from a configuration mistake.
INDEXER_DUNITER_WS_ENDPOINT_GRAPHIQL should be the public websocket endpoint.
INDEXER_HASURA_GRAPHQL_ENDPOINT_GRAPHIQL should be the public hasura endpoint. (https://gdev-indexer.p2p.legal )
Oh, thanks, I did not have the strength to dig in the code to see what it was supposed to be.
So for example?
- INDEXER_DUNITER_WS_ENDPOINT_GRAPHIQL="wss://gdev.coinduf.eu/ws"
- INDEXER_HASURA_GRAPHQL_ENDPOINT_GRAPHIQL="https://hasura.gdev.coinduf.eu/"
I set these ones, but the app is still unavailable: https://indexer.gdev.coinduf.eu/
You wrote “looks good” at the time I updated my message to say that https://indexer.gdev.coinduf.eu/ was an empty page, even with this config.
Remove the double quote :
- INDEXER_DUNITER_WS_ENDPOINT_GRAPHIQL=wss://gdev.coinduf.eu/ws
- INDEXER_HASURA_GRAPHQL_ENDPOINT_GRAPHIQL=https://hasura.gdev.coinduf.eu/
Should not change anything in yaml file, no?
This config should be in .env file or docker-compose.prod.yaml file.
Right now as I show it (with the - before), it is yaml in the docker-compose.yml file. So I do not feel like I should try without quotes (moreover with the : special character)