Aller au contenu principal

9 articles tagués avec « wallet »

Voir tous les tags

· 8 minutes de lecture
Jonas Turbeaux

/img/blog/traefik_docker_letsencrypt.png

Vous avez dit sauvage ?

Un certificat "wildcard" C'est un certificat qui répond à tous les sous-domaines d'un domaine. Par exemple, si vous avez un certificat wildcard pour le domaine *.example.com, il sera valide pour foo.example.com, bar.example.com, prout.example.com, etc.

Vous voyez le * ? C'est un caractère joker, qui signifie "n'importe quoi". C'est pour cela qu'on appelle ça un certificat wildcard, un sauvage.

Pourquoi faire ? Ben c'est quand même 'achement pratique si on doit générer des sites en mode Saas, software as a service. TiBillet, par exemple, est construit en mode multi-tenant. Cela veut dire un noyau unique pour plusieurs instances fédérées. Chaque instance est un tenant, et chaque tenant possède son propre sous-domaine.

Dans le cas d'un déploiement en mode "logiciel à la demande", c'est à dire avec des instances créées automatiquement en quelques clics, avoir un seul certificat valide pour les adresses comme https//raffinerie.tibillet.re/ ou https://rezom.tibillet.re/ (notez le s de https), c'est quand même assez chouette, non ?

Let's Encrypt et Traefik, l'ultra combo.

Pour convaincre Letsencrypt de nous donner un certificat wildcard, il faut faire un petit peu plus de chose que pour un certificat simple. En plus de lui prouver que nous avons bien la main sur le serveur qui répond à l'ip résolu par le nom de domaine, il faut ausi lui prouver que nous sommes les proprietaires de la totalité du domaine. Autrement dit : que nous avons les droits d'écritures de toute la zone DNS.

Pour cela, Letsencrypt va nous demander d'ajouter un champ TXT dans la zone DNS du domaine. Ce champ contient une clé créé par Letsencrypt, s'il arrive à le lire, il va donc considérer à raison que nous avons bien les droits d'écriture sur la zone DNS. Donc que nous sommes le proprio.

Le truc, c'est qu'un certificat doit se renouveller régulièrement, et que donc, il faut que ce champ TXT soit présent et différent à chaque renouvellement. Et on va pas se le cacher, c'est un peu contraignant et fastidieux de le faire à la main.

C'est la qu'intervient Traefik. Traefik est un reverse proxy, c'est à dire un serveur qui va rediriger les requêtes http vers le bon conteneur docker. Il est capable de faire plein de choses, mais ce qui nous intéresse ici, c'est qu'il est capable de gérer les certificats SSL, et même de renouveller automatiquement les widlcards.

Traefik et Letsencrypt fonctionnent merveilleusement bien ensemble. Le premier va poser la question au second, puis va modifier la zone DNS automatiquement pour que le champs TXT soit à jour régulièrement. Cela nécessite de donner les trois d'écriture à notre Zone à notre conteneur Traefik. Pas de soucis particuliers, l'instance Traefik est hebergé sur notre serveur, nous avons donc la main dessus..

Voyons comment mettre tout ça en place.

Prérequis

  • Un nom de domaine : Ici, nous allons voir la methode avec Gandi et avec OVH
  • Docker ( et docker-compose ) : https://docs.docker.com/install/
  • Traefik : https://docs.traefik.io/
  • Un serveur ou heberger tout ça avec une ip statique et les ports 80 et 433 corectement redirigé. On utilise des VPS sous Ubuntu, mais ça marche aussi avec une autre distribution ou même un raspberry pi.

Installation

Je vous invite à aller du coté d'une précédente note de blog qui détaille comment préparer votre serveur pour la suite : https://codecommun.coop/blog/sysadmin-mon-chaton-part1/

Une légère différence ceci, nous allons utiliser le fichier docker-compose.yml du dossier "wildcard" de notre dépot github Traefik : https://github.com/TiBillet/Traefik-reverse-proxy/tree/main/wildcard

Si vous avez déja lancé le docker-compose.yml de la note de blog, vous pouvez le stopper et le supprimer et utiliser celui-ci à la place.

Si vous n'avez de compte ni sous OVH ni chez Gandi, pas d'inquiétude, Traefik supporte beaucoup de registrar : https://doc.traefik.io/traefik/https/acme/?ref=j.hommet.net#dnschallenge

Commençons par créer un nouveau champ A vers l'ip de votre serveur, avec comme sous domaine *.

* 10800 IN A <IP>

Ensuite, allons générer une clé API pour donner les droits d'écriture dans cette zone à Traefik :

Avec OVH Cloud

Comme nous le disions, nous allons avoir besoin de donner les droits d'écriture à Traefik. Il vous faut bien sur un compte ovh valide et avoir acheté un nom de domaine.

  • Allez sur https://eu.api.ovh.com/createApp/

  • Logguez vous, créez une nouvelle app et récuperez les cred'

  • Dans le même dossier que le docker-compose, Créez un fichier .env et remplissez les deux premières variables avec les cred' récupérés précédemment.

OVH_APPLICATION_KEY=""
OVH_APPLICATION_SECRET=""
OVH_CONSUMER_KEY=""
  • Lancez cette commande curl pour donner les droits de modification à l'application. Remplacez OVH_APPLICATION_KEY et VOTRE_DNS, avec vos propres valeurs.
curl -XPOST -H"X-Ovh-Application: <OVH_APPLICATION_KEY>" -H "Content-type: application/json" \
https://eu.api.ovh.com/1.0/auth/credential -d '{
"accessRules": [
{
"method": "POST",
"path": "/domain/zone/<VOTRE_DNS>/record"
},
{
"method": "POST",
"path": "/domain/zone/<VOTRE_DNS>/refresh"
},
{
"method": "DELETE",
"path": "/domain/zone/<VOTRE_DNS>/record/*"
}
],
"redirection":"https://www.<VOTRE_DNS>/"
}'

