
على الرغم من حقيقة أنه لم يكن هناك في
Habré مقال واحد حول IPFS .
سأوضح على الفور أنني لست خبيرًا في هذا المجال ، لكنني أبدت اهتمامًا بهذه التقنية أكثر من مرة ، لكن محاولة اللعب بها غالبًا ما تسبب بعض الألم. اليوم أخذت مرة أخرى التجارب وحصلت على بعض النتائج التي أود مشاركتها. باختصار ، سيتم وصف عملية تثبيت IPFS وبعض الرقائق (كل شيء تم على أوبونتو ، على منصات أخرى لم أحاول).
إذا فاتتك ما هو IPFS ، فسيتم كتابته بشيء من التفصيل هنا: habr.com/en/post/314768تركيب
من أجل نقاء التجربة ، أقترح تثبيتها على الفور على بعض الخوادم الخارجية ، حيث أننا سننظر في بعض المزالق من خلال العمل في الوضع المحلي والبعيدة. ثم ، إذا رغبت في ذلك ، لن يتم هدمه لفترة طويلة ، لا يوجد الكثير.انطلق
الوثائق الرسميةانظر الإصدار الحالي في
golang.org/dlملاحظة: من الأفضل تثبيت IPFS نيابة عن المستخدم ، الذي من المفترض أن يستخدم أكثرها تكرارًا. والحقيقة هي أننا سننظر أدناه في خيار التثبيت عبر FUSE وهناك تفاصيل دقيقة هناك.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
فأنت بحاجة إلى تحديث البيئة (مزيد من التفاصيل هنا:
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
تأكد من تثبيت ذلك
go version
تثبيت IPFS
أعجبني طريقة التثبيت عبر
تحديث ipfs أكثر .
تثبيته مع الأمر
go get -v -u github.com/ipfs/ipfs-update
بعد ذلك ، يمكنك تنفيذ الأوامر التالية:
إصدارات ipfs-update - لمشاهدة جميع الإصدارات المتاحة للتنزيل.
إصدار تحديث ipfs - لمشاهدة الإصدار المثبت الحالي (حتى يتم تثبيت IPFS ، لن يكون أيًا).
ipfs-update install latest - قم بتثبيت أحدث إصدار من IPFS. بدلاً من الأحدث ، على التوالي ، يمكنك تحديد أي إصدار مطلوب من قائمة المتاحة.
تثبيت ipfs
ipfs-update install latest
مراجعة
ipfs --version
مباشرة مع التثبيت بعبارات عامة ، كل شيء.
إطلاق IPFS
التهيئة
تحتاج أولاً إلى إجراء التهيئة.
ipfs init
استجابة لذلك ، سوف تحصل على شيء مثل هذا:
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
يمكنك تشغيل الأمر المقترح
ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
يؤدي 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
هنا ، في رأيي ، مثيرة للاهتمام بدأت بالفعل. في مرحلة التثبيت ، بدأ الرجال بالفعل في استخدام التقنيات الخاصة بهم. التجزئة المقترحة QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv - لم يتم إنشاؤها خصيصًا لك ، ولكن تم إنشاؤها في الإصدار. وهذا هو ، قبل الإصدار ، أعدوا نص الترحيب ، وصبوا في IPFS وأضافوا العنوان إلى المثبت. في رأيي ، هذا رائع جدا. ويمكن الآن عرض هذا الملف (بتعبير أدق ، المجلد بأكمله) ليس محليًا فقط ، ولكن أيضًا على بوابة
ipfs.io/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nVHVv الرسمية. في الوقت نفسه ، يمكنك التأكد من أن محتويات المجلد لم تتغير بأي شكل من الأشكال ، لأنه إذا كان قد تغير ، فسيتم تغيير التجزئة أيضًا.
بالمناسبة ، في هذه الحالة ، لدى IPFS بعض أوجه التشابه مع خادم التحكم في الإصدار. إذا قمت بإجراء تغييرات على الملفات المصدر للمجلد وصب المجلد مرة أخرى في IPFS ، فسيتلقى عنوانًا جديدًا. في الوقت نفسه ، لن ينتقل المجلد القديم إلى أي مكان مثل ذلك وسيكون متاحًا في عنوانه السابق.إطلاق مباشر
ipfs daemon
يجب أن يحصلوا على رد مثل هذا:
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
نفتح الباب أمام الإنترنت
انتبه إلى هذين الخطين:
WebUI: http://127.0.0.1:5001/webui Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
الآن ، إذا قمت بتثبيت IPFS محليًا ، فسوف تصل إلى واجهات IPFS على العناوين المحلية وسيكون كل شيء متاحًا لك (على سبيل المثال ،
المضيف المحلي: 5001 / webui /). ولكن عند تثبيتها على خادم خارجي ، يتم إغلاق البوابات افتراضيًا على الإنترنت. هناك بوابتان:
- المسؤول webui ( github ) على المنفذ 5001.
- واجهة برمجة تطبيقات خارجية على المنفذ 8080 (للقراءة فقط).
حتى الآن ، يمكنك فتح كلا المنفذين لإجراء التجارب (5001 و 8080) ، ولكن بالطبع ، على خادم المعركة ، يجب إغلاق المنفذ 5001 بجدار الحماية. يوجد 4001 منفذًا ، وهي ضرورية حتى يتمكن الآخرون من العثور عليك. يجب تركها مفتوحة للطلبات الخارجية.
افتح ~ / .ipfs / config للتحرير وابحث عن هذه السطور فيه:
"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" }
قم بتغيير 127.0.0.1 إلى ip الخاص بخادمك وحفظ الملف ، ثم أعد تشغيل ipfs (أوقف تشغيل الأمر Ctrl + C وأعد تشغيله مرة أخرى).
يجب أن تحصل عليه
... WebUI: http://ip__:5001/webui Gateway (readonly) server listening on /ip4/ip__/tcp/8080
الآن يجب أن تكون الواجهات الخارجية متاحة.
تحقق من
http://__ip_:8080/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
يجب فتح الملف التمهيدي أعلاه.
http://__ip_:5001/webui/
يجب فتح واجهة الويب.
إذا كان webui يعمل من أجلك ، فيمكنك تغيير إعدادات IPFS مباشرة فيه ، بما في ذلك إحصائيات المشاهدة ، لكنني سأدرس أدناه خيارات التكوين مباشرة من خلال ملف التكوين ، وهو أمر غير مهم بشكل عام. من الأفضل أن تتذكر بالضبط أين تكمن التهيئة وماذا تفعل بها ، وإذا لم تعمل كومة الويب ، فسيكون الأمر أكثر صعوبة.قم بإعداد واجهة ويب للعمل مع الخادم الخاص بك
إليكم المأزق الأول الذي قضى حوالي ثلاث ساعات.
إذا قمت بتثبيت IPFS على خادم خارجي ، لكنك لم تقم بتثبيت أو بدء تشغيل IPFS محليًا ، فعند وصولك إلى / webui في واجهة الويب ، سترى خطأ في الاتصال:

