نظام التشغيل: Arch Linux و 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
لنحاول إضافة مقطع فيديو:
ipfs add raw_video.mkv
added Qmf6vier2j9rtG7hjA8Bf8ohzT5VYNmGfRntSc4zXsQyPL raw_video.mkv
بعد حوالي 15-20 ثانية ، سيتعطل ipfs:
https://gist.github.com/Netherdrake/4da51b24da82fe25ae476cffeb09cc31
هذه المشكلة متقطعة - في بعض الأحيان تكون الإضافة ناجحة ، ويمكنني الوصول إلى الملفات على localhost:8080/ipfs/HASH/raw_video.mkv
بدون مشاكل ، ولكن في معظم الأحيان ، يتعطل البرنامج الخفي.
يمكنك إعادة التوجيه عن طريق ipfs daemon 2>stderr.log
أنا أيضًا غير قادر على إعادة إنتاجه ، لقد جربت ملفات 10x60 ميغا بايت.
اتضح أن ipfs سيتعطل عند إضافة أي ملف كبير.
على سبيل المثال ، Ubuntu ISO الرسمية.
في نظام MacOS ، يتعطل:
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
على نظام Linux ، هناك أخطاء ، ولكن يبدو أن العملية الخفيّة تستمر في العمل:
~/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
لقد حاولت الرجوع إلى الإصدارات السابقة ، والإصدار الوحيد الذي لم يتعطل هو 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
لا يمكنني إعادة إنتاج هذا إما على macOS 10.12.5 و Ubuntu 16.04 باستخدام ipfs 0.4.10.
$ truncate -s 500M testfile
added QmV7q5aTmvZtGWja4wpodiUTEpBVWYFkQGRQ8PmJMDPG62 testfile
$
هل كان إنشاء ipfs الخاص بك من المصدر ، أو مدير الحزم الخاص بك ، أو الثنائي من الويب؟ ربما جربه باستخدام دليل ~/.ipfs
نظيفًا لمعرفة ما إذا كانت المشكلة قائمة.
كلهم من مديري الحزم. بدأ كل ناتج في الرسائل أعلاه بـ rm -rf ~/.ipfs && ipfs init
.
Netherdrake إذا قمت بتشغيل البرنامج الخفي باستخدام الخيار --routing=none
، فهل لا يزال يفشل بنفس الطريقة؟
مع --routing=none
يعمل بشكل جيد.
حسنًا ، هذه حالة إضافة ملف يتسبب في اتصال النظام الفرعي لمزود DHTs بالعديد من الأقران. إذا قمت بإزالة العلم --routing=none
، واستخدمت ipfs add --local
يجب أن تعمل الأشياء بشكل جيد أيضًا.
أنا أعمل على إصلاح هذا ، ونأمل أن يكون لدينا شيء في الإصدار القادم.
أوه ، أدرك أيضًا أن هذه المشكلة موجودة في الريبو الخاطئ. في المستقبل ، استخدم ipfs / go-ipfs للإبلاغ عن مثل هذه المشكلات.
التعليق الأكثر فائدة
حسنًا ، هذه حالة إضافة ملف يتسبب في اتصال النظام الفرعي لمزود DHTs بالعديد من الأقران. إذا قمت بإزالة العلم
--routing=none
، واستخدمتipfs add --local
يجب أن تعمل الأشياء بشكل جيد أيضًا.أنا أعمل على إصلاح هذا ، ونأمل أن يكون لدينا شيء في الإصدار القادم.