OS : Arch Linux et MacOS
~ % ipfs version
ipfs version 0.4.10
~ % ipfs init
initializing IPFS node at /Users/user/.ipfs
generating 2048-bit RSA keypair...done
peer identity: Qme3fGyQWP4mf3J9Ln3EjofWyYhiGgVCZZ41jgVA9o78u7
to get started, enter:
ipfs cat /ipfs/QmVLDAhCY3X9P2uRudKAryuQFPM5zqA3Yij1dY8FpGbL7T/readme
~ % ipfs daemon
Initializing daemon...
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip4/192.168.0.102/tcp/4001
Swarm listening on /ip6/::1/tcp/4001
API server listening on /ip4/127.0.0.1/tcp/5001
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Daemon is ready
Essayons d'ajouter une vidéo :
ipfs add raw_video.mkv
added Qmf6vier2j9rtG7hjA8Bf8ohzT5VYNmGfRntSc4zXsQyPL raw_video.mkv
Environ 15 à 20 secondes plus tard, ipfs plantera :
https://gist.github.com/Netherdrake/4da51b24da82fe25ae476cffeb09cc31
Ce problème est intermittent - parfois, l'ajout réussit et je peux accéder aux fichiers sur localhost:8080/ipfs/HASH/raw_video.mkv
sans problème, mais la plupart du temps, le démon plante.
Vous pouvez rediriger par ipfs daemon 2>stderr.log
Je ne parviens pas non plus à le reproduire, j'ai essayé des fichiers environ 10x60Mo.
Il s'avère que ipfs plantera lors de l'ajout d' un fichier volumineux.
Par exemple, l'ISO officiel d'Ubuntu.
Sur MacOS, ça plante :
ipfs add ubuntu-16.04.2-desktop-amd64.iso
488.00 MB / 1.45 GB [=============================>------------------------------------------------------------] 32.92% 20s17:54:27.509 ERROR commands/h: unexpected EOF client.go:247
Error: unexpected EOF
Sous Linux, des erreurs se produisent, mais le processus démon semble continuer à s'exécuter :
~/Downloads % ipfs add ubuntu-16.04.2-desktop-amd64.iso
32.00 MB / 1.45 GB [=>----------------------------------------------------------------------------] 2.16% 30s17:53:01.534 ERROR commands/h: open /home/user/.ipfs/blocks/SF/put-579906520: too many open files client.go:247
Error: open /home/user/.ipfs/blocks/SF/put-579906520: too many open files
% ipfs daemon
Initializing daemon...
Adjusting current ulimit to 2048...
Successfully raised file descriptor limit to 2048.
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip4/172.17.0.1/tcp/4001
Swarm listening on /ip4/172.18.0.1/tcp/4001
Swarm listening on /ip4/172.19.0.1/tcp/4001
Swarm listening on /ip4/172.20.0.1/tcp/4001
Swarm listening on /ip4/172.21.0.1/tcp/4001
Swarm listening on /ip4/172.22.0.1/tcp/4001
Swarm listening on /ip4/172.23.0.1/tcp/4001
Swarm listening on /ip4/172.24.0.1/tcp/4001
Swarm listening on /ip4/192.168.1.107/tcp/4001
Swarm listening on /ip6/::1/tcp/4001
API server listening on /ip4/127.0.0.1/tcp/5001
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Daemon is ready
17:53:01.534 ERROR commands/h: err: open /home/user/.ipfs/blocks/SF/put-579906520: too many open files handler.go:285
J'ai essayé de revenir aux versions précédentes, et la seule version qui ne plante pas est 0.4.6
:
~/Downloads % ipfs add ubuntu-16.04.2-desktop-amd64.iso
added QmTc9mzzoEChP2Wyc4uGWGkkifC99y8o4KmxwVyg18MP76 ubuntu-16.04.2-desktop-amd64.iso
~/Downloads % ipfs version
ipfs version 0.4.6
~/Downloads % pacman -Q go-ipfs
go-ipfs 0.4.6-1
Je ne parviens pas à reproduire cela sur macOS 10.12.5 et Ubuntu 16.04 en utilisant ipfs 0.4.10.
$ truncate -s 500M testfile
added QmV7q5aTmvZtGWja4wpodiUTEpBVWYFkQGRQ8PmJMDPG62 testfile
$
Votre version d'ipfs était-elle à partir des sources, de votre gestionnaire de packages ou du binaire du Web ? Essayez peut-être avec un répertoire ~/.ipfs
propre pour voir si le problème persiste.
Ils proviennent tous des gestionnaires de paquets. Chaque sortie dans les messages ci-dessus a commencé par rm -rf ~/.ipfs && ipfs init
.
@Netherdrake si vous exécutez votre démon avec l'option --routing=none
, échoue-t-il toujours de la même manière ?
Avec --routing=none
ça marche bien.
d'accord, il s'agit donc d'ajouter un fichier provoquant la connexion du sous-système du fournisseur DHTs à un trop grand nombre de pairs. Si vous supprimez le drapeau --routing=none
et utilisez ipfs add --local
choses devraient également fonctionner correctement.
Je travaille sur un correctif pour cela, nous espérons avoir quelque chose dans la prochaine version.
Oh, je me rends compte aussi que ce problème est sur le mauvais repo. À l'avenir, utilisez ipfs/go-ipfs pour signaler des problèmes comme celui-ci.
Commentaire le plus utile
d'accord, il s'agit donc d'ajouter un fichier provoquant la connexion du sous-système du fournisseur DHTs à un trop grand nombre de pairs. Si vous supprimez le drapeau
--routing=none
et utilisezipfs add --local
choses devraient également fonctionner correctement.Je travaille sur un correctif pour cela, nous espérons avoir quelque chose dans la prochaine version.