# Duniter-squid

**URL:** https://forum.duniter.org/t/duniter-squid/11858
**Category:** Indexers
**Tags:** subsquid
**Created:** [9 January 2024 13:46 UTC](https://forum.duniter.org/t/duniter-squid/11858 "2024-01-09T13:46:11Z")
**Posts on this page:** 1
**Showing post:** 2

<div class="post-metadata">

### Author: ![poka](https://forum.duniter.org/user_avatar/forum.duniter.org/poka/32/6827_2.png) [@poka](https://forum.duniter.org/u/poka)
#### Post date: [14 January 2024 00:26 UTC](https://forum.duniter.org/t/duniter-squid/11858/2 "2024-01-14T00:26:57Z")

</div>

Je viens de lancer mon noeud Squid: [https://gdev-squid.axiom-team.fr](https://gdev-squid.axiom-team.fr)

J’y ai [activé les subscriptions](https://forum.duniter.org/t/squid-pour-duniter-episode-2/11713/41). Toutes les queries (hors queries `*Connection` réservés à la pagination) peuvent donc être transformé tel quel en subscription, simplement en changeant le mot clé de début de requête `query` par `subscription`, exemple:

```auto
subscription eventsTransfer {
  events(limit: 10, orderBy: block_height_DESC, where: {pallet_eq: "Balances", name_eq: "Transfer"}) {
    id
    name
    pallet
    args
    block {
      height
    }
  }
}

```

Pour souscrire aux dernière transactions émises sur le réseau.  
Chose fun, lorsque votre squid se synchronise la première fois à votre chaine, vous pouvez suivre en live son état en souscrivant à une table au choix.

Je travail sur la [MR !1](https://git.duniter.org/nodes/duniter-squid/-/merge_requests/1) pour homogénéiser l’environnement de dev/prod.

* * *

Je met ici ma conf nginx pour d’une part rediriger `/` vers `/graphql`, et laisser passer les connections websocket:

```auto
upstream gdev-squid.axiom-team.fr {
   server 10.10.10.107:10020;
}

[...]

   location / {
      proxy_pass http://gdev-squid.axiom-team.fr;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto https;
      proxy_set_header Host $http_host;
      proxy_redirect off;

      # for websocket
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
   }

```

* * *

Exemple de requête paginé, pour voir toutes les transactions émises et reçus de mon compte:

```auto
query history {
  transfersConnection(where: {from: {id_eq: "5CQ8T4qpbYJq7uVsxGPQ5q2df7x3Wa4aRY6HUWMBYjfLZhnn"}, OR: {to: {id_eq: "5CQ8T4qpbYJq7uVsxGPQ5q2df7x3Wa4aRY6HUWMBYjfLZhnn"}}}, orderBy: blockNumber_DESC_NULLS_LAST, after: null, first: 10) {
    pageInfo {
      endCursor
      hasNextPage
    }
    edges {
      node {
        amount
        id
        timestamp
        from {
          id
          identity {
            name
          }
        }
        to {
          id
          identity {
            name
          }
        }
      }
    }
  }
}

```

Pagination graphql classique, vous renseignez la valeur de `endCursor` à `after` pour passer de page en page. La subtilité c’est qu’ils semblent avoir mixé leur convention de format de curseur avec la pagination par offset, les curseurs étant des nombres entier incrémentales. Plutôt étrange.

* * *

Première issue:

> **[Event hash instead of identity id and name (#1) · Issues · nodes /...](https://git.duniter.org/nodes/duniter-squid/-/issues/1)**
>
> For this account for instance: query { accountById(id: "5CJKhFCpdSpumgWjSZ3TQmejJuHV6iELJrtdrfs38SXuiQeB") {...

---

_[View the full topic](https://forum.duniter.org/t/duniter-squid/11858)._
