Aller au contenu

Téléchargements

Tout ce qu’il vous faut, avec sa somme de contrôle

Chaque fichier est publié avec son SHA-256. Vérifiez-le. Un binaire auquel vous allez confier une machine mérite bien dix secondes de vérification, et une somme de contrôle que personne ne compare n’est qu’une décoration.

Fichiers publiés
Plateformes de l’agent
Version actuelle
Publiée le

Sous chaque liste, un pas-à-pas part du fichier téléchargé et s’arrête quand tout tourne. Suivez-le à la lettre — il a été écrit en le faisant.

Pour cet ordinateur

L’agent

Un seul programme autonome pour Linux, macOS, Windows et BSD. Il gagne des DAIN selon l’horaire que vous fixez et ne vous gêne pas le reste du temps.

Pas à pas, jusqu’au fonctionnement

Cinq minutes, et rien à configurer. L’agent sait déjà où est le réseau. Il s’inscrit lui-même, commence à prendre du travail et affiche un code de revendication — c’est ce code qui fait de la machine la vôtre plutôt que celle du réseau.

  1. 1

    Trouvez le fichier qui vous correspond

    uname -sm vous le dit. Linux x86_64 correspond à linux-amd64 et Linux aarch64 à linux-arm64. Téléchargez celui-là.

    S’il affiche armv7l ou i686, c’est un système 32 bits et il n’existe pas d’agent pour lui — tous les téléchargements ici sont en 64 bits. Sur un Raspberry Pi 3 ou plus récent, la carte elle-même est 64 bits et seul le système installé ne l’est pas : écrire Raspberry Pi OS 64 bits sur la carte suffit.

  2. 2

    Vérifiez que c’est bien le fichier publié

    bash
    sha256sum dain-agent-2.0.0-linux-amd64.tar.gz

    Comparez la sortie avec la somme de contrôle indiquée plus haut. Si elles diffèrent, arrêtez-vous.

  3. 3

    Décompressez-le

    L’archive contient ses fichiers à la racine : donnez-lui un dossier à elle plutôt que de les éparpiller dans vos téléchargements.

    bash
    mkdir -p ~/dain-agent
    tar xzf dain-agent-2.0.0-linux-amd64.tar.gz -C ~/dain-agent
    cd ~/dain-agent

    Trois fichiers en sortent : dain-agent, install.sh et un README.

  4. 4

    Installez-le et démarrez-le

    bash
    sudo ./install.sh

    Il place le binaire dans /usr/local/bin, crée un compte système dain-agent sans shell, écrit une unité systemd renforcée et la démarre. Les droits root servent à cela et à rien d’autre — l’agent lui-même ne tourne jamais en root.

  5. 5

    Notez le code de revendication

    L’installateur attend que l’agent joigne le réseau et affiche un code comme R9JM-UG66-X3FW. Saisissez-le sur thecubefloor.com/dashboard et la machine est à vous. D’ici là, elle travaille pour le réseau — et les gains ne sont pas rétroactifs : faites-le maintenant plutôt que la semaine prochaine.

  6. 6

    Surveillez-le plus tard

    bash
    curl -s localhost:7788/status
    journalctl -u dain-agent -f

    Pour le retirer : sudo systemctl disable --now dain-agent, puis supprimez /usr/local/bin/dain-agent et le fichier d’unité.

Rien à ouvrir sur votre pare-feu.

L’agent appelle vers l’extérieur et n’écoute jamais. S’il ne peut pas joindre le réseau, il réessaie ; il n’a besoin ni de redirection de port, ni d’adresse fixe, ni d’IP publique.

La machine toute prête

CubeOS déjà installé, sous forme de machine virtuelle. Importez-la, démarrez-la, revendiquez-la. Quatre cœurs et 2 Go de mémoire, moins d’un demi-gigaoctet à télécharger.

Pas à pas, jusqu’au fonctionnement

