Si claimMembership n’a pas été appelé, alors l’identité reste dans pendingMembership.
…or pour Vit (index 7174)
smithsMembership.pendingMembership: Option<CommonRuntimeEntitiesSmithsMembershipMetaData>
<none>
Autre constatation pour Poka (index 6951) :
sur polkadot.js.org/app j’ai 9 certifications émises
smithsCert.storageIdtyCertMeta: PalletCertificationIdtyCertMeta
{
issuedCount: 9
nextIssuableOn: 2,524,770
receivedCount: 5
}
Sur l’indexeur j’en ai que 8 affichées:
{
"data": {
"smith_cert": [
{
"receiver": {
"identity": {
"pubkey": "5CCrBS67BrpBx3ihGHc72HZp3eHHbETxWFuNfwbbdoGSJFN8",
"name": "1000i100",
"validated_at": "2022-12-13T01:35:24.001+00:00",
"index": 1
}
}
},
{
"receiver": {
"identity": {
"pubkey": "5Dq8xjvkmbz7q4g2LbZgyExD26VSCutfEc6n4W4AfQeVHZqz",
"name": "h30x",
"validated_at": "2022-12-13T01:35:24.001+00:00",
"index": 2457
}
}
},
{
"receiver": {
"identity": {
"pubkey": "5DUjwHRqPayt3tAZk1fqEgU99xZB9jzBHKy2sMSTNcc7m9D1",
"name": "ManUtopiK",
"validated_at": "2022-12-13T01:35:24.001+00:00",
"index": 3595
}
}
},
{
"receiver": {
"identity": {
"pubkey": "5CtmAELWQ6FGDrAfsfVbGe4CXW4YrpNRTVU27eWzSE6J8ocU",
"name": "elois",
"validated_at": "2022-12-13T01:35:24.001+00:00",
"index": 6317
}
}
},
{
"receiver": {
"identity": {
"pubkey": "5D2DnScFpxoEUXDwZbJH18tRsQMygBSh1F6YCcWvTYzKY2W7",
"name": "tuxmain",
"validated_at": "2022-12-13T01:35:24.001+00:00",
"index": 7139
}
}
},
{
"receiver": {
"identity": {
"pubkey": "5FH48744BHgNoLBe8syGXbTEnSpGhp8ttdAKW4MWcR7TUKai",
"name": "vit",
"validated_at": "2022-12-13T01:35:24.001+00:00",
"index": 7174
}
}
},
{
"receiver": {
"identity": {
"pubkey": "5GBVhdJUdsGhxozu6R8X6x2pTZvuuW46s7JSU4tiW7Zd3WmY",
"name": "Pini",
"validated_at": null,
"index": 7228
}
}
},
{
"receiver": {
"identity": {
"pubkey": "5E58CLNXPFpBWrygp3ry8HyS2hiuQpRuXbZFUaTq7q9gG3Vv",
"name": "AAAAA",
"validated_at": null,
"index": 7237
}
}
}
]
}
}
Etrange, car j’ai accompli toutes les étapes y compris ClaimMembership. J’ai même forgé des blocs avec mon serveur validateur avant qu’il décroche et que je le déclare offline.
Tu peux ajouter le champ “created_on” à ta requête pour voir qu’il s’agit d’une certification qui a été renouvelée.
requête
query ($address: String) {
smith_cert(where: {receiver: {identity: {pubkey: {_eq: $address}}}}) {
issuer {
identity {
name
index
}
}
created_on
}
}
variables
{"address": "5FH48744BHgNoLBe8syGXbTEnSpGhp8ttdAKW4MWcR7TUKai"}
réponse
{
"data": {
"smith_cert": [
{
"issuer": {
"identity": {
"name": "h30x",
"index": 2457
}
},
"created_on": 1606658
},
{
"issuer": {
"identity": {
"name": "poka",
"index": 6951
}
},
"created_on": 1606258
},
{
"issuer": {
"identity": {
"name": "tuxmain",
"index": 7139
}
},
"created_on": 1606875
},
{
"issuer": {
"identity": {
"name": "Pini",
"index": 7228
}
},
"created_on": 1033152
},
{
"issuer": {
"identity": {
"name": "Pini",
"index": 7228
}
},
"created_on": 1617101
}
]
}
}
À regarder de plus près. Visiblement l’indexeur utilise le “signer” pour identifier l’identité validée, mais c’est faux, car dans ce cas l’identité est validée par le certificateur. src/processors/identity.ts · master · nodes / duniter-indexer · GitLab. Bug à corriger, donc.
requête
sur subsquid : https://subsquid.gdev.coinduf.eu/
{
batch(
limit: 100
includeAllBlocks: false
events: [{ name: "Identity.IdtyValidated" }]
) {
header {
height
}
}
}
réponse
regarder les blocs sur un nœud archive pour voir les événements
{
"data": {
"batch": [
{
"header": {
"height": 626276
}
},
{
"header": {
"height": 1491387
}
},
{
"header": {
"height": 1716493
}
}
]
}
}
Effectivement, il manque la certification du bloc 2510370. Reste à savoir pourquoi.
Je l’ai trouvée avec la requête subsquid suivante:
requête
sur https://explorer.subsquid.gdev.coinduf.eu/graphql
query MyQuery {
events(where: {name_eq: "SmithsCert.NewCert", extrinsic: {calls_some: {args_jsonContains: "{\"issuer\": 6951}"}}}) {
block {
height
}
extrinsic {
call {
name
args
}
}
}
}
réponse
{
"data": {
"events": [
{
"block": {
"height": 586196
},
"extrinsic": {
"call": {
"name": "SmithsCert.add_cert",
"args": {
"issuer": 6951,
"receiver": 7228
}
}
}
},
{
"block": {
"height": 1534981
},
"extrinsic": {
"call": {
"name": "SmithsCert.add_cert",
"args": {
"issuer": 6951,
"receiver": 7237
}
}
}
},
{
"block": {
"height": 1606258
},
"extrinsic": {
"call": {
"name": "SmithsCert.add_cert",
"args": {
"issuer": 6951,
"receiver": 7174
}
}
}
},
{
"block": {
"height": 2510370
},
"extrinsic": {
"call": {
"name": "SmithsCert.add_cert",
"args": {
"issuer": 6951,
"receiver": 7238
}
}
}
}
]
}
}
Effectivement, et c’était au bloc 1620356. Et si on regarde smithsMembership.membership()
à ce bloc, on trouve bien ceci :
Par contre, tu as cessé d’être forgeron au bloc 2504292. Le système a révoqué ton compte, probablement à cause d’un trop long délai hors ligne ou sans renouvellement des session keys, je ne sais pas.
J’espère que tous ces éléments permettront à d’autres d’essayer de débugger en utilisant les outils à disposition.