Si vous n'avez pas curl, installez le. Sinon, vous pouvez aussi utiliser l'application en ligne de OVH. Je vous laisse découvrir par vous-même.

  • Copiez le consumer_key et rentrez la variable correspondante dans le .env
  • Validez la requete avec le lien envoyé dans la réponse. Pensez à mettre unlimited dans la durée des droits d'execution car Traefik renouvelle le widlcard tous les trois mois.

Avec Gandi.net

Un ptit peu plus simple du coté de Gandi, il suffit de générer une clé API dans votre compte user / Authentication option / API key.

Dans votre .env, ajoutez la variable suivante :

GANDI_API_KEY="PLOUFPLOUFDEVINEMOI"

Décollage

Completez votre .env avec EMAIL et DOMAIN, paske c'est le votre et pas le mien :

DOMAIN="pingoin-sauvage.coop"
EMAIL="tux42@pingoin-sauvage.coop"

Et voici le compose magique :

version: "3"
services:
traefik:
image: "traefik:saintmarcelin"
container_name: "traefik_wild"
restart: always
command:
- --log.level=DEBUG
- --api.insecure=true
- --providers.docker=true
- --providers.docker.exposedbydefault=false

- --entrypoints.web.address=:80
- --entrypoints.web.http.redirections.entrypoint.to=websecure
- --entrypoints.web.http.redirections.entrypoint.scheme=https

- --entrypoints.websecure.address=:443
- --entrypoints.websecure.http.tls=true
- --entrypoints.websecure.http.tls.certResolver=letsencrypt
- --entrypoints.websecure.http.tls.domains[0].main=${DOMAIN}
- --entrypoints.websecure.http.tls.domains[0].sans=*.${DOMAIN}

- --certificatesresolvers.letsencrypt.acme.dnschallenge=true
- --certificatesresolvers.letsencrypt.acme.dnschallenge.provider=gandiv5
- --certificatesresolvers.letsencrypt.acme.dnschallenge.delayBeforeCheck=60
- --certificatesResolvers.letsencrypt.acme.dnsChallenge.resolvers=1.1.1.1:53,8.8.8.8:53
- --certificatesresolvers.letsencrypt.acme.email=${EMAIL}
- --certificatesresolvers.letsencrypt.acme.storage=/dnschallenge/acme.json

- --certificatesresolvers.letsencrypt.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory

ports:
- "80:80"
- "443:443"
environment: # choisissez votre provider. Gardez ceux de Gandi, ou ceux d'ovh, ou ceux indiqué par la doc Traefik.
- "GANDIV5_API_KEY=${GANDIV5_API_KEY}"
- OVH_APPLICATION_KEY=${OVH_APPLICATION_KEY}
- OVH_APPLICATION_SECRET=${OVH_APPLICATION_SECRET}
- OVH_CONSUMER_KEY=${OVH_CONSUMER_KEY}

volumes:
- "./dnschallenge:/dnschallenge"
- "/var/run/docker.sock:/var/run/docker.sock:ro"

networks:
- frontend

networks:
frontend:
external: true


Attention ! Deux choses à noter :

Pour gandi, ne touchez pas la ligne suivante :

      - --certificatesresolvers.letsencrypt.acme.dnschallenge.provider=gandiv5

Pour OVH, ou pour un autre registrar, il faudra bien le changer :

        - --certificatesresolvers.letsencrypt.acme.dnschallenge.provider=ovh

C'est parti !

# On lance le conteneur
docker compose up -d
# on check les logs
docker logs -f

Attendez quelques instants que les logs se calment, et allons tester tout ceci avec un conteneur de test.


version: "3"
services:
whoami:
image: "traefik/whoami"
container_name: "simple-service"
labels:
- traefik.enable=true
- traefik.docker.network=frontend
- traefik.http.routers.whoami.tls.certresolver=letsencrypt
- traefik.http.routers.whoami.tls.domains[0].main=${DOMAIN}
- traefik.http.routers.whoami.tls.domains[0].sans=*.${DOMAIN}

- traefik.http.routers.whoami.rule=HostRegexp(`{sub:[a-zA-Z0-9-]+}.${DOMAIN}`) || Host(`${DOMAIN}`)
- traefik.http.routers.whoami.entrypoints=websecure

networks:
- frontend

networks:
frontend:
external: true

Notez la regex sur la règle DNS. Elle permet de matcher tous les sous-domaines de votre domaine. Sexy isn't it ?

Si tout ce passe bien, dans les logs de Traefik, vous devriez voir quelque chose comme ça :

 traefik_wild  | time="2023-11-08T16:40:36Z" level=debug msg="legolog: [INFO] [tibillet.coop] Server responded with a certificate."                                                            traefik_wild  | time="2023-11-08T16:40:36Z" level=debug msg="Certificates obtained for domains [tibillet.coop *.tibillet.coop]" providerName=letsencrypt.acme ACME CA="https://acme-v02.api.le
tsencrypt.org/directory"

Si non, remontez bien les logs, le problème est forcément indiqué dedans.

En production ?

Ahah ! Par ce que vous pensiez que c'était fini ?

Le compose de Traefik contien une petite astuce, nous avons utilisé le serveur de test de Letsencrypt. Pourquoi ? Eh bien le serveur de production qui génère de vrais certificats est soumis à une limite du nombre de demande.

Je l'ai découvert à mes dépens, en voulant tester un peu trop de fois mon système, j'ai dû attendre quelques heures pour pouvoir relancer un nouveau certificat... Le serveur de test nous permet par contre de se planter sans limite. J'adore.

Pour passer en production, lorsque les logs du conteneur traefik vous indiqueront que tout roule, il suffit de commenter la ligne suivante :

#      - --certificatesresolvers.letsencrypt.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory

Et hop, relancer en mode daemon :

docker compose up -d

Enfin, re-lancez le conteneur whoami et vérifier qu'il matche bien. Remplacez bien sur le DNS par le votre, lancez le conteneur, et allez vérifier sur votre navigateur que le certificat est valide pour tout les sous-domaines que vous souhaitez (https://patate.votre_dns , https://prout.votre_dns, etc...)

Si ça coince, rechargez, videz vos certifs auto générés, et enfin regardez les logs Traefik, ce dernier vous signalera forcement le problème dans un message d'erreur.

