
MalgrĂ© le fait que sur HabrĂ© il n'y avait dĂ©jĂ
pas un seul article sur IPFS .
Je prĂ©ciserai tout de suite que je ne suis pas un expert dans ce domaine, mais j'ai montrĂ© plus d'une fois de l'intĂ©rĂȘt pour cette technologie, mais essayer de jouer avec elle a souvent causĂ© quelques douleurs. Aujourd'hui, j'ai repris les expĂ©riences et obtenu des rĂ©sultats que j'aimerais partager. En bref, le processus d'installation d'IPFS et de quelques puces sera dĂ©crit (tout a Ă©tĂ© fait sur Ubuntu, sur d'autres plateformes que je n'ai pas essayĂ©es).
Si vous avez manqué ce qu'est IPFS, il est écrit en détail ici: habr.com/en/post/314768L'installation
Pour la pureté de l'expérience, je propose de l'installer immédiatement sur un serveur externe, car nous considérerons quelques piÚges avec le travail en mode local et distant. Ensuite, si vous le souhaitez, il ne sera pas démoli longtemps, il n'y en a pas beaucoup.Partez
Documentation officielleVoir la version actuelle sur
golang.org/dlRemarque: il est préférable d'installer IPFS au nom de l'utilisateur, qui est censé utiliser les plus fréquents. Le fait est que ci-dessous, nous considérerons l'option de montage via FUSE et il y a des subtilités là -bas.cd ~ curl -O https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz tar xvf go1.12.9.linux-amd64.tar.gz sudo chown -R root:root ./go sudo mv go /usr/local rm go1.12.9.linux-amd64.tar.gz
Ensuite, vous devez mettre à jour l'environnement (plus de détails ici:
golang.org/doc/code.html#GOPATH ).
echo 'export GOPATH=$HOME/work' >> ~/.bashrc echo 'export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin' >> ~/.bashrc source ~/.bashrc
Vérifiez que go est installé
go version
Installer IPFS
J'ai aimé la façon d'installer via
ipfs-update le plus .
Installez-le avec la commande
go get -v -u github.com/ipfs/ipfs-update
AprÚs cela, vous pouvez exécuter les commandes suivantes:
ipfs-update versions - pour voir toutes les versions disponibles à télécharger.
ipfs-update version - pour voir la version installée actuelle (jusqu'à ce que IPFS soit installé, il n'en sera pas).
ipfs-update install latest - installe la derniÚre version d'IPFS. Au lieu de la derniÚre, respectivement, vous pouvez spécifier n'importe quelle version souhaitée dans la liste des disponibles.
Installer ipfs
ipfs-update install latest
Vérifier
ipfs --version
Directement avec l'installation en termes généraux, tout.
Lancement IPFS
Initialisation
Vous devez d'abord effectuer l'initialisation.
ipfs init
En réponse, vous obtiendrez quelque chose comme ceci:
ipfs init initializing IPFS node at /home/USERNAME/.ipfs generating 2048-bit RSA keypair...done peer identity: QmeCWX1DD7HnXXXXXXXXXXXXXXXXXXXXXXXXxxx to get started, enter: ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
Vous pouvez exécuter la commande proposée
ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
RĂ©sultat Hello and Welcome to IPFS! ââââââââââ ââââââââââââââââ âââââââââââââââââââââââââââ âââââââââââââââââ ââââââââ ââââââââââ ââââââ ââââââââ ââââââ âââ ââââââââ ââââââ âââ ââââââââ If you're seeing this, you have successfully installed IPFS and are now interfacing with the ipfs merkledag! ------------------------------------------------------- | Warning: | | This is alpha software. Use at your own discretion! | | Much is missing or lacking polish. There are bugs. | | Not yet secure. Read the security notes for more. | ------------------------------------------------------- Check out some of the other files in this directory: ./about ./help ./quick-start <-- usage examples ./readme <-- this file ./security-notes
Ici, Ă mon avis, l'intĂ©ressant commence dĂ©jĂ . Au stade de l'installation, les gars commencent dĂ©jĂ Ă utiliser leurs propres technologies. Le hachage proposĂ© QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv - non gĂ©nĂ©rĂ© spĂ©cifiquement pour vous, mais cousu dans la version. Autrement dit, avant la publication, ils ont prĂ©parĂ© un texte de bienvenue, l'ont versĂ© dans IPFS et ont ajoutĂ© l'adresse au programme d'installation. Ă mon avis, c'est trĂšs cool. Et ce fichier (plus prĂ©cisĂ©ment, l'ensemble du dossier) peut dĂ©sormais ĂȘtre consultĂ© non seulement localement, mais Ă©galement sur la passerelle officielle
ipfs.io/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv . Dans le mĂȘme temps, vous pouvez ĂȘtre sĂ»r que le contenu du dossier n'a pas changĂ©, car s'il avait changĂ©, le hachage aurait Ă©galement changĂ©.
Soit dit en passant, dans ce cas, IPFS prĂ©sente certaines similitudes avec le serveur de contrĂŽle de version. Si vous apportez des modifications aux fichiers source du dossier et versez Ă nouveau le dossier dans IPFS, il recevra une nouvelle adresse. Dans le mĂȘme temps, l'ancien dossier n'ira nulle part comme ça et sera disponible Ă son ancienne adresse.Lancement direct
ipfs daemon
Ils devraient obtenir une réponse comme celle-ci:
ipfs daemon Initializing daemon... go-ipfs version: 0.4.22- Repo version: 7 System version: amd64/linux Golang version: go1.12.7 Swarm listening on /ip4/xxxx/tcp/4001 Swarm listening on /ip4/127.0.0.1/tcp/4001 Swarm listening on /ip6/::1/tcp/4001 Swarm listening on /p2p-circuit Swarm announcing /ip4/127.0.0.1/tcp/4001 Swarm announcing /ip6/::1/tcp/4001 API server listening on /ip4/127.0.0.1/tcp/5001 WebUI: http://127.0.0.1:5001/webui Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080 Daemon is ready
Nous ouvrons la porte Ă Internet
Faites attention Ă ces deux lignes:
WebUI: http://127.0.0.1:5001/webui Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Maintenant, si vous avez installé IPFS localement, vous accéderez aux interfaces IPFS aux adresses locales et tout sera à votre disposition (par exemple,
localhost : 5001 / webui /). Mais lorsqu'elles sont installées sur un serveur externe, par défaut, les passerelles sont fermées à Internet. Il existe deux passerelles:
- Admin webui ( github ) sur le port 5001.
- API externe sur le port 8080 (en lecture seule).
Jusqu'Ă prĂ©sent, vous pouvez ouvrir les deux ports pour des expĂ©riences (5001 et 8080), mais bien sĂ»r, sur le serveur de combat, le port 5001 doit ĂȘtre fermĂ© avec un pare-feu. Il y a 4001 ports, il est nĂ©cessaire pour que d'autres pairs puissent vous trouver. Il doit ĂȘtre laissĂ© ouvert aux demandes extĂ©rieures.
Ouvrez ~ / .ipfs / config pour l'édition et trouvez ces lignes dedans:
"Addresses": { "Swarm": [ "/ip4/0.0.0.0/tcp/4001", "/ip6/::/tcp/4001" ], "Announce": [], "NoAnnounce": [], "API": "/ip4/127.0.0.1/tcp/5001", "Gateway": "/ip4/127.0.0.1/tcp/8080" }
Remplacez 127.0.0.1 par l'ip de votre serveur et enregistrez le fichier, puis redĂ©marrez ipfs (arrĂȘtez la commande Ctrl + C en cours d'exĂ©cution et rĂ©exĂ©cutez).
Doit obtenir
... WebUI: http://ip__:5001/webui Gateway (readonly) server listening on /ip4/ip__/tcp/8080
Des interfaces externes devraient maintenant ĂȘtre disponibles.
Découvrez
http://__ip_:8080/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
Le fichier Lisezmoi ci-dessus devrait s'ouvrir.
http://__ip_:5001/webui/
L'interface Web devrait s'ouvrir.
Si webui fonctionne pour vous, les paramĂštres IPFS peuvent ĂȘtre modifiĂ©s directement, y compris la visualisation des statistiques, mais ci-dessous, je considĂ©rerai les options de configuration directement via le fichier de configuration, ce qui n'est gĂ©nĂ©ralement pas critique. Il est juste prĂ©fĂ©rable de se rappeler exactement oĂč se trouve la configuration et quoi en faire, et si le museau Web ne fonctionne pas, ce sera plus difficile.Configurer une interface Web pour travailler avec votre serveur
Voici le premier écueil, qui a été passé environ trois heures.
Si vous avez installé IPFS sur un serveur externe, mais que vous n'avez pas installé ou démarré IPFS localement, lorsque vous accédez à / webui dans l'interface Web, vous devriez voir une erreur de connexion:

Le fait est que webui, Ă mon avis, fonctionne de maniĂšre trĂšs ambiguĂ«. Tout d'abord, il essaie de se connecter Ă l'API du serveur oĂč l'interface est ouverte (bien sĂ»r, en fonction de l'adresse dans le navigateur). et si cela ne fonctionne pas, il essaie de se connecter Ă la passerelle locale. Et si vous avez IPFS exĂ©cutĂ© localement, alors votre webui fonctionnera bien, seulement vous travaillerez avec IPFS local, pas externe, bien que vous ayez ouvert webui sur un serveur externe. Ensuite, tĂ©lĂ©chargez des fichiers, mais pour une raison quelconque, vous ne les voyez pas comme ça sur un serveur externe ...
Et s'il ne s'exécute pas localement, nous obtenons une erreur de connexion. Dans notre cas, l'erreur est probablement due à CORS, qui est également indiqué par webui, proposant d'ajouter une config.
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["http://ip_ :5001", "http://127.0.0.1:5001", "https://webui.ipfs.io"]' ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]'
Je viens d'enregistrer un caractÚre générique
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
Les en-tĂȘtes ajoutĂ©s se trouvent tous dans le mĂȘme ~ / .ipfs / config. Dans mon cas, c'est
"API": { "HTTPHeaders": { "Access-Control-Allow-Origin": [ "*" ] } },
Nous redémarrons ipfs et voyons que webui s'est correctement connecté (du moins si vous avez ouvert les passerelles pour les demandes de l'extérieur, comme décrit ci-dessus).
Vous pouvez maintenant télécharger directement des dossiers et des fichiers via l'interface Web, ainsi que créer vos propres dossiers.
Montez le systĂšme de fichiers FUSE
C'est une astuce assez intéressante.
Nous pouvons ajouter des fichiers (ainsi que des dossiers) non seulement via l'interface web, mais aussi directement dans le terminal, par exemple
ipfs add test -r added QmfYuz2gegRZNkDUDVLNa5DXzKmxxxxxxxxxx test/test.txt added QmbnzgRVAP4fL814h5mQttyqk1aURxxxxxxxxxxxx test
Le dernier hachage est le hachage du dossier racine.
En utilisant ce hachage, nous pouvons ouvrir le dossier sur n'importe quel nĆud ipfs (qui peut trouver notre nĆud et obtenir le contenu), nous pouvons le faire dans l'interface Web sur le port 5001 ou 8080, ou nous pouvons localement via ipfs.
ipfs ls QmbnzgRVAP4fL814h5mQttyqk1aUxxxxxxxxxxxxx QmfYuz2gegRZNkDUDVLNa5DXzKmKVxxxxxxxxxxxxxx 10 test.txt
Mais vous pouvez toujours l'ouvrir comme un dossier normal.
Créons deux dossiers à la racine et donnons-leur des droits à notre utilisateur.
sudo mkdir /ipfs /ipns sudo chown USERNAME /ipfs /ipns
et redémarrez ipfs avec l'indicateur --mount
ipfs daemon --mount
Vous pouvez créer des dossiers à d'autres endroits et spécifier le chemin d'accÚs à ceux-ci via le démon ipfs --mount --mount-ipfs / ipfs_path --mount-ipns / ipns_pathMaintenant, la lecture de ce dossier est quelque peu inhabituelle.
ls -la /ipfs ls: reading directory '/ipfs': Operation not permitted total 0
Autrement dit, il n'y a pas d'accĂšs direct Ă la racine de ce dossier. Mais alors vous pouvez obtenir le contenu en connaissant le hachage.
ls -la /ipfs/QmbnzgRVAP4fL814h5mQttyqxxxxxxxxxxxxxxxxx total 0 -r--r--r-- 1 root root 10 Aug 31 07:03 test.txt
cat /ipfs/QmbnzgRVAP4fL814h5mQttyqxxxxxxxxxxxxxxxxx/test.txt test test
De plus, mĂȘme la saisie semi-automatique Ă l'intĂ©rieur du dossier fonctionne lors de la spĂ©cification d'un chemin.
Comme je l'ai dit ci-dessus, il existe des subtilitĂ©s avec un tel montage: par dĂ©faut, les dossiers FUSE montĂ©s ne sont accessibles qu'Ă l'utilisateur actuel (mĂȘme root ne peut pas lire Ă partir d'un tel dossier, sans parler des autres utilisateurs du systĂšme). Si vous souhaitez rendre ces dossiers accessibles aux autres utilisateurs, dans la configuration, vous devez remplacer «FuseAllowOther»: false par «FuseAllowOther»: true. Mais ce n'est pas tout. Si vous exĂ©cutez IPFS en tant que root, tout est OK. Et si au nom d'un utilisateur rĂ©gulier (quoique sudo), vous obtenez une erreur
mount helper error: fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf
Dans ce cas, vous devez corriger /etc/fuse.conf en décommentant la ligne #user_allow_other.
AprÚs cela, nous redémarrons ipfs.
ProblĂšmes connus avec FUSE
Plus d'une fois, le problĂšme a Ă©tĂ© remarquĂ© qu'aprĂšs le redĂ©marrage d'ipfs avec le montage (ou peut-ĂȘtre dans d'autres cas), les points de montage / ipfs et / ipns deviennent indisponibles. Il n'y a pas d'accĂšs, mais ls -la / ipfs montre ???? dans la liste des droits.
Trouvé une telle solution:
fusermount -z -u /ipfs fusermount -z -u /ipns
Redémarrez ensuite ipfs.
Ajouter un service
Bien sûr, le lancement dans le terminal ne convient qu'aux tests primaires. En mode combat, le démon devrait démarrer automatiquement au démarrage du systÚme.
Au nom de sudo, créez le fichier /etc/systemd/system/ipfs.service et écrivez-y:
[Unit] Description=IPFS Daemon After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=simple ExecStart=/home/USERNAME/work/bin/ipfs daemon --mount User=USERNAME Restart=always [Install] WantedBy=multi-user.target
USERNAME, bien sĂ»r, doit ĂȘtre remplacĂ© par votre utilisateur (et peut-ĂȘtre que le chemin complet vers le programme ipfs sera diffĂ©rent pour vous (vous devez spĂ©cifier le chemin complet)).
Nous activons le service.
sudo systemctl enable ipfs.service
Nous commençons le service.
sudo service ipfs start
Vérifiez l'état du service.
sudo service ipfs status
Pour la pureté de l'expérience, il sera possible de redémarrer le serveur à l'avenir pour vérifier que ipfs démarre correctement.
Ajoutez les fĂȘtes que nous connaissons
ConsidĂ©rez la situation lorsque nous avons des nĆuds IPFS installĂ©s Ă la fois sur un serveur externe et localement. Sur un serveur externe, nous ajoutons une sorte de fichier et essayons de l'obtenir localement via IPFS par CID. Que va-t-il se passer? Bien sĂ»r, le serveur local ne sait probablement rien de notre serveur externe et essaiera simplement de trouver le fichier par CID en «demandant» Ă tous les homologues IPFS disponibles (avec lesquels il a dĂ©jĂ rĂ©ussi à «se familiariser»). Ceux-ci, Ă leur tour, demanderont aux autres. Et ainsi, jusqu'Ă ce que le fichier soit trouvĂ©. En fait, la mĂȘme chose se produit lorsque nous essayons d'obtenir le fichier via la passerelle
ipfs.io officielle. Si vous ĂȘtes chanceux, le fichier sera trouvĂ© dans quelques secondes. Et sinon, il ne sera pas retrouvĂ© en quelques minutes, ce qui affecte grandement le confort de travail. Mais nous savons oĂč ce fichier apparaĂźtra pour la premiĂšre fois. Alors pourquoi ne disons-nous pas immĂ©diatement Ă notre serveur local "Regardez d'abord"? Apparemment, cela peut ĂȘtre fait.
1. Allez sur le serveur distant et recherchez ~ / .ipfs / config dans la config
"Identity": { "PeerID": "QmeCWX1DD7HnPSuMHZSh6tFuxxxxxxxxxxxxxxxx",
2. Nous exécutons le statut ipfs du service sudo et y recherchons des entrées Swarm, par exemple:
Swarm announcing /ip4/ip__/tcp/4001
3. De là , nous ajoutons l'adresse générale du formulaire "/ ip4 / ip_your_server / tcp / 4001 / ipfs / $ PeerID".
4. Pour plus de fiabilité, via notre site Web local, nous essaierons d'ajouter cette adresse aux pairs.

5. Si tout va bien, ouvrez la configuration locale ~ / .ipfs / config, trouvez "Bootstrap" dedans: [...
et ajoutez d'abord l'adresse reçue au tableau.
Redémarrez IPFS.
Ajoutez maintenant le fichier au serveur externe et essayez de le demander sur le serveur local. Doit voler vite.
Mais cette fonctionnalitĂ© est toujours instable. D'aprĂšs ce que je comprends, mĂȘme si nous spĂ©cifions l'adresse d'homologue dans Bootstrap, au cours du travail, ipfs modifie la liste des connexions actives avec les homologues. Dans tous les cas, une discussion Ă ce sujet et souhaite la possibilitĂ© d'indiquer des pairs constants a lieu
ici et il semble
qu'il soit censé ajouter des fonctionnalités à ipfs@5.0+
Une liste des pairs actuels peut ĂȘtre consultĂ©e Ă la fois dans webui et dans le terminal.
ipfs swarm peers
LĂ et lĂ , vous pouvez ajouter votre fĂȘte manuellement.
ipfs swarm connect "/ip4/ip__/tcp/4001/ipfs/$PeerID"
Jusqu'à ce que vous ayez amélioré cette fonctionnalité, vous pouvez écrire un outil pour vérifier une connexion avec l'homologue souhaité, et sinon, pour ajouter une connexion.
Raisonnement
Parmi ceux qui connaissent déjà IPFS, il y a des arguments pour et contre IPFS. En principe, la
discussion d' avant-hier m'a incité à creuser à nouveau IPFS. Et en ce qui concerne la discussion mentionnée ci-dessus: je ne peux pas dire que je suis fermement contre certains des arguments ci-dessus exprimés (je suis en désaccord uniquement avec le fait qu'un programmeur et demi utilise IPFS). En général, les deux ont raison à leur maniÚre (surtout les
commentaires sur les chĂšques vous font penser). Mais si vous mettez de cĂŽtĂ© l'Ă©valuation morale et juridique, qui donnera une Ă©valuation technique de cette technologie? Personnellement, j'ai une sorte de sentiment intĂ©rieur que "c'est nĂ©cessaire Ă coup sĂ»r, cela a certaines perspectives". Mais pourquoi exactement, il n'y a pas de formulation claire. Comme si vous regardez les outils centralisĂ©s existants, Ă bien des Ă©gards, ils sont trĂšs en avance (stabilitĂ©, vitesse, gĂ©rabilitĂ©, etc.). NĂ©anmoins, j'ai une pensĂ©e qui semble logique et qui ne peut guĂšre ĂȘtre mise en Ćuvre sans de tels systĂšmes dĂ©centralisĂ©s. Bien sĂ»r, j'agite vraiment mon esprit, mais je le formulerais ainsi: le principe de diffusion de l'information sur Internet doit ĂȘtre changĂ©.
Je vais vous expliquer. Si vous le pensez, nos informations sont désormais diffusées selon le principe "J'espÚre que la personne à qui je les ai transférées les protégera et ne sera pas perdue ou reçue par ceux à qui elles n'étaient pas destinées". Par exemple, il est facile de considérer divers services de messagerie, stockage cloud, etc. Et qu'avons-nous finalement? Sur Habré Hub,
la sécurité de l'information est en premiÚre ligne et nous recevons presque chaque jour des informations sur une autre fuite mondiale. En principe, tout ce qui est le plus intéressant est répertorié dans l'article <irony> merveilleux </ ironie> L'
Ă©tĂ© est presque terminĂ©. Presque aucune donnĂ©e n'a Ă©tĂ© divulguĂ©e . Autrement dit, les principaux gĂ©ants de l'Internet deviennent plus grands, ils accumulent de plus en plus d'informations, et de telles fuites sont une sorte d'explosions atomiques informationnelles. Cela ne s'est jamais produit, et lĂ encore. Dans le mĂȘme temps, bien que beaucoup comprennent qu'il existe des risques, ils continueront de faire confiance Ă leurs donnĂ©es avec des sociĂ©tĂ©s tierces. PremiĂšrement, il n'y a pas beaucoup d'alternative, et deuxiĂšmement, ils promettent qu'ils ont corrigĂ© tous les trous et cela ne se reproduira plus.
Quelle option est-ce que je vois? Il me semble que les donnĂ©es devraient initialement ĂȘtre diffusĂ©es ouvertement. Mais l'ouverture dans ce cas ne signifie pas que tout doit ĂȘtre facile Ă lire. Je parle de l'ouverture du stockage et de la distribution, mais pas de l'ouverture totale en lecture. Je suppose que les informations doivent ĂȘtre distribuĂ©es avec des clĂ©s publiques. AprĂšs tout, le principe des clĂ©s publiques / privĂ©es est dĂ©jĂ ancien, presque comme Internet. Si les informations ne sont pas confidentielles et sont conçues pour un large Ă©ventail, elles sont immĂ©diatement mises en page avec la clĂ© publique (mais toujours sous forme cryptĂ©e, n'importe qui peut les dĂ©crypter avec la clĂ© existante). Sinon, il est disposĂ© sans clĂ© publique, et la clĂ© elle-mĂȘme est transmise Ă celui qui doit avoir accĂšs Ă ces informations. Dans le mĂȘme temps, celui qui a besoin de le lire ne devrait avoir qu'une clĂ©, et oĂč obtenir ces informations, il ne devrait pas monter en flĂšche - il les extrait simplement du rĂ©seau (c'est le nouveau principe de distribution au contenu, et non Ă l'adresse).
Ainsi, pour une attaque de masse, les attaquants devront obtenir un grand nombre de clĂ©s privĂ©es, et il est peu probable qu'ils puissent le faire au mĂȘme endroit. Cette tĂąche, Ă mon avis, est plus difficile que de pirater un service particulier.
Et ici, un autre problĂšme se termine: la confirmation de la paternitĂ©. Maintenant, sur Internet, vous pouvez trouver de nombreuses citations Ă©crites par nos amis. Mais oĂč est la garantie qu'ils les ont Ă©crits? Maintenant, si chacun de ces enregistrements Ă©tait accompagnĂ© d'une signature numĂ©rique, ce serait beaucoup plus simple. Et peu importe oĂč se trouvent ces informations, l'essentiel est la signature, qui est Ă©videmment difficile Ă truquer.
Et voici ce qui est intéressant ici: IPFS contient déjà des outils de chiffrement (aprÚs tout, il est construit sur la technologie blockchain). La clé privée est immédiatement spécifiée dans la configuration.
"Identity": { "PeerID": "QmeCWX1DD7HnPSuMHZSh6tFuMxxxxxxxxxxxxxx", "PrivKey": "CAASqAkwggSkAgEAAoIBAQClZedVmj8JkPvT92sGrNIQmofVF3ne8xSWZIGqkm+t9IHNN+/NDI51jA0MRzpBviM3o/c/Nuz30wo95vWToNyWzJlyAISXnUHxnVhvpeJAbaeggQRcFxO9ujO9DH61aqgN1m+JoEplHjtc4KS5 pUEDqamve+xAJO8BWt/LgeRKA70JN4hlsRSghRqNFFwjeuBkT1kB6tZsG3YmvAXJ0o2uye+y+7LMS7jKpwJNJBiFAa/Kuyu3W6PrdOe7SqrXfjOLHQ0uX1oYfcqFIKQsBNj/Fb+GJMiciJUZaAjgHoaZrrf2b/Eii3z0i+QIVG7OypXT3Z9JUS60 KKLfjtJ0nVLjAgMBAAECggEAZqSR5sbdffNSxN2TtsXDa3hq+WwjPp/908M10QQleH/3mcKv98FmGz65zjfZyHjV5C7GPp24e6elgHr3RhGbM55vT5dQscJu7SGng0of2bnzQCEw8nGD18dZWmYJsE4rUsMT3wXxhUU4s8/Zijgq27oLyxKNr9T7 2gxqPCI06VTfMiCL1wBBUP1wHdFmD/YLJwOjV/sVzbsl9HxqzgzlDtfMn/bJodcURFI1sf1e6WO+MyTc3.................
+ / NDI51jA0MRzpBviM3o / c / Nuz30wo95vWToNyWzJlyAISXnUHxnVhvpeJAbaeggQRcFxO9ujO9DH61aqgN1m + JoEplHjtc4KS5 "Identity": { "PeerID": "QmeCWX1DD7HnPSuMHZSh6tFuMxxxxxxxxxxxxxx", "PrivKey": "CAASqAkwggSkAgEAAoIBAQClZedVmj8JkPvT92sGrNIQmofVF3ne8xSWZIGqkm+t9IHNN+/NDI51jA0MRzpBviM3o/c/Nuz30wo95vWToNyWzJlyAISXnUHxnVhvpeJAbaeggQRcFxO9ujO9DH61aqgN1m+JoEplHjtc4KS5 pUEDqamve+xAJO8BWt/LgeRKA70JN4hlsRSghRqNFFwjeuBkT1kB6tZsG3YmvAXJ0o2uye+y+7LMS7jKpwJNJBiFAa/Kuyu3W6PrdOe7SqrXfjOLHQ0uX1oYfcqFIKQsBNj/Fb+GJMiciJUZaAjgHoaZrrf2b/Eii3z0i+QIVG7OypXT3Z9JUS60 KKLfjtJ0nVLjAgMBAAECggEAZqSR5sbdffNSxN2TtsXDa3hq+WwjPp/908M10QQleH/3mcKv98FmGz65zjfZyHjV5C7GPp24e6elgHr3RhGbM55vT5dQscJu7SGng0of2bnzQCEw8nGD18dZWmYJsE4rUsMT3wXxhUU4s8/Zijgq27oLyxKNr9T7 2gxqPCI06VTfMiCL1wBBUP1wHdFmD/YLJwOjV/sVzbsl9HxqzgzlDtfMn/bJodcURFI1sf1e6WO+MyTc3.................
7LMS7jKpwJNJBiFAa / Kuyu3W6PrdOe7SqrXfjOLHQ0uX1oYfcqFIKQsBNj / Fb + GJMiciJUZaAjgHoaZrrf2b / Eii3z0i + QIVG7OypXT3Z9JUS60 "Identity": { "PeerID": "QmeCWX1DD7HnPSuMHZSh6tFuMxxxxxxxxxxxxxx", "PrivKey": "CAASqAkwggSkAgEAAoIBAQClZedVmj8JkPvT92sGrNIQmofVF3ne8xSWZIGqkm+t9IHNN+/NDI51jA0MRzpBviM3o/c/Nuz30wo95vWToNyWzJlyAISXnUHxnVhvpeJAbaeggQRcFxO9ujO9DH61aqgN1m+JoEplHjtc4KS5 pUEDqamve+xAJO8BWt/LgeRKA70JN4hlsRSghRqNFFwjeuBkT1kB6tZsG3YmvAXJ0o2uye+y+7LMS7jKpwJNJBiFAa/Kuyu3W6PrdOe7SqrXfjOLHQ0uX1oYfcqFIKQsBNj/Fb+GJMiciJUZaAjgHoaZrrf2b/Eii3z0i+QIVG7OypXT3Z9JUS60 KKLfjtJ0nVLjAgMBAAECggEAZqSR5sbdffNSxN2TtsXDa3hq+WwjPp/908M10QQleH/3mcKv98FmGz65zjfZyHjV5C7GPp24e6elgHr3RhGbM55vT5dQscJu7SGng0of2bnzQCEw8nGD18dZWmYJsE4rUsMT3wXxhUU4s8/Zijgq27oLyxKNr9T7 2gxqPCI06VTfMiCL1wBBUP1wHdFmD/YLJwOjV/sVzbsl9HxqzgzlDtfMn/bJodcURFI1sf1e6WO+MyTc3.................
Zijgq27oLyxKNr9T7 "Identity": { "PeerID": "QmeCWX1DD7HnPSuMHZSh6tFuMxxxxxxxxxxxxxx", "PrivKey": "CAASqAkwggSkAgEAAoIBAQClZedVmj8JkPvT92sGrNIQmofVF3ne8xSWZIGqkm+t9IHNN+/NDI51jA0MRzpBviM3o/c/Nuz30wo95vWToNyWzJlyAISXnUHxnVhvpeJAbaeggQRcFxO9ujO9DH61aqgN1m+JoEplHjtc4KS5 pUEDqamve+xAJO8BWt/LgeRKA70JN4hlsRSghRqNFFwjeuBkT1kB6tZsG3YmvAXJ0o2uye+y+7LMS7jKpwJNJBiFAa/Kuyu3W6PrdOe7SqrXfjOLHQ0uX1oYfcqFIKQsBNj/Fb+GJMiciJUZaAjgHoaZrrf2b/Eii3z0i+QIVG7OypXT3Z9JUS60 KKLfjtJ0nVLjAgMBAAECggEAZqSR5sbdffNSxN2TtsXDa3hq+WwjPp/908M10QQleH/3mcKv98FmGz65zjfZyHjV5C7GPp24e6elgHr3RhGbM55vT5dQscJu7SGng0of2bnzQCEw8nGD18dZWmYJsE4rUsMT3wXxhUU4s8/Zijgq27oLyxKNr9T7 2gxqPCI06VTfMiCL1wBBUP1wHdFmD/YLJwOjV/sVzbsl9HxqzgzlDtfMn/bJodcURFI1sf1e6WO+MyTc3.................
Je ne suis pas un spĂ©cialiste de la sĂ©curitĂ© et je ne sais pas exactement comment l'utiliser correctement, mais il me semble que ces clĂ©s sont utilisĂ©es au niveau de l'Ă©change entre les nĆuds IPFS. Et aussi
js-ipfs et des exemples de projets comme
orbit-db , sur lesquels
orbit.chat fonctionne. Autrement dit, chaque appareil (mobile et pas seulement) peut ĂȘtre facilement Ă©quipĂ© de ses propres machines de chiffrement-dĂ©chiffrement. Dans ce cas, il ne reste plus qu'Ă chacun de prendre soin de maintenir ses clĂ©s privĂ©es et chacun sera responsable de sa propre sĂ©curitĂ©, et ne sera pas l'otage d'un autre facteur humain dans un gĂ©ant Internet super populaire.