naos 2019/04/07 21:34

Ğ1 Duniter - Monnaie Libre

testé sur Debian Stretch 9.8

“Ğ1” prononcé “june”, le “Ğ” s'écrit avec Ctrl+Shift+u + 011E

Bref résumé sur l'utilisation de cette monnaie

Ğ1 est une monnaie numérique qui fonctionne en mode décentralisé (vous pouvez créer un compte sur de nombreux serveurs). Une fois votre compte créé, vous avez besoin d'au moins 5 certifications pour être reconnu comme "membre", il faut donc rencontrer des gens (cf "Groupes Locaux" de https://forum.monnaie-libre.fr) Votre compte est gérable avec le site https://g1.duniter.fr ou sur smartphone avec l'application Cesium. Gannonce (https://gannonce.duniter.org) et Gchange (https://www.gchange.fr) sont les principales plateformes pour utiliser vos Ğ1.

Les instructions ci-dessous concernent l'installation de "Duniter-server" qui est le logiciel sur les serveurs fonctionnant en P2P Il est impératif de lire la licence avant de commencer l'installation: https://duniter.org/fr/wiki/licence-g1/

Plus d'informations sur cette monnaie ici: https://duniter.org/fr/comprendre/

Téléchargez et installez le dernier paquet duniter-server

https://git.duniter.org/nodes/typescript/duniter/tags

wget https://git.duniter.org/nodes/typescript/duniter/-/jobs/19802/artifacts/raw/work/bin/duniter-server-v1.7.16-linux-x64.deb
dpkg -i duniter-server-v1.7.16-linux-x64.deb

Créez une configuration Apache

vim /etc/apache2/sites-available/g1.conf
<VirtualHost *:80>
   ServerName VOTREDOMAINE.TLD
 
   ErrorLog ${APACHE_LOG_DIR}/g1.error.log
   CustomLog ${APACHE_LOG_DIR}/g1.access.log combined
 
   RewriteEngine on
   RewriteCond %{SERVER_PORT} !^443$
   RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [L,R]
</VirtualHost>
 
<VirtualHost *:443>
   ServerName VOTREDOMAINE.TLD
 
   ErrorLog ${APACHE_LOG_DIR}/g1.error.log
   CustomLog ${APACHE_LOG_DIR}/g1.access.log combined
 
    SSLEngine on
    SSLCertificateFile      /etc/letsencrypt/live/VOTREDOMAINE.TLD/fullchain.pem
    SSLCertificateKeyFile   /etc/letsencrypt/live/VOTREDOMAINE.TLD/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/VOTREDOMAINE.TLD/chain.pem
 
    Header always set Strict-Transport-Security "max-age=31536001; includeSubDomains; preload"
 
    SSLProtocol             all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite          ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
    SSLHonorCipherOrder     on
    SSLCompression          off
    SSLSessionTickets       off
 
    Header always set X-Xss-Protection "1; mode=block"
    Header always set X-Frame-Options "DENY"
    Header always set X-Content-Type-Options "nosniff"
    Header always set Referrer-Policy same-origin
    Header set X-Forwarded-Proto "https"
    Header unset If-Modified-Since
    Header unset If-None-Match
    Header always set Content-Security-Policy "default-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; img-src 'self' data: https:; media-src 'self' https:; style-src 'self'; font-src 'self'; script-src 'self'; connect-src 'self' ws://VOTREDOMAINE.TLD; upgrade-insecure-requests;"
 
        <IfModule mod_rewrite.c>
        RewriteEngine On
 
        RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
        RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
        RewriteCond %{REQUEST_URI}  ^/ws2p            [NC]
        RewriteRule .* ws://localhost:20901%{REQUEST_URI} [P,QSA,L]
 
        RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
        RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
        RewriteCond %{REQUEST_URI}  ^/ws            [NC]
        RewriteRule .* ws://VOTREIPPUBLIQUE:10902%{REQUEST_URI} [P,QSA,L]
        </IfModule>
 
 
    ProxyPreservehost On
    ProxyRequests off
 
    ProxyPass /ws2p http://127.0.0.1:20901
    ProxyPassReverse /ws2p http://127.0.0.1:20901
 
    ProxyPass / http://VOTREIPPUBLIQUE:10902/
    ProxyPassReverse / http://VOTREIPPUBLIQUE:10902/
 
</VirtualHost>

Ajoutez la configuration Apache

a2ensite g1.conf
apachectl graceful

Créez le certificat SSL

certbot --apache certonly --rsa-key-size 2048 -d VOTREDOMAINE.TLD
apachectl graceful

Configurez le réseau

sudo -u duniter duniter wizard network
? IPv4 interface enp7s0 192.168.XXX.XXX
? IPv6 interface None
? Port 10902
? Remote IPv4 Enter new one
? Remote IPv4 VOTREIPPUBLIQUE
? Remote port 10902
? Does this server has a DNS name? Yes
? DNS name: VOTREDOMAINE.TLD

Ajoutez les règles Iptables

iptables -t filter -A INPUT -p tcp --dport 20901 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 10902 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 20901 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 10902 -j ACCEPT

Rendre persistant les règles Iptables

bash -c "iptables-save > /etc/iptables/rules.v4"

Ouvrez les ports sur votre Box/Routeur

Ports TCP 20901 et 10902

Activez le protocol WS2P Public

sudo -u duniter duniter config --ws2p-public

Configurez le mode WS2P

sudo -u duniter duniter config --ws2p-noupnp --ws2p-port 20901 --ws2p-host 127.0.0.1 --ws2p-remote-port 443 --ws2p-remote-host VOTREDOMAINE.TLD
sudo -u duniter duniter config --ws2p-remote-path /ws2p

Synchronisez les données depuis un pair

sudo -u duniter duniter sync g1.cgeek.fr

Lancez pour la première fois Duniter

sudo -u duniter duniter direct_webstart

Lancez le serveur Duniter avec l'interface web et la mise en RAM des identifiants

Une fois votre compte créé sur le site https://g1.duniter.fr ou sur smartphone avec l'application Cesium et obtenu les 5 certifications vous allez relancer Duniter avec vos identifiants de compte. Ainsi votre serveur passera du fonctionnement “mirroir” en mode “membre” permettant de calculer de nouveaaux blocs.

sudo -u duniter duniter direct_webstart --keyprompt

Accédez à l'interface web d'administration de Duniter

L'accès à l'interface web se fait par tunnel SSH (NE SURTOUT PAS rendre accessible l'interface web depuis internet)

ssh -CL 9220:localhost:9220 VOTREUTILISATEUR@VOTREDOMAINE.TLD -p VOTREPORT

http://127.0.0.1:9220 Interface Web Duniter

Soyez notifié en cas de nouvelle version de duniter-server

S'enregistrer sur https://git.duniter.org, réglez les paramètres de notification par email.

Informations diverses

Sources de l'article

  • g1.txt
  • Dernière modification: 2019/04/08 22:42
  • par naos