Sources et liens utiles :

· 4 minutes de lecture
Jonas Turbeaux

/img/federons/decollage.jpg

Nous allons détailler ici la préparation d'un serveur sous distribution Debian (ou Ubuntu) pour acceuillir toutes nos solutions libres que nous proposons dans la coopérative.

Préparation du système

Mises à jour du système

sudo apt update
sudo apt upgrade -y
sudo reboot

Sécuriser le serveur

Connexion SHH par clé

# Depuis votre ordinateur client
ssh-copy-id <user>@<ip>
# ou ajouter votre cle id_rsa.pub directement sur le serveur
nano .ssh/authorized_keys

Changer le port d'écoute du service SSH et obliger la connexion via clé ssh

sudo nano /etc/ssh/sshd_config
# Port 22
Port 2252 # choisissez un port entre 1024 et 65535

# On en profite pour autoriser l'agent forwarding
# Cela sera trés utile pour pull/push des dépots git avec sa propre identité
# plutôt que celle du serveur.
AllowAgentForwarding yes

# Pour encore plus d'efficacité, on force la clé ssh.
# L'user n'en sera que plus reconnaissable, avec sa clé et son agent
# Attention à bien backuper votre clé. Si vous la perdez, vous perdez la main sur le serveur.

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no


Attention, sur les serveurs VPS Ovh, un fichier de conf' ssh se cache dans le dossier /etc/ssh/sshd_config.d/ et permet la connexion via mot de passe. C'est utile pour la première connexion, mais ^ensez à le supprimer si vous voulez forcer la connexion par clé.

On recharge le daemon ssh :

sudo service sshd reload

Installer Crowdsec

Crowdsec est une solution open source très utile pour gérer la sécurité de votre serveur. Il utilise une liste de banissement d'ip géré par la communauté, surveille les iptables, et peut même s'interfacer avec un reverse proxy pour surveiller les requetes http. Plus d'info ici :

Avant d'installer la solution, il est nécéssaire de créer un compte gratuit sur leur site.

curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash
sudo apt-get install crowdsec
sudo apt install crowdsec-firewall-bouncer-iptables

Allez sur l'interface Crowdsec et générez votre token d'invitation :

Une commande du type suivant vous sera proposé :

sudo cscli console enroll ****

Lancez la, puis accepter l'invitation sur l'interface web.

Rebootez le serveur.

Installation des dépendances

Mes ptits softs que j'aime utiliser :

sudo apt update
sudo apt install git byobu htop borgbackup

Docker :

# Un script d'installation est disponible, si vous ne voulez pas le faire a la main.
curl -fsSL https://get.docker.com -o get-docker.sh
# Attention ! Vérifiez toujours le contenus des scripts téléchargé avant de les lancer en sudo !
sudo sh get-docker.sh
# Ajoutez votre utilisteur au groupe docker
sudo usermod -aG docker $USER

Relancez une nouvelle session utilisateur pour prendre en compte les changements de groupes et vérifiez que vous avez bien les droits :

docker ps

Traefik

Traefik est un service de reverse proxy. C'est lui qui gère la redirection du conteneur depuis votre DNS et qui s'occupe du chiffrement HTTPS grâce à la formidable initiative de lets'encrypt.

Pour le faire tourner, vous devez avoir un nom de domaine qui pointe vers l'ip de votre serveur. Ajoutez un champ A sur votre admin DNS.

#clonez le dépot
git clone git@github.com:TiBillet/Traefik-reverse-proxy.git
cd Traefik-reverse-proxy
# Creez le sous réseau "frontend" commun
docker network create frontend
# Lancez les conteneur en mode daemon
docker compose up -d
# Vérifiez que le conteneur tourne et qu'il écoute bien les ports 80 et 443 :
docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED         STATUS         PORTS                                                                    NAMES
7f27255b935a traefik:chevrotin "/entrypoint.sh --lo…" 5 seconds ago Up 4 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp traefik

Testons Traefik :

Lançons un conteneur de test pour savoir si tout tourne bien :

cd Traefik-reverse-proxy/test_conteneur
cat "DOMAIN=localhost" > .env # créons un fichier .env qui sera lu par compose
docker compose up

Si vous allez dans https://test.localhost, vous devriez voir une page whoami !

Si vous avez un DNS qui pointe vers l'ip de votre serveur, changez le .env en conséquence pour avoir une connexion chiffrée en TLS !

Conclusion

Et Hop ! Notre serveur est prêt pour acceuillir tous nos services futurs. Dans un prochain article, nous allons voir comment installer Traefik en mode Wildcard pour le moteur TiBillet d'adhésion, de reservation et d'agenda fédéré !

· 11 minutes de lecture
Jonas Turbeaux

/img/federons/fedow_logo.jpg

TiBillet/FEDOW : FEDerated and Open Wallet.

C'est quoi FEDOW ?

Résumé :

Outil FLOSS de création et de gestion d'un groupement de monnaies locales, complémentaire et citoyenne (MLCC) au sein d'un réseau fédéré.

S'intégrant aux outils TiBillet il permet l'utilisation de portefeuilles dématérialisés dans différents lieux associatifs, coopératifs et/ou commerciaux.

Enfin, Fedow intègre des principes de monnaie fondantes dans une chaine de block par preuve d'autorité, transparente, non spéculative et non énergivore.

Code source et documentation technique publiés sous licence AGPLv3 :

https://github.com/TiBillet/Fedow

Manifeste pour l'appropriation d'une économie locale, sociale et solidaire.

Moteur libre et open-source de gestion de monnaies temps et/ou locale.

Parce qu'une banque peut être un logiciel libre : Nous n'avons pas besoin de blockchain spéculative, de NFT, DeFi ou Dapp ou de tout autre battage techno-solutionniste.

Tout ce dont nous avons besoin, c'est d'un moteur de création monétaire, de gestion de compte et de transactions. Le tout sous une gestion fédérée et transparente, pour créer des réseaux de points de vente acceptant des monnaies locales, des monnaies temporelles ou même des monnaies qui ne sont pas des monnaies.