Le chemin le plus rapide vers le réseau, et celui qui ne change rien à l’ordinateur que vous utilisez déjà. C’est une machine entière dans un seul fichier : importez-la, démarrez-la, et une minute plus tard environ elle contribue.

  1. 1

    Installez VirtualBox, si ce n’est pas déjà fait

    Gratuit, sur virtualbox.org, pour Windows, macOS et Linux. Pas de licence, pas de compte.

  2. 2

    Téléchargez le .ova et vérifiez-le

    bash
    sha256sum cubeos-node-2.0.0.ova

    Sous Windows : Get-FileHash .\cubeos-node-2.0.0.ova -Algorithm SHA256.

  3. 3

    Importez-le

    Double-cliquez sur le fichier, ou dans VirtualBox choisissez Fichier → Importer un appareil virtuel, sélectionnez le .ova et cliquez sur Terminer. Ne touchez à aucun réglage : le dimensionnement inscrit dans le fichier est celui avec lequel l’image a été construite et testée. Cela prend quelques secondes.

  4. 4

    Donnez-lui un écran sur lequel dessiner

    L’adaptateur d’affichage par défaut de VirtualBox ne peut pas faire tourner l’écran d’état. Une commande, avant de la démarrer :

    bash
    VBoxManage modifyvm "CubeOS Node" --graphicscontroller vmsvga --vram 128 --accelerate3d on

    Ou dans l’interface : Configuration → Affichage, contrôleur graphique VMSVGA, mémoire vidéo 128 Mo, Activer l’accélération 3D cochée. Les deux moitiés sont nécessaires. Sans elles, la machine rejoint quand même le réseau, gagne et sert sa page d’état sur le réseau — seul son propre écran reste sur le journal de démarrage.

  5. 5

    Démarrez-la

    Sélectionnez CubeOS Node et cliquez sur Démarrer. Elle démarre sur un écran d’état. Pas de connexion, pas de bureau, rien à configurer — la machine a exactement une tâche.

  6. 6

    Lisez le code de revendication à l’écran

    En une minute environ, l’écran d’état affiche le nom de la machine et un code de revendication comme R9JM-UG66-X3FW. Saisissez-le sur thecubefloor.com/dashboard pour que le nœud soit à vous. D’ici là, il contribue pour le compte du réseau, et les gains ne sont pas rétroactifs.

  7. 7

    Ou lisez-le sans aucun écran

    La même page est servie sur le réseau, c’est ainsi qu’on joint une machine sans écran. Redirigez un port, une fois :

    bash
    VBoxManage modifyvm "CubeOS Node" --natpf1 "portal,tcp,127.0.0.1,7777,,7777"

    puis ouvrez http://localhost:7777.

  8. 8

    Laissez-la tourner

    Réduisez la fenêtre ; elle utilise ce que la machine n’utilise pas. Pour l’arrêter, fermez la fenêtre et choisissez éteindre. Pour la supprimer entièrement, clic droit sur la VM → Supprimer → Supprimer tous les fichiers.

Ce qu’est vraiment un .ova.

Un paquet standard de machine virtuelle : les réglages de la machine (quatre cœurs, 2 Go de mémoire, une carte réseau, un disque), une liste de sommes de contrôle et le disque lui-même, dans un seul fichier. Tous les hyperviseurs de bureau le lisent : le même fichier fonctionne dans VirtualBox, VMware et les autres, et l’import prend quelques secondes.

Importez à nouveau le .ova plutôt que de cloner une machine.

Importez le fichier autant de fois que vous voulez : chaque import devient une machine à part, avec son propre nom et son propre code de revendication. Partir du fichier téléchargé est plus propre que cloner une machine qui a déjà tourné.

Le menu de démarrage est verrouillé, et son mot de passe est publié.

C’est cubeos. Toutes les copies d’une image publiée sont identiques, son mot de passe de démarrage est donc public de toute façon — autant le dire ici. Il empêche un passant de trafiquer le menu de démarrage. Si vous voulez un mot de passe que vous seul connaissez, installez plutôt depuis l’ISO : elle en génère un par machine.

