Coucou,
Je suis en train de créer des Dapp pour Ethereum qui vont chercher des informations sur la Blockchain Duniter(des oracles en somme) dans le but de pouvoir utiliser les smart contrats en même temps que le système d’identité de la Wot ou pour automatiser de façon décentralisé des mécaniques avec la monnaie libre.
L’avantage que j’y vois, c’est que le protocole monétaire est indépendant de la plateforme de smart contrat, cela permet de payer des fee en MNL seulement pour le fonctionnement des institutions décentralisés par exemple et non pour l’utilisation de la monnaie. Il est possible aussi de créer un pot commun de donation en MNL (Ether en l’occurence) pour ces mécaniques là.
C’est du gros WIP car je me sert de ce projet aussi pour améliorer mes competences en nodeJS, smart contrat et bien sûr pour améliorer mes connaissances du protocole Duniter.
Pour l’instant, j’ai implémenté deux oracles, j’ai choisi ces deux là car c’était le meilleur rapport simplicité/utilité :
Un tracker qui tout les deux mois(faut pas que ça coute cher) va vérifier le membership d’une clef publique Duniter
=> Vérifier l’accès à un service décentralisé basé sur l’identité Duniter
Un linker qui en suivant une procédure simple permet de prouver le lien entre une clef publique Ethereum et une clef publique Duniter en utilisant les commentaires des transactions Duniter
=> Permettre d’utiliser l’adresse Ethereum pour utiliser ses protocoles conjointement avec la Blockchain Duniter
Pour l’instant, j’ai utilisé l’api HTTP de Duniter comme source d’information, je vais chercher ça sur https://g1.duniter.fr/ sans instancier en local de noeud Duniter, Oraclize me permet ensuite de faire les vérifications cryptographiques. C’est le premier niveau, par la suite je compte faire une procédure pour faire écrire des transactions dans la blockain Duniter voir gérer des cotisations de façon décentralisé etc. J’aurais sans doutes besoin à un moment de faire du calcul off-chain et de faire tourner un noeud Duniter en local… j’aurais sans doutes besoin d’aide en nodeJS (je débute) à ce moment là
Je viens vous en parler, pour savoir si vous avez d’autres idées/critiques ou si des gens veulent participer au dev !
J’écris actuellement les tests unitaires en nodeJS, histoire de valider le fonctionnement puis si ça intéresse des gens je mettrais le smart contrat du Linker sur le mainnet et mettrais la Dapp en ligne, j’aurais besoin d’un peu d’aide pour la partie web à ce moment là.
Le tracker : https://github.com/YoanSallami/duniter_ethereum_oracle/blob/master/contracts/oracles/MembershipTracker.sol
Le linker : https://github.com/YoanSallami/duniter_ethereum_oracle/blob/master/contracts/oracles/AccountLinker.sol
Prochaine étape ? Utiliser ces deux oracles pour créer un autre linker qui suit en même temps les identités Duniter.
Et ensuite ? Vérifier la réception d’une cotisation, permettre d’envoyer une transaction Duniter depuis un smart contrat, vérifier la balance d’un compte Duniter, faire un système de vote par délégation pour les membres de la WoT etc. on verra en fonction de ce qui est utile/faisable
Je ferais un tuto détaillé de la procédure pour lier les comptes lorsque j’aurais passé les tests unitaires