Un outil simple pour créer une petite banque à l'échelle d'un petit ou d'un grand territoire et soutenir une économie locale, sociale et inclusive.

Pourquoi ?

Chez Code Commun (la coopérative numérique qui développe l'écosystème TiBillet), nous pensons que le logiciel libre couplé à des pratiques de gouvernance ouverte et transparente pour une économie sociale et solidaire sont les conditions d'une société que nous souhaitons voir émerger.

Avec Fedow, qui s'inscrit dans l'écosystème TiBillet, nous souhaitons permettre à chacun de créer ou rejoindre une fédération de monnaies locale ou temps et de participer à sa gouvernance.

Nous ne croyons pas aux solutions technologiques promises par le Web3 : Blockchains énergivores, création de valeur sur du vide, bulles spéculatives, marchés d'échanges dérégulés, gourous milliardaires… Autant de promesses populistes d'empuissancements non tenues au service d'une économie ultra-libérale de la rareté et de la spéculation.

Ceci dit, nous ne jetons pas le bébé avec l'eau du bain.

Nous pensons que les entreprises humaines, coopératives et locales peuvent (doivent ?) être soutenues par des outils numériques libres pour construire des structures bancaires locales et coopératives au service d'une économie réelle.

Nous pensons que les technologies de blockchain peuvent aider en garantissant la sécurité, la transparence et la gouvernance partagée : The code we own is law.

Nous souhaitons construire Fedow dans ce sens : un outil numérique simple et compréhensible par chacun pour une économie réelle, non spéculative et transparente.

L'économie réelle et la blockchain éthique

Imaginons un livre de compte tenu par tous les acteurs d'une coopérative.

Dans ce livre de compte, chaque acteur peut créer sa propre monnaie et peut (ou non) l'échanger à un taux fixe avec les autres monnaies de la coopérative.

Une monnaie fédérée à l'ensemble des acteurs est créée, indexée sur l'euro pour que chaque monnaie puisse s'échanger et servir à l'économie réelle des biens et services.

D'autres type de monnaies non indexée sur l'euro peuvent être créées : Monnaie temps pour s'échanger des services ou valoriser le bénévolat, monnaie "cadeau" pour analyser les stocks offerts, monnaie "ticket resto" pour gérer des repas des invités, et même monnaie "libre" compatibles avec d'autres systèmes comme la June.

Couplés au reste des outils de TiBillet, il est alors possible de créer des points de ventes, des caisses enregistreuses, des rapports de comptabilité légaux et des boutiques en ligne qui acceptent indifféremment les monnaies locales et fédérées du réseau, comme des espèces ou cartes bancaires.

Tout ceci avec du matériel DiY et du software low-tech, en favorisant au maximum le réemploi et le reconditionnement de matériel existant, et en utilisant une preuve d'enjeu comme mécanisme de consensus solide, sécurisé et transparent de validation (cf explications plus bas).

Financement, pérennisation du projet et lutte contre la spéculation.

Imaginons un mécanisme qui puisse à la fois :

  • Inciter de nouveaux acteurs à rejoindre la fédération ou en créer de nouvelles.
  • Financer le développement du projet libre et coopératif (Problématique récurrente dans le milieu des logiciels libres).
  • Lutter contre la spéculation et l'accumulation des capitaux pour une économie réelle et non financiarisée.

Une idée a été retenue. Elle a le mérite de résoudre les trois problématiques soulevées et s'inspire fortement de la monnaie fondante théorisé par l'économiste Silvio Gesell.

Concepts :

  • Tout le matériel nécessaire est produit par la coopérative et distribuée à ses acteurs à prix coutant. (matériel de points de vente, TPE, carte RFID, logiciel comptable, e-boutique, etc... voir TiBillet)
  • Chaque utilisateur dispose d'un portefeuille numérique qui lui permet d'utiliser toutes les monnaies du réseau.
  • Chaque lieu de point de vente est un nœud du réseau et est considéré comme un point de change.
  • Les portefeuilles sont utilisables à vie et sans frais pour les utilisateurs ni pour les nœuds.
  • Un demeurage est appliqué sur les portefeuilles sous la condition suivante : Si la monnaie n'est pas utilisée sous un certain délai (un an ou plus?) elle fond. Une partie est prélevée pour être réinjecté dans le réseau coopératif.

Les principes du demeurage et de la monnaie fondante permettent de favoriser la circulation des capitaux. En intégrant ce mécanisme dans le code de Fedow, nous tentons d'inciter la création d'un écosystème redistributif, social et solidaire.

Plus vous encouragez vos utilisateurs à utiliser une monnaie locale, plus vous récolterez une partie de la monnaie fondante issu du demeurage.

Ce mécanisme propose une solution incitative à la circulation de monnaie(s) locale(s) qui est une grande problématique de beaucoup de MLCC (monnaies locales citoyennes et complémentaires).

Je suis un utilisateur lambda, en pratique ça donne quoi ?

  • J'adhère et donne de mon temps dans une association de quartier qui utilise TiBillet pour gérer ses adhésions : je reçois une carte de membre et l'association me crédite de la monnaie temps.
  • Je peux dépenser cette monnaie temps pour réserver des heures d'utilisation d'un fablab ou d'un espace de travail partagé.
  • Je scanne ma carte et je peux la recharger en ligne. Je change des euros contre de la monnaie fédérée.
  • Je réserve une place dans un festival partenaire de la coopérative qui utilise le système de cashless et de billetterie de TiBillet.
  • J'achète le billet, des boissons et de la nourriture sur place avec cette même carte préalablement rechargée : Le festival reçoit de la monnaie fédérée.
  • Le festival peut échanger cette monnaie fédérée contre des euros, ou s'en servir pour payer ses prestataires avec tout le bénéfice d'une monnaie locale complémentaire et citoyenne "MLCC".
  • Il me reste de la monnaie sur ma carte. Je peux la dépenser dans un autre lieu qui utilise TiBillet/Fedow ou la garder pour le prochain festival : Elle est valable à vie.
  • Je l'oublie dans un tiroir : Je suis régulièrement rappelé à l'utiliser via les newsletters de la fédération qui font la promotion des évènements associatifs et coopératifs du réseau.
  • Si ma carte reste inactive pendant un certain temps, la coopérative récupère une partie du contenu du portefeuille et le réinjecte dans le développement du réseau.
  • La coopérative se réunit régulièrement pour faire le point sur la circulation des monnaies et choisir les projets dans lesquels réinvestir l'argent récupéré.

(Exemple possible : 1/3 pour le nœud (organisateur de festival, association...), 1/3 pour un fond commun de soutien aux projets associatifs et coopératifs, 1/3 pour la maintenance et le développement de l'outil.)

Blockchain bas carbone et mécanisme de confiance : La preuve d'enjeux (PoS) et la preuve d'autorité (PoA) :

Ou comment répondre à la grande question : Comment faire pour avoir confiance en un système bancaire décentralisé sur lequel repose de l'argent réel ?

[ATTENTION DISCLAIMER PARTIE VULGARISATION TECHNIQUE CRYPTO !]

Pour créer un système décentralisé mais sécurisé et fiduciaire, le Bitcoin a proposé la preuve de travail (Proof of Work) : Plus on est nombreux à vérifier, plus il est difficile de falsifier le document comptable car il faut convaincre la majorité pour faire consensus.

Pour encourager le nombre, il est proposé de récompenser les validateurs. Et pour savoir quel validateur va récupérer la récompense, on leur propose une énigme. Celui qui réussit à la résoudre gagne la récompense et valide par la même occasion le bloc de transaction.

Le reste du groupe vérifie ensuite que ce bloc a bien été validé correctement et tente de résoudre l'énigme suivante. On appelle ça "miner" et cela ne peut se faire qu'à l'aide d'ordinateur très puissants.

Résultat : c'est super sécurisé car beaucoup de monde vérifie chaque transaction.

Corollaire : c'est très (trop) énergivore au point d'en être insoutenable. (Et ne parlons même pas des mécanismes de rareté et de spéculation qui finissent par achever ce système à nos yeux...)

La preuve d'enjeu (Proof of Stake) a été proposée très vite comme une alternative à la preuve de travail (Proof of Work). Dans un système PoS, il n'y a pas de concept de mineurs, de matériel spécialisé ou de consommation massive d'énergie.

Pour être un validateur, vous devez prouver que vous avez intérêt à ce que tout le système reste bien valide. Chez Ethereum, la deuxième blockchain la plus valorisée, vous devez verrouiller une quantité variable de capital comme preuve d'intérêt et vous êtes récompensé en fonction de cette quantité verrouillée.

Ce système est beaucoup moins énergivore, mais il a tendance à favoriser une oligarchie car n'importe qui peut devenir un nœud : il suffit d'être riche...

Avec Fedow, c'est un peu différent. Il est necéssaire de vérifier votre identité comme celle de vos utilisateurs. La preuve d'enjeu, c'est vous !

Cette preuve d'enjeu, c'est la quantité de monnaie fédéré que vous récolterez en installant TiBillet/Fedow. Vous avez intérêt à ce que les comptes soient bien valide car vous en possédez une partie des actifs.

Dans ce système, il n'y a pas de concept de mineurs, de matériel spécialisé ou de consommation massive d'énergie. Tout ce dont vous avez besoin, c'est d'un ordinateur ordinaire sous linux.

Et cet ordinateur, vous l'avez déjà : il héberge votre instance TiBillet. Validez la co-optation ou créez votre réseau Fedow, et votre instance TiBillet devient un nœud qui valide les transactions de tout le réseau en toute transparence.

La preuve d'enjeu, c'est votre instance liée à votre identité. Plus exactement, ce mécanisme de consensus dérivé du PoS est appelé une preuve d'autorité (PoA).

En pratique :

  • Créez ou rejoignez le nœud primaire Fedow de votre région ou réseau.
  • Une fois votre identité validée, votre instance devient un nœud et vous validez les transactions avec les autres validateurs du réseau fédéré.
  • Chaque nœud participant fait de même. Si tout le monde est d'accord, alors la transaction est validée. Tout le monde à une copie du même livre de compte : le réseau est résilient aux pannes, décentralisé, immuable et transparent.
  • En contrepartie de votre participation à la sécurisation du livre de compte commun, vous recevrez une partie des frais prélevés lors de la revalorisation de la monnaie fondante (le demeurage).

C'est quoi la différence finalement avec une autre blockchain ?

Contrairement à la majorité des crypto-actifs, il n'y a pas de blocks fraîchement créés dans le cadre de la récompense pour les validateurs. La monnaie fédérée est émise dans une économie réelle.

Cette émission est réalisée par les adhérents et utilisateurs de vos lieux lorsqu'ils échangent de vrais euros pour recharger leur carte cashless de festival ou d'adhésion associative.

La monnaie est bien réelle. Elle n'est pas volatile. Le moteur de l'application et le consensus de validation s'assurent qu'il existe et existera toujours 1€ de disponible en banque pour 1 token fédéré.

Nous ne sommes pas une startup. Notre but n'est pas de lever des fonds en crypto-actif ou d'entrer en bourse. Nous ne prélevons pas de pourcentage sur les transactions dans le but de revendre les tokens que nous créons nous même sur un marché spéculatif.

Nous construisons TiBillet/Fedow au sein de tiers-lieux populaires, de coopératives et associations culturelles dans le but de construire des communs.

Nous ne souhaitons pas un Fedow pour contrôler un actif financier, mais des Fedows pour des mises en réseaux de lieux.

Nous sommes une société coopérative d'intérêt collectif, et nous invitons tous les acteurs de TiBillet à devenir sociétaires pour décider ensemble de l'évolution du projet.

Nous sommes CodeCommun.Coop, Venez discuter avec nous !

Projet construit, financé et testé avec le soutien de :

Contact :

Sources, veille et inspirations

Sur la supercherie ultra libérale du web3 et des applications décentralisés (Dapp) :

Sur la monnaie fondante et son auteur :

Sur les relations entre consommation, écologie et crypto :

Sur les consensus de validation de blockchain :

· Une minute de lecture
Jonas Turbeaux

/img/federons/design_head.jpg

Design Billetterie

TiBillet est construit sur un modèle de SaaS (Software as a service) : Un serveur peut héberger plusieurs instances de projets.

Un serveur peut être monté pour un territoire. Chaque lieu qui souhaite participer à un agenda commun peut rejoindre le serveur.

Qu'il soit organisateur, artiste, ou porteur de plusieurs projets, chaque évènement sera visible sur sa page personnelle et sur l'agenda commun.

D'une pierre deux coups, vendez vos billets en ligne et participez à un agenda commun !

JPG :

/img/federons/Design-billetterie-sept23.jpg

SVG et fichier excalidraw:

Document de travail :

· 4 minutes de lecture
Jonas Turbeaux

/img/federons/04-start_fede_notitle.png

Historique et origine

A l'origine du projet TiBillet, il y a le Manapany Festival et l'association organisatrice : Les 3Peaks. Nous étions une bande de joyeux.ses bidouilleur.ses.s et développeur.ses.s bénévoles. Nous avions décidé de créer nos propres outils numériques principalement pour une raison : nous avions envie d'apprendre à le faire nous même :)

En dehors du festival annuel, l'association hébergeait un café associatif ouvert régulièrement et organisait des évènements culturels mensuels avec une contrainte : si l'entrée était libre à tous et toutes, il nous fallait un outil pour gérer les adhésions associatives et les paiements des consommations. Pourquoi ne pas continuer à utiliser la carte NFC cashless du festival tout au long de l'année ?

En même temps, nous regardions comment les solutions existantes des professionnels du secteur fonctionnaient : Carte et bracelets NFC à usage unique, remboursement limité dans le temps, prix prohibitif pour l'organisateur et le public... Nous ne voulions vraiment pas reproduire un modèle qui semblait être juste un moyen de faire payer plus les festivaliers...

Voici que la carte d'adhésion 3Peask est née : Valide à vie, gratuite, rechargeable en ligne, remboursable à tout moment, utilisable au café associatif toute l'année comme au festival, elle permettait de gérer un point de vente et une caisse enregistreuse tout en s'assurant que le membre associatif était à jour de sa cotisation.

Et ça a cartonné ! Avoir plus de 800 membres à l'année fut une expérience très enrichissante. Nous développions TiBillet au fur et à mesure des besoins, des remarques et des idées de nos membres : nous codons un outil que nous utilisons au quotidien.

Aujourd'hui (Juin 2023), après 6 ans de développement, la carte TiBillet permet tout ceci :

  • Carte d'adhésion associative et d'abonnement.
  • Portefeuille pour paiement sans contact (Cashless) :
    • En euro rechargeable en ligne et/ou sur place.
    • En points cadeau, dans le but de comptabiliser les ventes offertes.
    • En monnaie temps, pour une valorisation du bénévolat.
  • Système de prise de commande avec imprssion de ticket en cuisine.
  • Billetterie en ligne avec paiement par carte bancaire via Stripe.

Le Pôle régional des musiques actuelles

Lors des rencontres de la filière culturelle organisée en 2016 par le pôle régional des musiques actuelles de la réunion (PRMA), et le ministère de la culture, le projet TiBillet est présenté et reçoit un accueil très positif. Une petite subvention est alors débloquée pour réaliser un "Proof of concept" en dehors du festival de Manapany : TiBillet s'installe au Bisik, un lieu culturel à l'est de la réunion.

Communnecter.org

En 2020, nous avons rencontré l'équipe de Communecter.org, un réseau social libre et open source. Un appel à projet venant du secrétariat général aux affaires régionales de la réunion (SGAR) est lancé et une demande de subvention commune est rédigée. Succès !

La Réunion des Tiers Lieux.

Début 2022, le collectif "La Réunion des Tiers Lieux" (RTLx) se construit et propose des chantiers de travail collaboratif. TiBillet est utilisé à la Raffinerie de Savanna, un tiers lieu éco-culturel et artistique à Saint Paul. RTLx se propose de financer une partie du développement de TiBillet pour l'adapter aux besoins des tiers lieux.

Fond propre

Avec l'aide du dossier SGAR/Communnecter et de RTLx, l'équipe de bénévole qui construit TiBillet se motive pour passer au niveau supérieur. Des fonds propres sont investis, du matériel est acheté et zou !

Au menu : Portefeuille, agenda et billetterie fédéré.

L'idée : Utiliser la même carte d'adhésion sur tout un territoire, réer des monnaies locales à la demande et donner à chacun la possibilité d'auto héberger ses données.

Argent public ? Code Public !

Car nous pensons que le modèle coopératif vaut mieux qu'une startup, nous créons alors une Société Coopérative d'Intérêt Collectif (SCIC). Orientée développement de logiciel libre, la coopérative Code Commun est née.

Et en pratique ?

En pratique, les outils TiBillet sont expérimentés dans de de nouveaux lieux et deux grands dépôts de code sont maintenus pour favoriser la contribution.

On vous invite à farfouiller dedans, et on vous donne rendez vous dans les prochaines notes de blogs pour les détails !

· 2 minutes de lecture
Jonas Turbeaux

Deconstruire pour decentraliser.

Fini le gros bloc PHP. La billetterie, qui s'occupe de gérer les paiements en ligne (recharge cashless via stripe), les réservations et les ventes de billet a été complètement repensée.

/img/federons/06-blockcentral.png

Première étape : L'agenda fédéré.

En avant avec Django ! Le framework web en Python est déja utilisé coté cashless, nous avons tout repensé depuis la base pour faire un modèle dit de SaaS (Software as a service). L'idée est de pouvoir utiliser la puissance combinée du moteur de schéma PostgreSQL pour des applications multi-tenant.

Derrière ce vocabulaire un peu barbare se cache une idée toute simple : Un seul serveur pour gérer plusieurs instances qui se partagent des informations communes.

Autrement dit, plutôt que d'avoir plein de serveurs séparés qui stockent chacun peu ou prou les mêmes données (carte, utilisateurs, évènements, etc... ), nous mutualisons tout un territoire sur une seule "Stack".

/img/federons/07-tenant-part1.png

Certaines données, comme les utilisateurs et l'agenda sont partagées entre tous les acteurs.

D'autre sont uniques à chaque instance : Évènements, adhésions, information générales, cartes cashless etc ...

/img/federons/08-samedata.png

Mais surtout, ce système nous permet de faire une présentation de TOUS les évènements présents dans l'instance: Nous l'avions nommé la META, mais bon... Yen a un qui nous a piqué le nom xD ...

Et hop ! Agenda Fédéré !

/img/federons/09-agenda.png

Ici nous parlons de concerts et d'artiste. Mais il est tout à fait possible d'imaginer des réunions, des marchés d’artisans, des festivals, des locations de salle de répetes, des randonnées etc etc ...

C'est un moteur évènementiel de données partagées. Les idées qui permettent de l'exploiter sont nombreuses !

À l'heure où nous écrivons ces lignes (octobre 2022), ce système est prêt et mis en production depuis quelques jours.

A vous de le tester ! Venez discuter avec nous pour vos retours et vos idées !

Et ma carte dans tout ça ?

/img/federons/10-rapport.png

On y vient ! C'est la suite logique, non ? Et si nous ajoutions dans les données communes les cartes NFC déja utilisées par les lieux ?

/img/federons/11-cartecashless.png

Après l'agenda, libérons les cartes NFC !

À suivre dans la 3ᵉ partie ...

· 3 minutes de lecture
Jonas Turbeaux

Cet article est un tout petit peu technique, mais tout à fait accessible à quiconque souhaite plus d'information sur le chantier en cours.

Avec le collectif La Réunion des Tiers Lieux (RTL) se lance un grand chantier autour des outils communs. Nous détaillons ici une partie, celle de la construction et la decentralisation d'un
agenda et d'un portefeuille cashless partagé à tout un territoire.

Introduction

Aujourd'hui, lorsque l'on veut organiser des évènements, beaucoup de solutions existent.

Et rare sont les routes pour communiquer entre ces solutions : il faut souvent apprendre à jongler.

/img/federons/01-jongler.png

De plus, chaque acteur de la filière s'affaire souvent dans son coin, multipliant ainsi les données souvent redondantes.

Parfois même, nous alimentons des plateformes silo qui enferment et captent nos données sans avoir la main sur la visibilité de nos actions : nous sommes souvent devenus dépendant des algorithmes des GAFAM qui décident de notre visibilité.

/img/federons/02-silo.png

TiBillet ?

Avec TiBillet, nous participons aussi malgré nous à cette isolation. Depuis 2010, nous construisons des outils numériques pour l'évènementiel culturel : Chaque lieu peut posseder une carte d'adhésion et de paiement sans contact (Cashless) et son instance de billetterie avec son agenda.

Le public peut réserver sa place de concert et recharger sa carte en ligne. Chaque lieu à son instance, ses membres et utilisateurs bien à lui.

Et sur un petit territoire comme la Réunion, c'est souvent les mêmes utilisateurs ...

/img/federons/03-multiples.png

Au commencement ...

Au tout début, la "Stack' TiBillet (ensemble de boites techniques) était très centralisé :

/img/federons/05-stackblock.png

En 2018 vient un premier intérêt public avec l'aide du PRMA (Pole Régional des musique actuelles) de la Réunion.

On commence à penser fort à libérer le code et créer une coopérative pour supporter le développement.

Puis vient la rencontre avec les tiers-lieux de La Raffinerie, de Vavang'Art, et avec le réseau social libre Communecter.

Le projet de portefeuille fédéré de RTL ne fait que confirmer nos envies communes et nous donne les moyens de développer un nouveau modèle.

Aujourd'hui (Octobre 2022), le chantier à beaucoup avancé. Il reste beaucoup à faire et la feuille de route commence à bien se dessiner :

Réunion des Tiers-Lieux

Avec la Réunion des Tiers-lieux, nous avons lancé le chantier Outil Commun pour fédérer les pratiques, éviter de multiplier les données et mutualiser le matériel.

Du côté de la team TiBillet, nous nous sommes affairés à construire les briques d'un logiciel libre utilisable par tout un territoire et depuis plusieurs mois, nous changeons le moteur de notre application pour pouvoir construire un outil commun et fédéré de billetterie, d'agenda culturel et de cashless.

/img/federons/04-start_fede.png

Pour réussir à construire TiBillet en outil fédéré, techniquement, il a fallu changer pas mal de choses. Et pas uniquement notre vision globale :)

Dans les grandes lignes, nous souhaitons séparer le développement et l'expérimentation en trois grandes étapes.

À suivre dans la deuxième partie ...

· Une minute de lecture
Jonas Turbeaux

Dans le cardre du chantier Outil Commun de la Réunion des Tiers-Lieux (RTL), nous engageons une réfléxion autour d'une carte TiBillet partagée entre plusieurs Tiers-lieux.

/img/cr_220310_portefeuille_partage/FEDERONS-01.png

/img/cr_220310_portefeuille_partage/FEDERONS-02.png

/img/cr_220310_portefeuille_partage/FEDERONS-03.png

Une roadmap a été travaillée avec un résumé des budgets et des finances.

Pour ceux qui veulent aller vraiment loin dans la réflexion, nous avons créé un document qui recense un peu de littérature sur tout ce qui touche de près ou de loin à ce chantier.

C'est pensé comme une bibliothèque commune : Sentez-vous libre de rajouter vos articles et vos connaissances : https://nuage.tierslieux.re/s/sMPScgSPNgwRrWD

Prochaine réunion dans le lundi 17 octobre 2022, sur le Discord de la coopérative TiBillet. Ordre du jour : Portefeuille fédéré -> Remontez-nous vos idées et besoins !

· 4 minutes de lecture
Jonas Turbeaux

Ce billet de blog n'en est pas vraiment un. C'est un recceuil de lien qui nous plait, qui nous inspire, ou qui nous remets en questions sur nos pratiques.

N'y voyez pas forcément une adhésion à chaque parti pris (Il y a par exemple des articles pros et scèptiques sur les cryptoactifs...), mais je ne doute pas que vous saurez deviner de quel bord nous penchons.

Fédérations

Fediverse

Le Fediverse est un réseau social multiforme qui repose sur une fédération de serveurs interconnectés. C’est un phénomène assez jeune encore, mais dont la croissance suscite déjà l’intérêt et des questionnements.

https://framablog.org/2021/01/26/le-fediverse-et-lavenir-des-reseaux-decentralises/

https://andre-ani.fr/divers-informatique/quest-ce-que-le-fediverse/

Communecter

Communecter est un partenaire de longue date. Plongez dans leurs outils !

https://peertube.communecter.org/videos/watch/00b4cc60-7d88-4b23-a775-b5bc69a1664e

Murmuration

Le protocole Murmurations est conçu pour permettre le partage décentralisé de données. Les exemples les plus évidents de son utilisation sont les cartes et les répertoires, mais ce n'est qu'un début. Dans ce billet de blog, nous explorons certains des autres concepts qui pourraient être construits sur Murmurations.

https://murmurations.network/2022/07/05/what-can-you-build-on-the-murmurations-protocol/

Schema.org

Schema.org est une activité collaborative et communautaire dont la mission est de créer, maintenir et promouvoir des schémas pour les données structurées sur Internet, sur les pages Web, dans les messages électroniques et au-delà.

Licences libre et open source

Licences open source : Trés bonne entrée en matière dans le monde fabuleux du libre :)

