Comment contribuer

Hashiverse n'a aucune entreprise derrière lui ni serveurs propres. Sa résilience, sa disponibilité et sa résistance à la censure dépendent entièrement du nombre de serveurs indépendants présents dans le réseau. Chaque nœud que vous ajoutez rend le réseau plus difficile à attaquer, plus difficile à faire taire, et plus utile pour tous ceux qui s'y connectent. Si vous croyez à ce que Hashiverse cherche à être, faire tourner un serveur est la manière la plus directe d'aider.

La bonne nouvelle : ça coûte à peu près le prix d'un café par mois. Et si vous voulez contribuer davantage, le bon réflexe est de faire tourner plus de serveurs, pas un plus gros — dix machines à 5 $ réparties chez différents fournisseurs et dans différentes régions ont bien plus de valeur pour le réseau qu'une seule machine à 50 $.

Ce dont vous avez besoin

N'importe quel VPS bon marché chez n'importe quel fournisseur fera l'affaire — Hetzner, DigitalOcean, Vultr, Linode et bien d'autres proposent des machines adaptées pour environ 5 $/mois. Les exigences minimales sont modestes :

Les exigences en CPU et RAM sont minimales — le serveur est écrit en Rust et conçu pour fonctionner efficacement sur les plus petites tailles d'instance disponibles.

Installer et faire tourner le serveur

Un point important à noter est que lorsque vous démarrez un serveur, il doit effectuer une proof-of-work conséquente avant d'être désigné comme un emplacement de confiance dans le réseau Hashiverse. Ne soyez donc pas surpris si pendant les premières heures votre CPU est à fond et que les logs n'arrêtent pas de parler de PoWs, d'iters et d'ETA.

Nous recommandons n'importe quel serveur Linux standard. Ubuntu fait l'affaire, en 2024 ou en 2026. Collez ce qui suit dans le champ script de démarrage / user-data / cloud-init lorsque vous créez votre serveur (le nom varie selon les fournisseurs). Le script ouvre le pare-feu, ajoute le dépôt de paquets signé de Hashiverse et installe le serveur, qui démarre aussitôt.

#!/usr/bin/env bash
set -euo pipefail

export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y curl ca-certificates ufw

ufw allow 22/tcp
ufw allow from 0.0.0.0/0 to any port 443 proto tcp
ufw --force enable

curl -fsSL https://www.hashiverse.com/packages/hashiverse-packages.asc -o /usr/share/keyrings/hashiverse-packages.asc
curl -fsSL https://www.hashiverse.com/packages/apt/hashiverse.sources -o /etc/apt/sources.list.d/hashiverse.sources
curl -fsSL https://www.hashiverse.com/packages/apt/hashiverse-mirrors.txt -o /etc/apt/hashiverse-mirrors.txt

apt-get update
apt-get install -y hashiverse-server

Sous Fedora, Rocky, Alma ou RHEL, ajoutez plutôt le dépôt et installez avec dnf (et ouvrez le port 443 dans firewalld) :

curl -fsSL https://www.hashiverse.com/packages/hashiverse-packages.asc -o /etc/pki/rpm-gpg/RPM-GPG-KEY-hashiverse
curl -fsSL https://www.hashiverse.com/packages/rpm/hashiverse.repo -o /etc/yum.repos.d/hashiverse.repo
dnf install -y hashiverse-server

Le serveur tourne en tant que service systemd hashiverse-server et se met à jour tout seul : une fois par jour, à une heure aléatoire qui diffère d'une machine à l'autre pour que le réseau ne redémarre jamais d'un seul coup, il vérifie s'il existe une nouvelle version et redémarre dessus. Quelques commandes utiles :

La protection DDoS intégrée du serveur utilise ipset et iptables pour rejeter au niveau du noyau le trafic provenant d'IPs abusives ; il tourne donc en root, mais dans un bac à sable systemd qui ne lui accorde que les capacités réseau dont il a besoin. /var/lib/hashiverse-server est l'endroit où le serveur persiste son identité et les publications chiffrées qu'il stocke — gardez-le à l'abri si la continuité vous importe, bien que Hashiverse soit conçu pour s'auto-réparer si vous détruisez un serveur et en démarrez un autre.

Alternative : avec Docker

Si vous préférez faire tourner le serveur dans Docker, ce script de démarrage installe Docker, ouvre le pare-feu, écrit le fichier compose et démarre la pile.

#!/usr/bin/env bash
set -euo pipefail

export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y docker.io docker-compose-v2 ufw

ufw allow 22/tcp
ufw allow from 0.0.0.0/0 to any port 443 proto tcp
ufw --force enable

mkdir -p /opt/hashiverse && cd /opt/hashiverse

cat > docker-compose.yml <<"YAML"
services:
  hashiverse-server:
    image: ghcr.io/hashiverse/hashiverse-server:latest
    restart: unless-stopped
    stop_grace_period: 30s
    ports:
      - "0.0.0.0:443:443"
    cap_add:
      - NET_ADMIN
    volumes:
      - ./data:/data
    logging:
      driver: local
      options:
        max-size: 10m
        max-file: "5"

  watchtower:
    image: nickfedor/watchtower
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --interval 3600
YAML

docker compose pull
docker compose up -d

Watchtower maintiendra automatiquement le serveur à jour à mesure que de nouvelles versions sortent. La capacité NET_ADMIN est requise pour la protection DDoS intégrée du serveur, et le volume ./data est l'endroit où le serveur persiste son identité et les publications chiffrées qu'il stocke.