Le SDK

Python, sans dépendances. Lisez des documents scannés, construisez des index vectoriels, appliquez vos propres fonctions à travers le réseau.

Pas à pas, jusqu’au fonctionnement

Python 3.10 ou plus récent, et rien d’autre. Le SDK n’a aucune dépendance — un paquet qui en entraîne trente autres est un paquet que vous ne pouvez pas lire avant de le confier à vos documents.

  1. 1

    Installez directement le fichier

    bash
    python3 -m pip install dain-sdk-2.0.0.tar.gz

    Rien à compiler d’abord — pyproject.toml est à la racine de l’archive, pip prend donc le fichier tel quel.

  2. 2

    Indiquez-lui où se connecter

    Le SDK lit trois variables d’environnement : le point d’accès au réseau de votre région (eu-1 ou us-1), votre jeton SDK, et le certificat racine du réseau, récupéré une fois sur https://dir.thecubefloor.com/v1/root. DAIN_WALLET est facultatif ; sans lui, le premier portefeuille de votre compte SDK paie. Le jeton n’est pas une clé dk_ des paramètres développeur : l’accès au SDK est mis en place par nos soins sur demande à [email protected]. Gardez ces valeurs dans l’environnement plutôt que dans votre code.

    bash
    mkdir -p "$HOME/.dain"
    curl -fsS https://dir.thecubefloor.com/v1/root -o "$HOME/.dain/root.pem"
    
    export DAIN_URL=https://eu-1.ctl.thecubefloor.com:8443   # or https://us-1.ctl.thecubefloor.com:8443
    export DAIN_TOKEN=dain_...
    export DAIN_CA_BUNDLE="$HOME/.dain/root.pem"

    Sans aucune d’elles, dain.map exécute votre fonction en local avec les mêmes résultats : vous pouvez commencer avant d’avoir un jeton.

  3. 3

    Lancez quelque chose

    python
    import dain
    
    doc = dain.scan.read("invoice.pdf", budget=1)   # une page scannée devient du texte
    print(doc.text[:400])
  4. 4

    Puis lisez les exemples, pas la référence

    Chaque capacité a un programme prêt à lancer dans l’archive d’exemples ci-dessous, avec sa ligne de commande. Commencer par là vous dit en une minute si cela convient à votre problème ; la référence vous le dit en une heure.

Exemples

Des programmes prêts à lancer pour chaque capacité, avec la ligne de commande de chacun. Le moyen le plus rapide de voir si cela répond à votre problème.

Pas à pas, jusqu’au fonctionnement

Chaque capacité, sous forme de programme à lancer. Chaque fichier est autonome, commence par ce qu’il fait, ce dont il a besoin et ce qu’il coûte, et raconte ce qu’il fait au fur et à mesure.

  1. 1

    Installez d’abord le SDK

    bash
    python3 -m pip install dain-sdk-2.0.0.tar.gz
  2. 2

    Décompressez les exemples

    Le fichier tar est pour Linux, macOS et BSD, le zip pour Windows ; ils contiennent les mêmes programmes.

    bash
    mkdir -p ~/dain-examples
    tar xzf dain-examples-2.0.0.tar.gz -C ~/dain-examples
    cd ~/dain-examples
  3. 3

    Définissez le même environnement que pour le SDK

    bash
    mkdir -p "$HOME/.dain"
    curl -fsS https://dir.thecubefloor.com/v1/root -o "$HOME/.dain/root.pem"
    
    export DAIN_URL=https://eu-1.ctl.thecubefloor.com:8443   # or https://us-1.ctl.thecubefloor.com:8443
    export DAIN_TOKEN=dain_...
    export DAIN_CA_BUNDLE="$HOME/.dain/root.pem"
  4. 4

    Lancez-en un

    bash
    python3 scan_read.py invoice.pdf --lang auto --budget 1
    python3 rag_build.py ./my-notes --name notes --out ./rag.tar
    python3 montecarlo.py

    Le README.md de l’archive liste chaque exemple avec sa ligne de commande exacte. Chaque appel prend un budget en DAIN — un plafond, pas une estimation ; budget_demo.py montre ce qui se passe quand il est atteint.

CubeOS

Une image minimale et signée pour une machine dont le seul rôle est de contribuer. Elle démarre sur un écran d’état ; pas de bureau, rien d’autre qui tourne.

Pas à pas, jusqu’au fonctionnement

Ceci concerne une machine que vous confiez au réseau — un vieux PC de bureau, un serveur dont vous ne vous servez plus, un mini-PC. Elle efface le disque et remplace tout ce qu’il contient. Pour essayer sans engager de matériel, prenez plutôt la machine virtuelle toute prête ci-dessus.

  1. 1

    Choisissez la bonne image

    iso-metal est pour du vrai matériel. iso-vm est le même système construit pour un hyperviseur ; c’est elle qui sert à fabriquer la machine virtuelle toute prête, et vous n’en avez besoin que pour construire votre propre appareil.

  2. 2

    Vérifiez la somme de contrôle

    bash
    sha256sum cubeos-node-metal-2.0.0-amd64.iso

    Celle-ci compte plus que les autres : vous allez démarrer une machine dessus.

  3. 3

    Écrivez-la sur une clé USB

    lsblk pour trouver la clé. Remplacez /dev/sdX par elle, et vérifiez deux fois — cela écrase ce que vous désignez.

    bash
    sudo dd if=cubeos-node-metal-2.0.0-amd64.iso of=/dev/sdX bs=4M status=progress conv=fsync
  4. 4

    Démarrez la machine cible dessus

    La touche du menu de démarrage est en général F12, F11 ou Échap. UEFI et BIOS classique fonctionnent tous deux : l’installateur pose le chargeur d’amorçage dont la machine a réellement besoin, et refuse de terminer si aucun n’a pris.

  5. 5

    Lancez l’installateur

    Le premier écran propose Installer ou Annuler, puis Sans surveillance ou Guidé. Le mode guidé propose le disque évident et pré-remplit chaque réponse ; les deux vous montrent tout ce qui se trouve sur le disque qui va être effacé. Pas de compte, pas de mot de passe, pas de bureau à configurer. Le système installé n’a ni shell, ni connexion console, ni SSH ; contribuer est la seule chose qu’il sait faire.

  6. 6

    Notez le mot de passe du menu de démarrage

    À la fin, l’installateur affiche une seule fois un mot de passe de menu de démarrage généré pour cette machine, et ne le conserve nulle part. Vous n’en avez jamais besoin pour utiliser la machine — elle démarre toute seule — mais c’est le seul moyen de modifier le menu de démarrage. Si vous le perdez, il faut réinstaller.

  7. 7

    Redémarrez, puis revendiquez-la

    Elle arrive sur un écran d’état qui affiche son nom et un code de revendication. Saisissez-le sur thecubefloor.com/dashboard. Chaque machine se donne un nom différent au premier démarrage : vingt machines installées depuis une même clé USB sont vingt machines distinctes sur votre tableau de bord, chacune avec son propre code de revendication.

Vérifier un téléchargement

Lancez la commande de votre système et comparez sa sortie avec le SHA-256 indiqué à côté du fichier. S’ils diffèrent, ne l’exécutez pas — et prévenez-nous.

bash
sha256sum <file>

Source et reproductibilité

Les versions de l’agent sont reproductibles : la même source et la même chaîne de compilation produisent les mêmes octets, si bien que n’importe qui peut retrouver la somme de contrôle de son côté, au lieu de devoir la croire sur parole.

Mises à jour

L’agent ne se remplace jamais en silence. Chaque mise à jour est signée et appliquée seulement quand vous l’autorisez — jamais par surprise sur une machine que vous avez configurée d’une certaine façon.