كوبو: تنفيذ IPFS في GO
أول تطبيق لIPFS.
كان Kubo أول تطبيق IPFS وهو الأكثر استخدامًا اليوم. تنفيذ نظام الملفات بين الكواكب - معيار Web3 لمعالجة المحتوى، وقابل للتشغيل المتبادل مع HTTP. وبالتالي يتم تشغيله بواسطة نماذج بيانات IPLD وlipp2p للاتصالات عبر الشبكة. كوبو مكتوب بلغة Go.
مجموعة الميزات
تشغيل عقدة IPFS كخدمة شبكة تشكل جزءًا من LAN وWAN DHT
وظيفة بوابة HTTP ( /ipfs
و /ipns
) لاسترجاع المحتوى الموثوق به وغير الموثوق به
تنفيذ العميل والخادم HTTP Routing V1 ( /routing/v1
) لعمليات بحث التوجيه المفوضة
HTTP Kubo RPC API ( /api/v0
) للوصول إلى البرنامج الخفي والتحكم فيه
واجهة سطر الأوامر تعتمد على ( /api/v0
) RPC API
WebUI لإدارة عقدة Kubo
دعم حظر المحتوى لمشغلي العقد العامة
انظر القائمة
IPFS هو نظام ملفات عالمي، مُصدر، من نظير إلى نظير. فهو يجمع بين الأفكار الجيدة من الأنظمة السابقة مثل Git وBitTorrent وKademlia وSFS والويب. إنه مثل سرب BitTorrent واحد، يتبادل كائنات git. يوفر IPFS واجهة بسيطة مثل ويب HTTP، ولكن مع الاستمرارية المضمنة. يمكنك أيضًا تحميل العالم على /ipfs.
لمزيد من المعلومات راجع: https://docs.ipfs.tech/concepts/what-is-ipfs/
قبل فتح العدد، فكر في استخدام أحد المواقع التالية للتأكد من أنك تفتح موضوعك في المكان الصحيح:
أخطاء تنفيذ kubo (التي كانت تسمى سابقًا go-ipfs) في هذا الريبو.
مشاكل التوثيق في قضايا ipfs/docs.
تصميم IPFS في قضايا ipfs/المواصفات.
استكشاف أفكار جديدة في قضايا ipfs/notes.
اطرح الأسئلة وتعرف على بقية المجتمع في منتدى IPFS.
أو الدردشة معنا.
معالم على جيثب
ما هو كوبو؟
ما هو IPFS؟
المعالم التالية
جدول المحتويات
القضايا الأمنية
الحد الأدنى من متطلبات النظام
ثَبَّتَ
قم بتثبيت اذهب
تحميل وتجميع IPFS
استكشاف الأخطاء وإصلاحها
التجميع المتقاطع
ماكبورتس
لا شيء
البيرة المنزلية
شوكولاتة
مغرفة
com.ArchLinux
جنتو لينكس
لا شيء
سولوس
openSUSE
غيكس
فرقعة
أوبونتو PPA
تحديث
باستخدام تحديث ipfs
تنزيل الإصدارات باستخدام IPFS
عامل ميناء
الثنائيات الرسمية المعدة مسبقًا
حزم Linux غير الرسمية
حزم ويندوز غير الرسمية
حزم MacOS غير الرسمية
البناء من المصدر
ابدء
الاستخدام
بعض الأشياء التي يجب تجربتها
استكشاف الأخطاء وإصلاحها
الحزم
تطوير
خريطة للأنظمة الفرعية المنفذة
سطر الأوامر، HTTP-API، مخطط الهندسة المعمارية
اختبار
تبعيات التنمية
ملاحظات المطور
معلومات المشرف
المساهمة
رخصة
يرجى متابعة SECURITY.md
.
يمكن تشغيل IPFS على معظم أنظمة Linux وmacOS وWindows. نوصي بتشغيله على جهاز به ما لا يقل عن 4 جيجابايت من ذاكرة الوصول العشوائي (RAM) ونواة وحدة المعالجة المركزية (kubo متوازي للغاية). في الأنظمة ذات الذاكرة الأقل، قد لا يكون مستقرًا تمامًا، ويمكنك تشغيله على مسؤوليتك الخاصة.
توجد تعليمات التنزيل الأساسية لـ IPFS على: https://docs.ipfs.tech/install/. يوصى بشدة باتباع هذه التعليمات إذا لم تكن مهتمًا بالعمل على تطوير IPFS.
يتم نشر الصور الرسمية على https://hub.docker.com/r/ipfs/kubo/:
؟ الإصدارات
تشير latest
وعلامات release
دائمًا إلى أحدث إصدار ثابت
يشير vN.NN
إلى علامة إصدار محددة
هذه هي الصور الصف الإنتاج.
؟ نحن نقدم أيضًا تصميمات تجريبية للمطورين
يشير master-latest
دائمًا إلى HEAD
الفرع master
يشير master-YYYY-DD-MM-GITSHA
إلى التزام محدد من الفرع master
يتم استخدام هذه العلامات من قبل المطورين للاختبار الداخلي، وليست مخصصة للمستخدمين النهائيين أو للاستخدام الإنتاجي.
$ docker pull ipfs/kubo:latest$ docker run --rm -it --net=host ipfs/kubo:latest
لتخصيص العقدة الخاصة بك، قم بتمرير التكوين الضروري عبر -e
أو عن طريق تركيب البرامج النصية في /container-init.d
.
تعرف على المزيد على https://docs.ipfs.tech/install/run-ipfs-inside-docker/
يتم نشر الثنائيات الرسمية على https://dist.ipfs.tech#kubo:
من هناك:
انقر فوق الزر الأزرق "تنزيل Kubo" على الجانب الأيمن من الصفحة.
فتح/استخراج الأرشيف.
انقل kubo ( ipfs
) إلى المسار الخاص بك ( يمكن لـ install.sh
القيام بذلك نيابةً عنك).
إذا لم تتمكن من الوصول إلى dist.ipfs.tech، فيمكنك أيضًا تنزيل kubo (go-ipfs) من:
صفحة إصدارات GitHub لهذا المشروع
/ipns/dist.ipfs.tech
على بوابة dweb.link
يحتوي IPFS على أداة تحديث يمكن الوصول إليها من خلال ipfs update
. لم يتم تثبيت الأداة جنبًا إلى جنب مع IPFS من أجل الحفاظ على هذا المنطق مستقلاً عن قاعدة التعليمات البرمجية الرئيسية. لتثبيت أداة ipfs-update
، قم بتنزيلها هنا.
قم بإدراج الإصدارات المتاحة من تطبيق Kubo (go-ipfs):
$ ipfs cat /ipns/dist.ipfs.tech/kubo/versions
بعد ذلك، لعرض الإصدارات المتوفرة لإصدار من الأمر السابق ( $VERSION
):
$ ipfs ls /ipns/dist.ipfs.tech/kubo/$VERSION
لتنزيل نسخة معينة من الإصدار:
$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_darwin-386.tar.gz # darwin 32 بت build$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_ $VERSION_darwin-amd64.tar.gz # darwin 64 بت build$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_freebsd-amd64.tar.gz # freebsd 64 بت build$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_linux- 386.tar.gz # Linux 32 بت build$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_linux-amd64.tar.gz # Linux 64 بت build$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_linux- Arm.tar.gz # Linux Arm Build$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_windows-amd64.zip # إصدار Windows 64 بت
com.ArchLinux
جنتو لينكس
لا شيء
سولوس
openSUSE
غيكس
فرقعة
أوبونتو PPA
# بكمن -S كوبو
https://wiki.gentoo.org/wiki/Kubo
# الظهور -a net-p2p/kubo
https://packages.gentoo.org/packages/net-p2p/kubo
باستخدام مدير الحزم الوظيفي البحت Nix، يمكنك تثبيت kubo (go-ipfs) مثل هذا:
$ nix-env -i kubo
يمكنك أيضًا تثبيت الحزمة باستخدام اسم السمة الخاصة بها، وهو أيضًا kubo
.
حزمة لسولوس
$ sudo eopkg install kubo
يمكنك أيضًا تثبيته من خلال مركز برامج Solus.
حزمة المجتمع لـ go-ipfs
حزمة المجتمع لـ go-ipfs ليست قديمة.
لم يعد مدعومًا، راجع الأساس المنطقي في kubo#8688.
صفحة PPA الرئيسية على Launchpad.
sudo add-apt-repository ppa:twdragon/ipfs سودو التحديث المناسب Sudo مناسب لتثبيت ipfs-kubo
sudo suecho 'deb https://ppa.launchpadcontent.net/twdragon/ipfs/ubuntu <> main' >> /etc/apt/sources.list.d/ipfsecho 'deb-src https://ppa. Launchpadcontent.net/twdragon/ipfs/ubuntu < > main' >> /etc/apt/sources.list.d/ipfsexitsudo التحديث المناسب Sudo مناسب لتثبيت ipfs-kubo
حيث <
هو الاسم الرمزي لتوزيع Ubuntu الخاص بك (على سبيل المثال، jammy
لـ 22.04 LTS). أثناء التثبيت الأول، قد يسألك البرنامج النصي لصيانة الحزمة تلقائيًا عن ملف تعريف الشبكة و/أو نموذج محاسبة وحدة المعالجة المركزية و/أو ملف تكوين العقدة الموجود الذي تريد استخدامه.
ملاحظة : قد تعمل هذه الطريقة أيضًا مع أي توزيعة متوافقة مبنية على Debian والتي تحتوي على libc6
بداخلها وAPT كمدير للحزم.
شوكولاتة
مغرفة
لم يعد مدعومًا، راجع الأساس المنطقي في kubo#9341.
يوفر Scoop kubo كـ kubo
في مجموعة "الإضافات" الخاصة به.
PS> دلو مغرفة إضافة إضافات PS> مغرفة تثبيت كوبو
ماكبورتس
لا شيء
البيرة المنزلية
تشير الحزمة ipfs حاليًا إلى kubo (go-ipfs) وتتم صيانتها.
$ sudo port install ipfs
في نظام التشغيل macOS، يمكنك استخدام مدير الحزم الوظيفي البحت Nix:
$ nix-env -i kubo
يمكنك أيضًا تثبيت الحزمة باستخدام اسم السمة الخاصة بها، وهو أيضًا kubo
.
يتم الحفاظ على صيغة Homebrew ipfs أيضًا.
$ brew install --formula ipfs
يتطلب نظام بناء kubo استخدام Go وبعض أدوات بناء POSIX القياسية:
صنع جنو
بوابة
دول مجلس التعاون الخليجي (أو بعض مترجمات C الأخرى المتوافقة) (اختياري)
للبناء بدون دول مجلس التعاون الخليجي، قم بالبناء باستخدام CGO_ENABLED=0
(على سبيل المثال، make build CGO_ENABLED=0
).
إذا كنت بحاجة إلى التحديث: قم بتنزيل أحدث إصدار من Go.
ستحتاج إلى إضافة دلائل Go's bin إلى متغير بيئة $PATH
الخاص بك، على سبيل المثال، عن طريق إضافة هذه السطور إلى /etc/profile
(للتثبيت على مستوى النظام) أو $HOME/.profile
:
export PATH=$PATH:/usr/local/go/bin export PATH=$PATH:$GOPATH/bin
(إذا واجهت مشكلة، راجع تعليمات التثبيت Go).
$ git clone https://github.com/ipfs/kubo.git $ cd kubo $ make install
وبدلاً من ذلك، يمكنك تشغيل make build
لإنشاء ملف go-ipfs الثنائي (تخزينه في cmd/ipfs/ipfs
) دون تثبيته.
ملاحظة: إذا حصلت على خطأ على غرار "خطأ فادح: stdlib.h: لا يوجد مثل هذا الملف أو الدليل"، فأنت تفتقد مترجم C. قم بإعادة تشغيل make
باستخدام CGO_ENABLED=0
أو تثبيت مجلس التعاون الخليجي.
يعد التجميع لمنصة مختلفة أمرًا بسيطًا مثل التشغيل:
make build GOOS=myTargetOS GOARCH=myTargetArchitecture
تتوفر تعليمات منفصلة للبناء على نظام التشغيل Windows.
مطلوب git
من أجل go get
جميع التبعيات.
غالبًا ما يحتوي مديرو الحزم على حزم golang
قديمة. تأكد من أن تقارير go version
لا تقل عن 1.10. انظر أعلاه لمعرفة كيفية تثبيت go.
إذا كنت مهتمًا بالتطوير، فيرجى تثبيت تبعيات التطوير أيضًا.
يمكن إنشاء عمليات إكمال أوامر Shell باستخدام أحد ipfs commands completion
. اقرأ docs/command-completion.md لمعرفة المزيد.
راجع مجلد Misc لمعرفة كيفية توصيل IPFS بـ systemd أو أي نظام init يستخدمه التوزيع الخاص بك.
لبدء استخدام IPFS، يجب عليك أولاً تهيئة ملفات تكوين IPFS على نظامك، ويتم ذلك باستخدام ipfs init
. راجع ipfs init --help
للحصول على معلومات حول الوسائط الاختيارية التي يتطلبها. بعد اكتمال التهيئة، يمكنك استخدام ipfs mount
و ipfs add
وأي من الأوامر الأخرى للاستكشاف!
الدليل الأساسي على "عمل ipfs" محليًا:
echo "hello world" > hello ipfs add hello # This should output a hash string that looks something like: # QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o ipfs cat
للتفاعل البرمجي مع Kubo، راجع قائمتنا لعملاء HTTP/RPC.
إذا كنت قد قمت مسبقًا بتثبيت IPFS من قبل وكنت تواجه مشكلات في تشغيل الإصدار الأحدث، فحاول حذف (أو النسخ الاحتياطي في مكان آخر) دليل تكوين IPFS الخاص بك (~/.ipfs افتراضيًا) وإعادة تشغيل ipfs init
. سيؤدي هذا إلى إعادة تهيئة ملف التكوين إلى إعداداته الافتراضية ومسح مخزن البيانات المحلي من أي إدخالات سيئة.
يرجى توجيه الأسئلة العامة وطلبات المساعدة إلى منتدياتنا.
إذا كنت تعتقد أنك عثرت على خطأ ما، فتحقق من قائمة المشكلات، وإذا لم تجد مشكلتك هناك، فإما أن تتحدث إلينا على دردشة Matrix، أو قم بتقديم مشكلة خاصة بك!
راجع IPFS في وثائق GO.
بعض الأماكن التي يمكنك البدء بها في قاعدة التعليمات البرمجية:
الملف الرئيسي: ./cmd/ipfs/main.go
أوامر واجهة سطر الأوامر: ./core/commands/
Bitswap (محرك تداول البيانات): go-bitswap
libp2p
libp2p: https://github.com/libp2p/go-libp2p
دهت: https://github.com/libp2p/go-libp2p-kad-dht
IPFS: تم إزالة الغموض عن أمر Add
WIP : هذا مخطط معماري عالي المستوى للأنظمة الفرعية المختلفة لهذا التنفيذ المحدد. ليتم تحديثها مع كيفية تفاعلهم. نرحب بأي شخص لديه اقتراحات للتعليق هنا حول كيف يمكننا تحسين هذا!
أصل
الوصف: منقط يعني "من المحتمل أن يختفي". الأجزاء "التراثية" عبارة عن أغلفة رقيقة حول بعض الأوامر للترجمة بين النظام الجديد والنظام القديم. الأجزاء الرمادية في الرسم التخطيطي "الخفي" موجودة لإظهار أن الكود متماثل، كل ما في الأمر هو أننا نقوم بتشغيل بعض الأجزاء وإيقاف تشغيل بعض الأجزاء اعتمادًا على ما إذا كنا نعمل على العميل أو الخادم.
make test
إذا قمت بإجراء تغييرات على المخازن المؤقتة للبروتوكول، فستحتاج إلى تثبيت مترجم protoc.
يمكنك العثور على مزيد من الوثائق للمطورين على المستندات
تتم صيانة كوبو بواسطة حوض بناء السفن.
يعد هذا المستودع جزءًا من عملية فرز GO Triage الخاصة بحوض بناء السفن.
عملية الإصدار
نحن ❤️ جميع المساهمين لدينا؛ هذا المشروع لن يكون كما هو بدونك! إذا كنت تريد المساعدة، يرجى مراجعة CONTRIBUTING.md.
يندرج هذا المستودع ضمن قواعد سلوك IPFS.
يقدم أعضاء مجتمع IPFS دعم Kubo في فئة منتدى المناقشة هنا.
هل تحتاج إلى مساعدة بشأن IPFS نفسه؟ تعرف على مكان الحصول على المساعدة والدعم على https://ipfs.tech/help.
هذا المشروع مرخص بشكل مزدوج بموجب شروط Apache 2.0 وMIT:
ترخيص Apache، الإصدار 2.0، (LICENSE-APACHE أو http://www.apache.org/licenses/LICENSE-2.0)
ترخيص معهد ماساتشوستس للتكنولوجيا (LICENSE-MIT أو http://opensource.org/licenses/MIT)