https://www.youtube.com/watch?v=HGid_PYx0Fo

Selon nous, le logiciel et la culture libre restent au cœur des actions de l’association, mais deviennent un moyen, et non une fin. L’objectif devient alors de réfléchir et mettre en place des actions diverses qui facilitent l’émancipation des internautes.

https://framablog.org/2022/10/04/voyage-en-contributopia-ca-nous-a-fait-murir/

Organisations

Le feuilleton en 8 épisodes dont nous entamons aujourd’hui la publication n’est pas un simple mouvement d’humeur contre certaines dérives du militantisme mais une réflexion de fond sous l’angle de la psychologie sociale, nourrie et illustrée d’exemples analysés.

https://framablog.org/2021/07/09/quand-le-militantisme-deconne-injonctions-purete-militante-attaques-1-8/

Une asso qui se lance, comment ça marche ? Ou plutôt quels écueils ça rencontre, comment on peut les contourner, quel mode de gouvernance installer… ? Ces questions et bien d’autres qui agitent ses membres jusqu’à les rendre perplexes, Quentin et ses complices les ont affrontées au sein de l’association Picasoft… :

https://framablog.org/2022/09/05/de-la-bureau-cratie-a-la-tout-doux-cratie-refonder-la-gouvernance-associative/

Blockchain

