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/

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: