Integration de portefeuilles Duniter avec le réseau social ScuttleButt

En passant par le réseau social ScuttleButt

J’ai fait mon « OnBoarding » avec Patchwork sur mon PC. Et Manyverse sur mon smartphone ( on peut sauver sa paire de clef en 42 mots )

En fait les clefs sont les même… Il faut passer la « clef ssb » base64 à la « clef duniter » base58

Sur Patchwork, j’ai pris ma clef ssb « public »: « 9BbJwPDjcyIqrOUPNn0nJZBduWdIrpMk3Cjz5MP361s=.ed25519 »,

ssbpub=$(cat ~/.ssb/secret | grep public\" | cut -d ' ' -f 4 | cut -d '.' -f 1 | sed s/\"//g)
G1PUBKEY=$(echo $ssbpub | base64 -d | base58)
echo $G1PUBKEY

Qui est ce portefeuille G1 HRpdfc1bBxnp7H542tYvCb2T5zJ5L3yFE15i8gtrvkXC


Du coup je me suis fait un ami à New York ( cel : %kY0wSGzovUf44sjyt2jJKUOjygcBPWPXIIVlJ31gZnk=.sha256 ) et lui ai fait un don en trouvant SAPUBKEY à partir de sa clef publique .ed25519

SAPUBKEY=$(echo "kY0wSGzovUf44sjyt2jJKUOjygcBPWPXIIVlJ31gZnk=" | base64 -d | base58)

https://ssb.muchmuch.coffee/%U%2FbdIJsWbDwIM%2BS5bWhHE%2F6m97hcIiYRNEXETX%2BunTk%3D.sha256


Ces comptes en même temps portefeuilles et avatar du réseau social ScuttleButt complètement décentralisé :wink: Excellent je trouve…

Ce n’est pas aussi pratique que Cesium pour réaliser des TX… Il faut utiliser silkaj avec sbot ou sbotc developpé par cel, de NY (ah oui, ssb à son git aussi ). Enfin ces 2 UNivers me semblent parfait pour opérer un rapprochement…

Un autre nouvel ami, @MRiJ+CvDnD9ZjqunY1oy6tsk0IdbMDC4Q3tTC8riS3s=.ed25519 (Dann) viendra peut-être aux RML15…


Je me suis dit que ce serait cool de monter un Pub pour y mener des expériences…

Voici comment je viens de faire:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
source ~/.bashrc
nvm install node
npm install sodium-native
npm install -g ssb-server

EXTERNAL=<hostname.yourdomain.tld>

mkdir -p ~/.ssb

# Adapter selon votre config réseau : https://github.com/ssbc/ssb-config#connections
cat > ~/.ssb/config <<EOF
{
  "connections": {
    "incoming": {
      "net": [
        {
          "scope": "public", "external": ["$EXTERNAL"], "transform": "shs", "port": 8008
        },
        { "scope": "private", "transform": "shs", "port": 8008, "host": "127.0.0.1" }
      ]
    },
    "outgoing": {
      "net": [
        {
          "transform": "shs"
        }
      ]
    }
  }
}
EOF

cat > ~/run-ssb-PUB_$EXTERNAL.sh <<EOF
#!/bin/bash
while true; do
  ssb-server start --host $EXTERNAL
done
EOF

chmod 755 ~/run-ssb-PUB_$EXTERNAL.sh
~/run-ssb-PUB_$EXTERNAL.sh &

Voici une invitation émise par mon « Pub » à mettre dans Patchwork

sbot invite.create 1

pod.copylaradio.com:8008:@UeiA9iqZ0/XTjmYBht230KGr44bsr+Tl5BXSUDFv8vo=.ed25519~cDHg7UpHBfAjsbrtcXeUNYzybeA3syth1RnyNVp2nGI=

Le protocole en détail: https://ssbc.github.io/scuttlebutt-protocol-guide/

1 J'aime

Je me dis qu’un tel projet est excitant, mais très vague comme tu le présente là. Quel pourrait être l’utilisation d’une telle association ?

  • j’ai un compte portefeuille/SB, il est associé à mon compte membre par signature mutuelle des clefs pub. Ceci me permet de « valider » mon compte SB ?

  • j’ai rempli mon compte portefeuille/SB d’unités Ğ1. Mon client SB me propose à chaque « j’aime » de verser 1Ğ1 à l’auteurice ? Le fait automatiquement ? Me fait à la fin du mois un bilan des contributions que j’ai le plus appréciées ou lues, et me propose de rétribuer leurs auteurices ?

Certains projets de monnaie décentralisée ont uniquement pour but de rémunérer les créateurices de contenu « à l’aplaudimètre ».

Je viens de tester, en copiant le code pod.copylaradio.com dans Patchwork mais il n’arrive pas à se connecter à ton serveur… :cry:

J’avoue ne pas avoir encore bien cerné les conséquences de cette interconnexion…
Le protocole scuttlebut me plait bien.

Je viens d’introduire dans SSB un messages de type « g1test »

sbotc publish '{"type":"g1test" ,"text":"Hello from sbotc"}'
{"key":"%94SBYjHiluqISGrEY2s52WiaSJGCvfBj6LOCqWjHPt4=.sha256","value":{"previous":"%QZU80Qzmz3X/e/1dgpUtYIZvS5Yobewx+PJZm36kjng=.sha256","sequence":4,"author":"@UeiA9iqZ0/XTjmYBht230KGr44bsr+Tl5BXSUDFv8vo=.ed25519","timestamp":1581335776065,"hash":"sha256","content":{"type":"g1test","text":"Hello from sbotc"},"signature":"P/z5LP5Aa7g4tSG3jE4ryJZ6fz8LZNJBRi4uPcVFXI2IPKcx4OWaG0O5KUIkxJVfB1v24THCgIHBVTyWyFVzBw==.sig.ed25519"},"timestamp":1581335776070}

Je peux les voir distribués avec

sbotc messagesByType '{"type":"g1test","old":false}'

Si j’écris une commande dans le message, les noeuds peuvent déclencher des actions (comme g1sms.fr pour lequel ça devient un nouveau canal d’interaction)


En tout cas ça fait un stockage de messages immuable structuré et répliqué… Accessible en ‹ bash › et ‹ js › https://scuttlebot.io/docs/social/query-the-social-graph.html

Au départ, je pensais m’en servir pour le dialogue inter-node que j’utilise pour les G1Tag (ZenWallets IPFS). Je pense que ce sera moins rapide que au travers de IPFS/IPNS. Mais ça pourra servir d’archive pour les TX réalisées…

En attendant, les propriétés de ssb sont parfaites pour être un réseau social non intrusif.


Bien mieux que FB !!!

Il s’était arrêté ce matin (lancé en console ssh qui s’est déconnectée).
Je viens de le relancer.

Je suis en mode live alpha :wink:

1 J'aime

Je n’en sais rien, ce que je sais c’est que les propriétés que chaque « réseau » apporte se combinent du fait qu’ils ont un PubSec dans le même espace de chiffrage…

Ce serait excellent de pouvoir se faire des dons dans SSB… Mais la G1 (blockchain PoW) ne saura pas encaisser les pics je pense… Alors, ce sera sûrement mieux de passer par des G1Tag Zen IPFS qui se re-répartissent sur les portefeuilles G1 à la demande ou automatiquement (jour, mois?)

Plus d’explications sur ssb

Leur tribu code ici: https://github.com/ssbc/

Il y a un git intégré décentralisé dans ssb :wink:

on se retrouve avec un « git clone ssb:// »

https://git.scuttlebot.io/%K1HcvmJBYfWFkXa48qc2O0H7DpVXAfcU20XwyE5U5ns%3D.sha256

@Frederic_Renault, je comprends comment tu convertis une clé publiques de ScuttleButt vers une clé publique d’un compte portefeuille (ou membre en fait :O).

Par contre, ça ne te donne pas les identifiants pour se connecter au compte Duniter (portefeuille ou membre). Donc si tu fais un virement sur cette clé publique, personne ne peut le récupérer ? Ou alors je loupe quelque chose…

Autre question, si je comprends bien, les clés Duniter et les clés ScuttleButt sont toutes les deux des clés ed25519, comme certaines clés SSH donc.

Ça veut dire qu’on pourrait utiliser notre clé Duniter comment clé SSH ? :open_mouth:
Sauf qu’il y a sûrement des conversions à faire parce ce n’est pas la même longueur… Quelqu’un aurait des infos à ce sujet ?

je savais pas… c’est du RSA par défaut.

pas sûr, enfin avec toutes les moulinettes crypto qui existent, peut-être en fait?
@elois tu en penses quoi? Associer une clef de portefeuille à une clef ssh ouvre des possibilités…

Pour la clé ssh tu a le choix de l’algo, tu peut très bien générer une clé ssh en ed25519, c’est même recommandé, d’ailleurs c’est mon cas.
Par contre il n’est pas conseillé d’utiliser une même clé pour plusieurs usages, car si elle st corrompu les conséquences sont plus graves.
Une bonne pratique de sécurité est d’avoir une clé différente pour chaque usage :slight_smile:

Avoir une clef pour chaque usage, c’est avoir un portefeuille pour chaque usage. TOP!!

Enfin, on peut vouloir regrouper toutes ses clefs numériques en une seule, moi ça ne me gène pas que si on craque ma clef ssh, on trouve tout… Pareil si c’est une attaque vers mon portefeuille… Dans les 2 cas, c’est que ma techno est dépassée ou que j’ai fait une connerie à laisser traîner ma clef ailleurs que dans ma console… Dans mon système à jour…

Le code libre est un organisme qui met à jour son système immunitaire perpétuellement, mais à cause de l’ambiance de voleurs que fait régner la monnaie dette… On n’arrête pas de se barrer dans des espaces mathématiques de plus en plus immenses qui ne feront que faire des mots de passe de plus en plus longs. J’espère bien un jour sortir du Casino d’Alibaba et ses 40 voleurs :wink:
Ca ne va pas tarder j’espère… je veux y croire!

La réponse est sur ScuttleButt :

2 J'aimes

Effectivement, en faisant de la sorte, tu perds le moyen de recréer ta paire de clef à partir de tes id/mpd Cesium… Mais tu peux choisir de te connecter à Cesium grace au fichier secret.dunikey

Tu peux aussi faire l’inverse… Fabriquer ta clef Scuttlebutt à partir de ta clef portefeuille.

#!/bin/bash
################################################################################
# Author: Fred (support@qo-op.com)
# Version: 1.0
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
###########################################################################################
# This script convert secret.dunikey into ~/.ssb/secret.ssb
DUNKEYFILE="$1"
[[ ! ${DUNIKEYFILE} ]] && DUNKEYFILE="./secret.dunikey"
[[ ! ${DUNIKEYFILE} ]] && DUNKEYFILE="~/.ssb/secret.dunikey"
[[ ! -f ${DUNIKEYFILE} ]] && exit

pub=$(cat ${DUNIKEYFILE} | grep "pub" | cut -d ' ' -f 2)
priv=$(cat ${DUNIKEYFILE} | grep "sec" | cut -d ' ' -f 2)
ssbpub=$(echo $pub | base58 -d | base64)
ssbpriv=$(echo $priv | base58 -d | base64)

cat > ~/.ssb/secret.ssb <<EOF
# This secret generated by duniter2secret.sh
# G1 Wallet ACCOUNT BALANCE:
# silkaj balance $pub
#
# THIS KEY IS YOURS!
# NEVER show this to anyone!!!

{
  "curve": "ed25519",
  "public": "$ssbpub.ed25519",
  "private": "$ssbpriv.ed25519",
  "id": "@$ssbpub.ed25519"
}

# WARNING! It's vital that you DO NOT edit OR share your secret name
# instead, share your public name
# your public name: @$ssbpub.ed25519
EOF

Il ne reste plus qu’à renommer ce fichier en « ~/.ssb/secret » et le compte scuttlebut aura ton G1 portefeuille

A NE JAMAIS REALISER AVEC UNE CLEF MEMBRE !!!
De toute façon vous ferez bien comme vous voulez et les problèmes que vous aurez à gérer ensuite seront de votre faute, NA!

Oui, vu que ssh peut prendre le même type de clef, on pourrait unifier les 3…
Par contre, reste à trouver la moulinette qui les transforment de l’une à l’autre :wink:
Pose la question sur scuttlebutt, la communauté y est accueillante :wink:

1 J'aime

Une fois que vous avez un portefeuille SSB que vous avez rempi de June, je peux vous passer un scipt qui détecte vos like et envoi une June à celui que vous avez aimé :wink:

Subjectivity gives us weird usability problems…

two people won’t generally see a wiki page the same way!!

C’est effectivement un nouvel attribut qui caractérise cet Univers numérique…

ssb mélangeant en une chaine nos activités mélées de chat, forum, blog, parties d’échec, musique écoutée… En unifiant les canaux, ce truc fait émerger l’intelligence collective j’en suis sûr, mais il lui manque des interfaces… Les outils qui permettent de « miner » l’information dans le Web2.0 appliqués dessus font des trucs à la transversalité étrange…
L’application idéale pour moi serait d’avoir une meta-application qui parcours les méandres des interconnexions de chaines pour nous les présenter par densité et concentration d’information que nous publions comme pertinente.
Dans l’entremêlement des blockchains de chacun, chacun a sa propre vision au milieu de l’existence de tout. Un changement de relativité, cool, un autre :wink:

1 J'aime

Me garantis-tu que tu expliques et formes toutes les personnes ayant reçu ces Ǧ1 afin qu’ils ne soient pas perdus ?

Sinon ils sont perdus pour toute la communauté.

je ne détruit pas la monnaie, je l’investi dans la communauté SSB

Envoyer des Ğ1 sur un compte sans savoir si la personne est au courant de ce qu’il se passe, c’est le risque de perdre des Ğ1 à jamais. Donc de les détruire.
Des Ğ1 qui vont sur un compte sans credentials connus est un accident ponctuel, dommageable pour toute la communauté, mais ponctuel.

Si tu industrialises cet action d’envoyer dans la nature des Ğ1 sans garantie de leur retour dans la communauté, c’est préjudiciable à la Ğ1.

money to trashcan

1 J'aime

@vit
Scuttlebutt est majoritairement composé de gens qui comprennent la liberté… Ils sont capables de lire une license qui tient sur une page A4 (est-elle traduite en anglais?) et font même preuve d’intelligence!!!

Introduire la June dans SSB est riche de retours et d’interactions. Il n’y aura pas une monnaie libre mais des monnaies libres…

Les comptes ssb sont des comptes G1!!
secret et secret.dunikey sont les même en base64 ou base 58
Donc tous ont le moyen d’accéder à la G1 contenue dans leur compte scuttlebutt en installant césium et en convertissant leur clef…
Rien ne se perd. Rien ne se crée. Tout se transforme.

1 J'aime

Je crois qu’il voulait dire qu’envoyer des Ğ1 à des gens qui ne feront pas forcément la démarche d’utiliser leur compte est dommage, et donc qu’il faut une confirmation de l’intérêt de la personne avant de lui envoyer, plutôt qu’envoyer automatiquement.

Avec la G1, on fait des dons :wink:
Les dons en G1 sont relatifs souvenez-vous, nous produisons le DU et l’usons comme bon nous semble… Je n’ai pas assez de légumes à acheter alors j’offre des LOVE à ceux dont les messages me plaisent :wink: Les #solarpunk plantent des légumes …

Avec @anon88550267 on ajoute un « Flattr » dans SSB :heart:
https://git.p2p.legal/axiom-team/ssb-g1like/src/master

Merci @tuxmain, c’est exactement ce que je dis mais que Fred ne semble pas entendre.

Je lui demande juste de s’assurer que les personnes à qui il veut envoyer des Ğ1 soient prévenues avant pour savoir si cela les intéresse. Au cas où ils ne sont pas intéressés ou ne comprenne pas de quoi il s’agit, alors @Frederic_Renault ne devrait pas envoyer quoi que ce soit.

[Edit]
@Frederic_Renault accompagne les like avec un commentaire explicatif. Bien joué Fred !