SatoshiDice like pour Duniter

?

Le réseau est encore décédé ?

dernier bloc connu :

Bloc #315 861

il y a 14 jours | 31/01/19 18:04

Calculé par le noeud de bobvador (bbv-test)

Voir le fichier brut

Aie aie aie :frowning:

Faut vraiment qu’on prenne le temps de relancer un réseau de test propre. Il faudra probablement y injecter des noeuds “bots” qui renouvellent automatiquement leur identité…

Il y a peut être un problème sur le réseau, encore une fois. Il va falloir regarder…

Du coup tu peux bosser sur l’autre réseau en attendant… !

:smiley:

Je peux donner un coup de main si besoin, il me faut une identité, j’ai des serveurs qui dorment, je peux en mettre un à calculer du g1-test :slight_smile: (faut peut etre continuer la discussion sur un topic dédié. ^^

Le problème n’est pas tant d’avoir des serveurs que d’être actif et de surveilleur leur état ^^

Souvent le réseau est laissé à l’abandon et quand on se réveille pour s’en servir on se rend compte qu’il fonctionne plus depuis 10 jours parce que personne ne surveille ses noeuds… :frowning:

Je vois, ^^

N’empêche depuis que je bosse sur mon satoshiDice, j’ai ouvert 4 issues sur le gitlab et fait 2 merge request :smiley:

C’est qui qu’il faut ping pour avoir la validation ?
git.duniter.org/dashboard/issues?scope=all&utf8=%E2%9C%93&state=opened&author_username=Looarn

En l’occurence, la GTest se porte bien, mais le noeud par défaut g1-test.duniter.fr est désynchronisé. Il faut requêter g1-test.cgeek.fr.

2 Likes

Tout dépent des dépots :

Pour vanitygen c’est @jytou
Pour gannonce c’est @cgeek
Pour cesium c’est @kimamila

1 Like

Oki j’ai vu @1000i100 comme membre sur tous les projets mais pas forcément les concernés, j’avais un doute. ^^

@cgeek si tu peux regarder pour gannonce, j’aimerai lancer une IPO via gannonce qui est la plateforme qui s’y prête le plus. Me semble que le pod est désynchronisé.


Me semble que ça résoudra aussi ce souci là qui n’est pas remonté sur le gitlab mais qui semble lié : https://forum.monnaie-libre.fr/t/soucis-sur-gannonce/4586

1 Like

Je me suis occupé de migrer sur Gitlab plusieurs projets, c’est probablement pour ça que j’apparais un peu partout :wink:

2 Likes

Merci @Max pour ton travail de documentation, ça m’a beaucoup servi.

Je me suis battu avec la la librairie Sodium de PHP, et c’est bon, j’arrive a partir de mes pass + salt à générér → seed → PK + SK

Le générateur d’improbabilité est énorme sur cette partie, surtout avec PHP, qui peut facilement convertir la donné avec le mauvais type. ^^

Du coup pour revenir sur ton schéma, la lib scrypt_crypto finalement sert uniquement à générer la seed, une fois qu’on à la seed on dérive via sodium/Nacl.

Allez il me reste à signer la TX et j’envoie ma première TX automatisé (celle qui servira à l’émision des secretKey qui servent à valider les paris. ^^)

:muscle:

PS : Pour PHP si ça interesse du monde, je pourrai remettre mon code au propre sur la partie wallet duniter, et le publier sur le gitlab. :slight_smile:

1 Like

PHP ça intéresse du monde c’est certain ! :slight_smile:

Ce qui serait idéal ce serait de faire une librairie de wallet duniter en php :wink:

1 Like

J’en suis pas loin à vrai dire, j’ai juste évité la partie Crypto_scrypt, mais la lib existe en PHP.

Je m’y colle une fois mon satoshiDice en prod alors. :smiley:

Besoin d’un petit coup de main ici, j’ai beau le tourner dans tous les sens, je n’arrive pas via ma clé privée à signer ma transaction je crois que j’ai un souci dans le format de la TX que je signe.

Voici le format que j’utilise :

Version: 10\nType: Transaction\nCurrency: g1\nBlockstamp: 194495-000004D87E91420DE2F1C764ED6715B02E31E470A3965586566BC1C3160B84AF\nLocktime: 0\nIssuers:\nFNVeWqnZCjGFspj1sjBmwFfoT8tDv99ifGLbNY2UpzPw\nInputs:\n1002:0:D:FNVeWqnZCjGFspj1sjBmwFfoT8tDv99ifGLbNY2UpzPw:140471\nUnlocks:\n0:SIG(0)\nOutputs:\n100:0:SIG(2LyLcCf3vQDDggPkECGeVrFMMvQdJACLNZet9HUxeY73)\n902:0:SIG(FNVeWqnZCjGFspj1sjBmwFfoT8tDv99ifGLbNY2UpzPw)\nComment: \n

voici ce que je fais :

// transform seed in keypair via sodium
$keyPair = sodium_crypto_sign_seed_keypair ( sodium_hex2bin ("MaSeed"));

// extract publickey and encode it in base58 (bitcoin format)
echo(base58_encode(gmp_import (sodium_crypto_sign_publickey($keyPair))));
// j'ai bien ma clé publique ici !

// sign TX with secretKey
$tx="Version: 10\nType: Transaction\nCurrency: g1\nBlockstamp: 194495-000004D87E91420DE2F1C764ED6715B02E31E470A3965586566BC1C3160B84AF\nLocktime: 0\nIssuers:\nFNVeWqnZCjGFspj1sjBmwFfoT8tDv99ifGLbNY2UpzPw\nInputs:\n1002:0:D:FNVeWqnZCjGFspj1sjBmwFfoT8tDv99ifGLbNY2UpzPw:140471\nUnlocks:\n0:SIG(0)\nOutputs:\n100:0:SIG(2LyLcCf3vQDDggPkECGeVrFMMvQdJACLNZet9HUxeY73)\n902:0:SIG(FNVeWqnZCjGFspj1sjBmwFfoT8tDv99ifGLbNY2UpzPw)\nComment:\n";

// output signature
echo(sodium_bin2base64 (sodium_crypto_sign_detached($tx ,sodium_crypto_sign_secretkey($keyPair)),SODIUM_BASE64_VARIANT_ORIGINAL));

Et j’ai pas la bonne, j’ai essayer avec tx entre simple quote (non interprété en PHP) et double quote (interprété donc), j’ai deux résultats différents, mais qui ne sont pas les bons.

Coté protocole on peut lire que les signatures utilisent :

Signatures follow the Ed25519 pattern

Il me semble que c’est bien ce que fait crypto_sign right ?

Ma question est donc est ce que le format de ma TX est bon ?
Si oui où est ce que ça cloche ?

Regarde du côté des examples python peut être :

:face_with_head_bandage:

Je me démène à lire du TypeScript et tu me files du Python. :smiley:

OMG il manquait un espace après Comment:

C’est tout bon, merci @Inso pour le support. ^^

EDIT : pour mémoire, réponse trouvé ici : https://git.duniter.org/clients/cesium-grp/cesium/blob/master/www/js/api/api-demo-services.js#L37

2 Likes

Bon du coup, j’ai séparer mon code, il utilise la mini-librairie duniterWallet ^^

Tant qu’à écrire une lib autant quelle me serve d’emblé.

Pour le moment, j’ai ça comme fonction :

duniter wallet utils 
	
	- createTX
	- getBlock
	- getInputs
	- getTXHash
	- setOutputs
	- sendTX
	- signTX

Pour le moment il n’y a que les fonctions dont j’ai besoin, il en manque surement, si vous voyez des choses à ajouter, n’hésitez pas. ^^

2 Likes

PHP 7 permet de faire du typage strict, qui plante au runtime puisque pas de compilation, mais un bon IDE PHP donnera des alertes en cas de problème de typage flagrant.
Si tu fais une librairie PHP, essaie aussi de respecter les PSR.

Keep up the good job ! :slightly_smiling_face:

2 Likes

Oui merci pour les encouragements.

Je m’en sers effectivement à quelque endroit stratégique.

Oui, pour le moment c’est un simple fichier qui embarque les fonctions utilitaires. A voir pour en faire une classe pour intégration composer plus tard.

La todo liste s’agrandie au fur et à mesure que j’avance. A ce demander comment les chiffres du chômage font eux ? :trollface:

2 Likes