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
5 Likes
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).
1 Like
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.
2 Likes
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 )
1 Like
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)