الحقيقة هي أن webui ، في رأيي ، يعمل بشكل غامض للغاية. أولاً ، يحاول الاتصال بـ API الخاص بالخادم حيث تكون الواجهة مفتوحة (بالطبع ، بناءً على العنوان في المستعرض). وإذا لم ينجح الأمر هناك ، فإنه يحاول الاتصال بالبوابة المحلية. إذا كان لديك IPFS يعمل محليًا ، فسيعمل webui بشكل جيد ، وستعمل فقط مع IPFS المحلي ، وليس خارجيًا ، على الرغم من أنك فتحت webui على خادم خارجي. ثم قم بتحميل الملفات ، لكن لسبب ما لم تشاهدها تمامًا مثل ذلك على خادم خارجي ...
وإذا لم يكن يعمل محليًا ، فسنحصل على خطأ في الاتصال. في حالتنا ، يكون الخطأ على الأرجح بسبب CORS ، وهو ما يشير إليه أيضًا webui ، ويقترح إضافة تهيئة.
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"]'
لقد سجلت للتو البدل
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
يمكن العثور على الرؤوس المضافة في نفس ~ / .ipfs / config. في حالتي هو عليه
"API": { "HTTPHeaders": { "Access-Control-Allow-Origin": [ "*" ] } },
نحن نعيد تشغيل IPfs ونرى أن webui قد تم توصيله بنجاح (على الأقل ينبغي إذا فتحت العبّارات للطلبات من الخارج ، كما هو موضح أعلاه).
يمكنك الآن تحميل الملفات والمجلدات مباشرة من خلال واجهة الويب ، وكذلك إنشاء المجلدات الخاصة بك.
قم بتركيب نظام الملفات FUSE
هذه خدعة مثيرة للاهتمام.
يمكننا إضافة ملفات (وكذلك مجلدات) ليس فقط من خلال واجهة الويب ، ولكن أيضًا مباشرة في الجهاز ، على سبيل المثال
ipfs add test -r added QmfYuz2gegRZNkDUDVLNa5DXzKmxxxxxxxxxx test/test.txt added QmbnzgRVAP4fL814h5mQttyqk1aURxxxxxxxxxxxx test
التجزئة الأخير هو تجزئة المجلد الجذر.
باستخدام هذا التجزئة ، يمكننا فتح المجلد على أي عقدة ipfs (التي يمكن أن تجد العقدة الخاصة بنا والحصول على المحتويات) ، أو يمكننا في واجهة الويب على المنفذ 5001 أو 8080 ، أو يمكننا محليًا من خلال ipfs.
ipfs ls QmbnzgRVAP4fL814h5mQttyqk1aUxxxxxxxxxxxxx QmfYuz2gegRZNkDUDVLNa5DXzKmKVxxxxxxxxxxxxxx 10 test.txt
ولكن لا يزال بإمكانك فتحه مثل مجلد عادي.
دعونا ننشئ مجلدين في الجذر ونمنحهما حقوقًا للمستخدم.
sudo mkdir /ipfs /ipns sudo chown USERNAME /ipfs /ipns
ثم أعد تشغيل ipfs مع - علامة تحميل
ipfs daemon --mount
يمكنك إنشاء مجلدات في أماكن أخرى وتحديد المسار إليها من خلال برنامج ipfs daemon - قم بتركيب - mount - ipfs / ipfs_path --mount-ipns / ipns_pathالقراءة الآن من هذا المجلد غير عادية إلى حد ما.
ls -la /ipfs ls: reading directory '/ipfs': Operation not permitted total 0
أي أنه لا يوجد وصول مباشر إلى جذر هذا المجلد. ولكن بعد ذلك يمكنك الحصول على محتويات ، ومعرفة التجزئة.
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
علاوة على ذلك ، حتى الإكمال التلقائي داخل المجلد يعمل عند تحديد مسار.
كما قلت أعلاه ، هناك بعض التفاصيل الدقيقة لهذا التثبيت: بشكل افتراضي ، يمكن الوصول إلى مجلدات FUSE المحمّلة فقط للمستخدم الحالي (حتى الجذر لا يمكنه القراءة من هذا المجلد ، ناهيك عن المستخدمين الآخرين في النظام). إذا كنت ترغب في جعل هذه المجلدات في متناول المستخدمين الآخرين ، فعندئذٍ في التهيئة ستحتاج إلى تغيير "FuseAllowOther": خطأ إلى "FuseAllowOther": صواب. لكن هذا ليس كل شيء. إذا قمت بتشغيل IPFS كجذر ، فكل شيء على ما يرام. وإذا تحدث نيابة عن مستخدم عادي (وإن كان sudo) ، فستحصل على خطأ
mount helper error: fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf
في هذه الحالة ، تحتاج إلى إصلاح /etc/fuse.conf عن طريق إلغاء تنفيذ السطر #user_allow_other.
بعد ذلك نقوم بإعادة تشغيل IPfs.
المشكلات المعروفة مع FUSE
لاحظت المشكلة أكثر من مرة أنه بعد إعادة تشغيل IPFs مع التثبيت (أو ربما في حالات أخرى) ، تصبح نقاط التحميل / ipfs و / ipns غير متوفرة. لا يوجد الوصول إليهم ، لكن ls -la / ipfs يظهر ؟؟؟؟ في قائمة الحقوق.
وجدت مثل هذا الحل:
fusermount -z -u /ipfs fusermount -z -u /ipns
ثم أعد تشغيل ipfs.
إضافة الخدمة
بطبيعة الحال ، فإن الإطلاق في المحطة مناسب فقط للاختبارات الأولية. في وضع القتال ، يجب أن يبدأ البرنامج الخفي تلقائيًا عند بدء تشغيل النظام.
نيابة عن sudo ، قم بإنشاء الملف /etc/systemd/system/ipfs.service واكتب عليه:
[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 بمستخدمك (وربما يختلف المسار الكامل لبرنامج ipfs (يجب تحديد المسار الكامل)).
نحن تفعيل الخدمة.
sudo systemctl enable ipfs.service
نبدأ الخدمة.
sudo service ipfs start
تحقق من حالة الخدمة.
sudo service ipfs status
من أجل نقاء التجربة ، سيكون من الممكن إعادة تشغيل الخادم في المستقبل للتحقق من أن ipfs يبدأ بنجاح تلقائيًا.
أضف الأعياد التي نعرفها
ضع في اعتبارك الموقف عندما يكون لدينا عقد IPFS مثبتة على خادم خارجي ومحلي. على خادم خارجي ، نضيف نوعًا من الملفات ونحاول الحصول عليه من خلال IPFS محليًا بواسطة إدارة البحث الجنائي. ماذا سيحدث؟ بالطبع ، لا يعرف الخادم المحلي على الأرجح أي شيء عن خادمنا الخارجي وسيحاول ببساطة العثور على الملف عن طريق إدارة البحث الجنائي عن طريق "طرح" جميع أقران IPFS المتاح له (والذي تمكن بالفعل من "التعرف عليه"). هؤلاء بدورهم سوف يسألون الآخرين. وهكذا ، حتى يتم العثور على الملف. في الواقع ، يحدث نفس الشيء عندما نحاول الحصول على الملف من خلال بوابة
ipfs.io الرسمية. إذا كنت محظوظًا ، فسيتم العثور على الملف في بضع ثوانٍ. وإذا لم يكن الأمر كذلك ، فلن يتم العثور عليه في بضع دقائق ، مما يؤثر بشكل كبير على راحة العمل. لكننا نعرف أين سيظهر هذا الملف أولاً. إذن لماذا لا نخبر خادمنا المحلي على الفور "انظر هناك أولاً"؟ على ما يبدو ، يمكن القيام بذلك.
1. انتقل إلى الخادم البعيد وابحث عن ~ / .ipfs / config في التكوين
"Identity": { "PeerID": "QmeCWX1DD7HnPSuMHZSh6tFuxxxxxxxxxxxxxxxx",
2. ننفذ حالة ipfs لخدمة sudo ونبحث عن إدخالات Swarm فيها ، على سبيل المثال:
Swarm announcing /ip4/ip__/tcp/4001
3. من هذا نضيف العنوان العام للنموذج "/ ip4 / ip_your_server / tcp / 4001 / ipfs / $ PeerID".
4. من أجل الموثوقية ، من خلال webui المحلي ، سنحاول إضافة هذا العنوان إلى أقرانه.

5. إذا كان كل شيء على ما يرام ، افتح التكوين المحلي ~ / .ipfs / config ، ابحث عن "Bootstrap" فيه: [...
وأضف العنوان المستلم أولاً إلى الصفيف.
أعد تشغيل IPFS.
الآن قم بإضافة الملف إلى الخادم الخارجي وحاول أن تطلب ذلك على الخادم المحلي. يجب أن تطير بسرعة.
لكن هذه الوظيفة لا تزال غير مستقرة. بقدر ما أفهم ، حتى لو حددنا عنوان النظير في Bootstrap ، في سياق العمل ، يقوم ipfs بتغيير قائمة الاتصالات النشطة مع أقرانه. على أي حال ، تجري هنا مناقشة لهذا الأمر ورغبات حول إمكانية الإشارة إلى نظرائهم الدائمين ويبدو
أنه من المفترض أن تضيف بعض الوظائف إلى ipfs@5.0+
يمكن الاطلاع على قائمة من أقرانهم الحاليين في webui وفي المحطة.
ipfs swarm peers
على حد سواء هناك وهناك يمكنك إضافة عيدك يدويا.
ipfs swarm connect "/ip4/ip__/tcp/4001/ipfs/$PeerID"
حتى تقوم بتحسين هذه الوظيفة ، يمكنك كتابة أداة للتحقق من وجود اتصال مع النظير المطلوب ، وإذا لم يكن الأمر كذلك ، لإضافة اتصال.
منطق
من بين أولئك الذين لديهم دراية بالفعل بـ IPFS ، توجد حجج ضد IPFS وضدها. من حيث المبدأ ، دفعني يوم أمس إلى
مناقشة الأمس لحفر IPFS مرة أخرى. وفيما يتعلق بالمناقشة المذكورة أعلاه: لا يمكنني القول أنني أعارض بشدة بعض الحجج المذكورة أعلاه والتي أعربت عنها (لا أوافق على حقيقة أن مبرمجًا ونصف يستخدم IPFS). بشكل عام ، كلاهما على حق بطريقته الخاصة (لا سيما
التعليق على الشيكات يجعلك تعتقد). ولكن إذا وضعت جانباً التقييم الأخلاقي والقانوني ، فمن الذي سيقدم تقييماً تقنياً لهذه التقنية؟ شخصيا ، لدي شعور داخلي بأن "هذا ضروري بالتأكيد ، له آفاق معينة." ولكن لماذا بالضبط ، لا توجد صياغة واضحة. مثل إذا نظرت إلى الأدوات المركزية الحالية ، فهي في كثير من النواحي متقدمة جدًا (الاستقرار والسرعة وسهولة الإدارة وما إلى ذلك). ومع ذلك ، لدي فكرة واحدة ، والتي يبدو من المنطقي والتي بالكاد يمكن تنفيذها دون هذه النظم اللامركزية. بالطبع ، أنا أراود رأيي حقًا ، لكنني سأقوم بصياغتها بهذه الطريقة: يجب تغيير مبدأ نشر المعلومات على الإنترنت.
ساوضح. إذا كنت تعتقد ذلك ، يتم نشر معلوماتنا الآن على مبدأ "آمل أن يحميها الشخص الذي قمت بنقله إليه ولن يتم فقده أو استلامه لمن لم يكن الغرض منه." على سبيل المثال ، من السهل مراعاة خدمات البريد المختلفة والتخزين السحابي وما إلى ذلك. وماذا لدينا في النهاية؟ فيما يتعلق بـ Habré Hub ، فإن
أمن المعلومات على الخط الأول ، وفي كل يوم تقريبًا نتلقى أخبارًا عن تسرب عالمي آخر. من حيث المبدأ ، يتم سرد كل الأكثر إثارة للاهتمام في مقالة </ سخرية> رائعة>
انتهى الصيف تقريبا. تقريبا لا تسربت البيانات . أي أن عمالقة الإنترنت الرئيسيين أصبحت أكبر ، وهي تجمع معلومات أكثر وأكثر ، وهذه التسريبات هي نوع من التفجيرات الذرية المعلوماتية. هذا لم يحدث أبدا ، وهنا مرة أخرى. في الوقت نفسه ، على الرغم من أن الكثيرين يدركون وجود مخاطر ، إلا أنهم سيواصلون الوثوق ببياناتهم مع شركات خارجية. أولاً ، لا يوجد بديل كثير ، وثانياً ، يعدون أنهم قاموا بتصحيح جميع الثقوب وهذا لن يحدث أبدًا مرة أخرى.
ما الخيار الذي أراه؟ يبدو لي أنه ينبغي في البداية توزيع البيانات علنًا. لكن الانفتاح في هذه الحالة لا يعني أن كل شيء يجب أن يكون سهل القراءة. أنا أتحدث عن انفتاح التخزين والتوزيع ، ولكن ليس الانفتاح التام في القراءة. أفترض أنه ينبغي توزيع المعلومات باستخدام المفاتيح العامة. بعد كل شيء ، مبدأ المفاتيح العامة / الخاصة قديم بالفعل ، مثل الإنترنت تقريبًا. إذا كانت المعلومات غير سرية ومصممة لمجموعة واسعة ، فسيتم وضعها على الفور مع المفتاح العمومي (ولكن لا يزال في شكل مشفر ، يمكن لأي شخص فقط فك تشفيرها باستخدام المفتاح الحالي). وإذا لم يكن الأمر كذلك ، فسيتم وضعه بدون مفتاح عمومي ، ويتم نقل المفتاح نفسه إلى ذلك الذي يجب أن يكون له حق الوصول إلى هذه المعلومات. في الوقت نفسه ، يجب أن يكون لدى الشخص الذي يحتاج إلى قراءته مفتاح فقط ، وأين يمكن الحصول على هذه المعلومات ، لا ينبغي أن يرتفع - فهو يسحبه من الشبكة (هذا هو المبدأ الجديد للتوزيع على المحتوى وليس على العنوان).
وبالتالي ، في حالة حدوث هجوم جماعي ، سيحتاج المهاجمون إلى الحصول على عدد كبير من المفاتيح الخاصة ، ومن غير المرجح أن يتمكنوا من القيام بذلك في مكان واحد. هذه المهمة ، كما أراها ، أصعب من اختراق خدمة معينة.
وهنا تغلق مشكلة أخرى: تأكيد التأليف. الآن على الإنترنت ، يمكنك العثور على العديد من علامات الاقتباس التي كتبها أصدقاؤنا. لكن أين هو الضمان الذي كتبوه؟ الآن ، إذا كان كل تسجيل من هذا القبيل مصحوبًا بتوقيع رقمي ، فسيكون ذلك أكثر بساطة. وبغض النظر عن المكان الذي تكمن فيه هذه المعلومات ، فإن الشيء الرئيسي هو التوقيع ، والذي من الواضح أنه يصعب تزويره.
وإليك ما يثير الاهتمام هنا: IPFS يحمل بالفعل أدوات التشفير (بعد كل شيء ، فهو مبني على تقنية blockchain). يتم تحديد المفتاح الخاص على الفور في التكوين.
"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 / ج / 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 / أف ب + 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.................
لست متخصصًا في مجال الأمن ولا يمكنني معرفة كيفية استخدامه بشكل صحيح ، لكن يبدو لي أن هذه المفاتيح تُستخدم على مستوى التبادل بين عقد IPFS. وكذلك
js-ipfs ومثل هذه المشاريع مثل
orbit-db ، والتي تعمل
orbit.chat . وهذا من الناحية النظرية ، يمكن بسهولة تجهيز كل جهاز (محمول وليس فقط) بأجهزة فك تشفير خاصة به. في هذه الحالة ، يبقى فقط على الجميع الاهتمام بصيانة مفاتيحهم الخاصة وسيكون الجميع مسؤولين عن أمنهم الخاص ، ولن يكونوا رهينة لعامل بشري آخر في بعض شركات الإنترنت العملاقة ذات الشعبية الكبيرة.