OpenWallet et Hyperledger

Un projet modulaire et open-source qui permet aux entreprises de construire en utilisant la blockchain d'une manière qui leur convient.

Hyperledger est un projet hébergé par la Fondation Linux pour aider les développeurs et les entreprises à travailler ensemble pour construire des projets de blockchain collaboratifs. Il s'agit d'un collectif de blockchains et d'outils open-source que chacun peut utiliser pour créer ses propres grands livres distribués.

https://www.hyperledger.org/

https://decrypt.co/resources/hyperledger

https://decrypt.co/109593/linux-foundations-announces-open-source-digital-wallet-initiative-may-include-cryptocurrencies

Pour tout comprendre à la blockchain, un très bon article de vulgarisation :

Patrice, fondateur de la société Unblocked et Himran, en charge de son développement commercial et marketing, ainsi que Léo, directeur de projet, nous partagent leurs connaissances et leur vision sur la blockchain et les opportunités qu’elle génère : de l’explosion des NFT à de nouveaux cas d’usage. L’origine de la blockchain

https://blog.link-value.fr/democratisation-blockchain-potentiel-nft-nouveaux-usages-35c3ac3365f6

Technos BC :

Le Tangle, une nouvelle forme de BC.

" Le Tangle succède naturellement à la blockchain en tant que prochaine étape d'évolution, car il offre des fonctionnalités adaptées à la mise en place de solutions de grands livres distribués plus efficaces et plus évolutives."

