Explorer la base de données de Duniter

Pour vérifier ce qui s’est passé précisément, rien de mieux que d’explorer la blockchain :

  • copier le fichier ~/.config/duniter/duniter_default/duniter.db sur son Bureau
  • installer un explorateur de base de données SQLite, comme SQLiteman
  • ouvrir la base de données avec SQLiteman en double-cliquant sur le fichier nouvellement copiée sur le Bureau duniter.db

Il est alors possible de réaliser des requêtes SQL sur les tables suivantes :

  • idty, cert, membership qui sont les tables de piscine
  • txs qui est à la fois une table piscine et une table d’archive des transactions passées
  • block, qui est la table d’archive de la blockchain, où chaque entrée est un bloc
  • i_index, c_index, m_index, s_index qui sont des tables dérivées de la blockchain, elles représentent l’état courant de la blockchain

Par exemple pour voir les transactions passées par la clé de jytou, on pourrait faire :

SELECT * FROM txs WHERE issuers like "%FEkbc4BfJukSWnCU6Hed6dgwwTuPFTVdgz5LpL4iHr9J%"

Et constater :

Je n’ai pas de description précise de la BDD, mais elle est relativement simple : peu de tables, peu de champs et pas de lien type “clé étrangère”. Les clés naturelles sont également peu nombreuses : la clé publique est généralement la seule, sauf pour la table block où l’identifiant naturel est “n° bloc + hash”.

En vous souhaitant une agréable exploration :slight_smile:

6 Likes

J’ai un peu farfouillé cette après-midi. Je suis surpris qu’un bloc contiennent autant de champs… Y a-t-il un endroit où tu détailles un peu tout ça ? :slight_smile:

Ce que j’en compris :

rowid - numéro du bloc ?
fork - ? 
hash - La signature du bloc
inner_hash - ?
signature - ?
currency - Le nom de la monnaie, "g1" dans notre cas
issuer - ? 
parameters - Les paramètres de départ de la monnaie
previousHash - La signature du bloc précédent
previousIssuer - ?
version - ?
membersCount - 59 au départ, plus de 1000 aujourd'hui
monetaryMass - Masse monétaire totale
UDTime - ?
medianTime - ?
dividend - ?
unitbase - ?
time - ?
powMin - ?
number - ?
nonce - ? 
transactions - Les transactions entre utilisateurs
certifications - Les certifications entre utilisateurs
identities - ?
joiners - Les utilisateurs qui deviennent membres
actives - ?
leavers - Ceux qui ont perdu le statut membre ?
revoked - Les certifications révoquées ?
excluded - ?
created - ?
updated - ? 
issuersFrame - ?
issuersFrameVar - ? 
issuersCount - ?
len - ?
1 Like

https://duniter.org/fr/wiki/duniter/tutoriel-dev/chapitre-7-bdd/

3 Likes

Un grand merci @gerard94, c’est exactement ce que je cherchais! :slight_smile:

1 Like