CitizenZ

Blog Libre, Geek & Crypto

Projet de cryptomonnaie : et si la blockchain aidait les développeurs opensource ?

Rédigé par citizenz Aucun commentaire
Je viens de me lancer dans une drôle d'affaire : créer une cryptomonnaie !

C'est la mode en ce moment : les cryptomonnaies fleurissent plus vite que les coquelicots dans les champs ! Tout le monde fait sa cryptomonnaie.
Mais l'idée derrière une cryptomonnaie "réussie", le fond du projet qui amène à sa création est tout aussi intéressant que les lignes de code qui composent la blockchain.
J'ai assez vite tilté sur une idée : utiliser le blockchain pour rétribuer les développeurs opensource ! Les gros, les petits, les "pas-doués" comme moi, les "barbus" linuxiens, les poilus webmasters, etc.

Elphyrecoin est une crypto-monnaie "cryptonote" qui a pour but d'aider tous les développeurs opensource en utilisant la technologie blockchain à travers une manière humble mais concrète d'être rétribué pour leur travail.

Le monde Opensource est un univers génial: tout le monde peut participer et proposer des améliorations, idées, hacking, etc.
De nombreux logiciels bien connus proviennent de ce monde opensource (serveurs web, bases de données, sites web, logiciels vidéo et musicaux, logiciels d'images, réseaux sociaux , etc.)
Opensource ne signifie pas obligatoirement gratuit mais la plupart des logiciels opensource (qui sont placés sous une licence opensource, comme la GPL par exemple) sont gratuits.

Il y a plusieurs façons de rétribuer les développeurs opensource pour leur travail (en faisant un don par exemple) mais la plupart du temps c'est un travail bénévole dont la seule récompense est la joie ou la fierté d'avoir pu contribuer efficacement au développement d'un logiciel ou d'un projet ... Parfois, c'est même couteux pour le développeur qui doit payer de sa poche pour le serveur ou d'autres services.

Il est peut-être temps d'allier l'utile à l'agréable : si la blockchain pouvait permettre aux développeurs opensource, dans le cadre d'un système économique parallèle, d'échanger ou d'acheter des services, des outils, des produits, ne serait-ce pas génial ?
Aussi, cette nouvelle crypto-monnaie veut se concentrer sur cette idée.

Admettons que cette cryptomonnaie ne prenne aucune valeur (par rapport à une devise comme le Dollar ou l'Euro), cela ne serait pas obligatoirement négatif dans le sens ou il suffirait d'utiliser une sorte de plateforme qui redistribuerait des "parts" de cryptomonnaie pour une mise à disposition ou l'achat d'un service ou d'un produit. La valeur ne serait réelle que sur la plateforme et constituerait une sorte d'économie parallèle ou un système économique alternatif... comme il en existe beaucoup (monnaie libre, échanges sur la base du temps dans les Accorderies, etc.)

Bref : c'est un projet qui risque de me dépasser très vite si je n'ai pas un peu d'aide, d'ouverture et de soutien.
Donc si vous souhaitez donner un coup de main, participer au projet, entrer dans l'équipe ! Faites-moi signe ! (voir lien web et Discord plus bas pour tout contact)

Pour info, la cryptomonnaie est déjà créée, la blockchain est lancée (il y a 2 seed-nodes) et un pool de minage est en ligne :
Explorer de blocs : http://explorer.elphyrecoin.xyz

Qu'en pensez-vous ?
Pour me donner votre ressenti ou simplement échanger, rendez-vous sur le Discord de clevery.xyz : https://discord.gg/deyYjKs ou tout simplement n'hésitez pas à laisser sur ce site, vos appréciations (dans les commentaires de cet article).

Postfix, la fonction mail() de PHP et SMTPUTF8

Rédigé par citizenz 2 commentaires
J'ai dernièrement mis en place un formulaire de contact en php sur mon site web (serveur sous Ubuntu Server 16.04). La fonction mail() de PHP permettant d'envoyer le message du visiteur au webmaster.
Mais le code qui fonctionnait bien auparavant sur un autre serveur "similaire" me retournait désormais une erreur de type : "SMTPUTF8 is required but was not offered by host".
Après quelques recherches sur le Net, il s'avère qu'il faut ajouter le code suivant au main.cf de Postfix :
smtputf8_autodetect_classes = all

Sur la page du site de Postfix (http://www.postfix.org/SMTPUTF8_README.html ), il est bien précisé que si on a des paramètres non-ASCII pour "myorigin" ou "mydomain" ou que notre configuration introduit l'UTF-8 avec des aliases virtuels, conical mappings ou BBC mappings, alors on doit appliquer l’auto-détection SMTPUTF8 à tous les mails.
Un peu technique tout ça...

Améliorer le minage de cryptomonnaies avec son CPU

Rédigé par citizenz Aucun commentaire

Si on veut miner des cryptomonnaies avec son CPU, c'est possible (mais c'est long !). Autant avoir un bon processeur (I5, I7, XEON, etc.).
Pour obtenir un meilleur taux de hash (hashrate), il est important d'activer l'option "Huge Pages" (si vous avez un processeur "compatible").
Par exemple sur un Intel I5-2400, avec le mineur Xmrig-CPU (cryptonight), je faisais à peine du 120 H/s avec un processeur à 75 % (3 threads).
Avec le "Huge Pages" activé, je suis passé à 200 H/s.

Su un PC traditiopnnel, sous Ubuntu 16.04 par exemple, on peut activer facilement cette option :

# echo 'vm.nr_hugepages=128' >> /etc/sysctl.conf
# sysctl -p

... et on reboot

Mais sur un serveur OVH Kimsufi (par exemple), il va falloir installer un autre noyau (kernel) que l'original fourni par OVH car sinon vous allez vous retrouvez avec cette erreur :
sysctl: cannot stat /proc/sys/vm/nr_hugepages: No such file or directory
A moins qu'à l'installation vous ayez choisi d'installer le noyau de la distribution et pas celui d'OVH auquel cas, tout devrait fonctionner sans changement.

Installation d'un nouveau noyau sur le serveur d'OVH Kimsufi (exemple sous Ubuntu 16.04)
On met à jour :

# apt update
On installe le kernel de la distrib :
# apt install linux-image-generic
On déplace le kernel d'OVH :
# mkdir ~/ovh.d
# mv /etc/grub.d/06_OVHkernel ~/ovh.d
On met à jour Grub :
# update-grub
... et on redémarre... sur le nouveau noyau
# reboot

Basé sur l'article de Thomas (Virtubox) : jesuisadmin.fr/miner-du-monero-xmr-stack...

Petit compte-rendu de minage...

Rédigé par citizenz 1 commentaire

PARTIE 1 : le matériel
Cela fait plus de 6 mois que je mine...
Pas énormément, car mes moyens sont très limités. Je possède un rig de minage fait maison de A à Z :

  • le support, en bois : je me suis basé sur ce que j'ai vu sur le Net. Quelques découpes et quelques clous plus tard, j'obtenais un assez bon résultat à mon gout...
  • la carte mère (MSI B250 PC MATE) qui comporte quand même 2 x PCI-E x16 et 3 PCI-E x1
  • le processeur : un celeron basique 3 GHz
  • 4 GB de RAM DDR4
  • 1 clavier + 1 souris
  • 1 lecteur de carte USB 2.0 + une microSD 8GB
  • HiveOS (base Ubuntu)
  • 1 carte graphique Sapphyre RX570 4 GB (Elpida). En suivant les tutos et infos trouvées sur le site cryptofr.com, j'ai pu assez facilement changer le BIOS de la carte puis trouver des réglage d'overclocking qui me permettent de gagner encore en puissance de hash. Du coup ma carte fait du 810 H/s ce qui visiblement ne semble pas trop mal :)
  • 1 carte graphique MSI GTX 1050ti (Gaming X) 4 GB qui tourne aux alentours de 310 H/s (c'est à dire comme une GTX 760 !!!)

Pour la petite histoire, j'ai une autre carte : MSI GTX 760 Gaming X Twin Frozr que je n'ai jamais réussi à installer avec d'autres cartes, soit sous WINDOWS 10, soit sous Ubuntu voir ArchLinux ou Manjaro, soit sous HiveOS.
Dès que j'installe cette GTX 760 à côté des autres cartes, le système plante ou certaines cartes ne sont plus reconnues...
Étrange, je n'ai jamais pu avoir d'explications tangibles, outre le fait qu'il y ait un soucis de drivers et d'incompatibilité.
C'est ballot... et je suis "obligé" de mettre cette carte sur mon PC de bureau.
Seule, elle tourne à merveille (310 H/s pour du Monero par exemple avec XmRig).

Après plusieurs semaines à miner du Monero (XMR) et voyant le niveau de difficulté augmenter, j'ai dernièrement choisi de me tourner vers d'autres altcoins :

  • ETN (Electroneum) mais il semble que la difficulté est aussi augmentée ces derniers jours...
  • SUMO (Sumokoin)
  • GRFT (Graft)

J'ai notamment découvert un nouveau pool de minage FR cryptonote (anypool.fr/ ) mais ceci fera l'objet d'un prochain post !

A suivre PARTIE 2 : les résultats du minage... bientôt.

WebDAV, Nginx et XFCE : accéder à ses médias en ligne facilement

Rédigé par citizenz 1 commentaire

WebDAV c'est quoi ? Laissons faire les présentations par le Wiki Ubuntu :

WebDAV, en entier : Web-based Distributed Authoring and Versioning, est un protocole déjà ancien (1996) et curieusement peu connu. Il permet pourtant une chose essentielle : écrire sur le Web, au lieu de seulement surfer (c'est-à-dire seulement lire).
C'est un protocole ouvert, le W3C (organisme qui "normalise le web") en a confié le développement à l'IETF qui avait déjà normalisé HTTP.
Pour résumer, WebDAV est une extension du HTTP. Au delà des GET et POST bien connus, WebDAV rajoute les verbes PUT, DELETE, COPY, PROPFIND, etc. Pour les curieux, la norme est là : http://tools.ietf.org/html/rfc2518. Étant une simple extension au protocole HTTP, WebDAV fonctionne dans à peu près toutes les situations où la navigation n'est pas bloquée.

Ceci étant dit, j'avais besoin de configurer un accès web pour les fichiers vidéos situés sur mon serveur. Il existe pléthore de solutions de streaming etc. mais ça n'est pas ce que je souhaitais. L'idéal ? Ouvrir tous mes médias directement depuis mon "Explorateur de fichiers", Thunar en l’occurrence puisque je suis sous XFCE.

Je n'ai pas été chercher bien loin et je me suis souvenu de WebDAV, que j'avais déjà utilisé "rapidement" il y a quelques temps.

Objectifs ? Configurer Nginx avec WebDAV et pouvoir accéder tranquillement à mes fichiers depuis mon bureau. C'est parti.

NGINX

Pour configurer Nginx rien de bien compliqué. Il vous faut néanmoins et avant tout installer un nouveau paquet sur votre serveur afin d'utiliser WebDAV:

$ sudo apt install nginx-extras

Puis il faut créer l'hôte virtuel Nginx. J'ai choisi d'utiliser un domaine du type media.mondomaine.fr pour l'exemple. On va donc créer un fichier comme suit :

$ sudo vim /etc/nginx/conf.d/media.mondomaine.fr.conf

Dans ce fichier, nous allons placer les éléments suivants :

server {
        listen 80;
        server_name media.mondomaine.fr;
        root /CHEMIN/MONREPERTOIRE/FICHIERS; # ----> A CHANGER avec le bon chemin de votre répertoire
        index index.php index.html index.htm;
        access_log /var/log/media-access.log combined;
        error_log /var/log/media-error.log error;

        location / {
                try_files $uri $uri/ /index.html;
                client_body_temp_path   /temp;
                dav_methods             PUT DELETE MKCOL COPY MOVE;
                dav_ext_methods         PROPFIND OPTIONS;
                create_full_put_path    on;
                dav_access              user:rw group:rw all:rw;
                autoindex               on;
                auth_basic "Mot de passe :";
                auth_basic_user_file "/etc/nginx/passwd/media_pass";
}

        # PARTIE HTTPS
        listen 443 ssl http2; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/media.mondomaine.fr/fullchain.pem; # managed by Certbot ---> MONDOMAINE.FR A CHANGER
        ssl_certificate_key /etc/letsencrypt/live/media.mondomaine.fr/privkey.pem; # managed by Certbot ---> MONDOMAINE.FR A CHANGER
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

        if ($scheme != "https") {
                return 301 https://$host$request_uri;
        } # managed by Certbot

}

La première partie du fichier est "traditionnelle...

La deuxième partie Location / est plus spécifique. On peut y voir la configuration propre à WebDAV : dav_methods, dav_ext_methods, dav_access , ...

J'ai de plus protégé l'accès à mon répertoire avec un accès restreint, tout simple et très traditionnel, en créant premièrement un nouveau répertoire /et/nginx/passwd :

$ sudo mkdir -p /etc/nginx/passwd

... puis :

$ sudo htpasswd -c /etc/nginx/passwd/media_pass mumbly

Il n'y a plus qu'à rentrer le mot de passe associé à l'utilisateur mumbly. Si httpasswd ne fonctionne pas, installer le paquet suivant :

$ sudo apt install apache2-utils

Puis j'ai configuré une partie HTTPS avec certbot et le plugin --nginx. Je vous renvoie à mon post à ce sujet .

Une fois fait, on teste d'abord la config de Nginx avec :

$ nginx -t
Si tout est ok, on redémarre Nginx :
$ sudo /etc/init.d/nginx restart

Reste la partie "Bureau" sous XFCE et Thunar et ici rien de difficile. J'ai configuré cet accès sur un PC équipé de Xubuntu. Peut-être y aura t-il une "autre config" sous un autre système, je n'ai pas testé ailleurs.

Avec Thunar, on peut rentrer directement - dans la barre d'adresse - l'adresse de notre répertoire WebDAV de la manière suivante :

davs://mumbly@media.mondomaine.fr/FICHIERS # à adapter avec votre VRAI chemin ...

Voila ce que ça donne en "réel" sur mon PC :

Fil RSS des articles de cette catégorie