https://wiki.iota.org/learn/about-iota/tangle

Plateforme paiement et crypto-actifs

UTRUST

Accepter le paiement en cryptomonnaie (Bitcoin, eGold) en tant qu'artisan, le cas pratique avec UTRUST : https://developpeur-freelance.io/blog/acheter-fromage-bitcoin/

Crypto scepticisme

Articles intéressants et critiques du monde des crypto-monnaies (crypto-actif) :

https://web3isgoinggreat.com

https://www.numerama.com/tech/1128614-la-crypto-reunit-les-meilleurs-reveurs-et-les-pires-escrocs-quand-meme-les-fans-de-cryptos-quittent-le-navire.html

https://www.lemonde.fr/pixels/article/2022/09/07/au-crypto-policy-symposium-les-sceptiques-de-la-cryptoeconomie-entrent-en-resistance_6140539_4408996.html

https://www.numerama.com/tech/1006000-bill-gates-demonte-les-nft.html

https://www.nextinpact.com/article/69429/1-500-informaticiens-crypto-sceptiques-interpellent-congres-americain

https://fredcavazza.net/2022/06/23/le-progres-ne-viendra-pas-des-nouvelles-technologies-mais-de-levolution-des-usages/

Crypto Enthousiastes

Articles intéréssants et enthousiastes sur les crypto actifs :

https://www.nextinpact.com/article/69454/le-plaidoyer-pro-crypto-dun-cryptographe-emerite

https://www.numerama.com/tech/1058914-elizabeth-stark-lactiviste-qui-veut-democratiser-le-bitcoin.html

Sur les GAFAM

On le sait bien : Google se permet de tranquillement lire tous les mails qui passent sur ses serveurs, ceux des boîtes Gmail ainsi que ceux adressés à des boîtes Gmail…

En général, le but est de refourguer de la publicité ciblée. Mais pas seulement. Une petite histoire (vraie) qui montre que les conséquences peuvent être autrement plus dramatiques…

https://framablog.org/2022/09/09/google-lespion-le-plus-con-du-monde/