Kubo: Implementasi IPFS di GO
Implementasi pertama IPFS.
Kubo merupakan implementasi IPFS pertama dan paling banyak digunakan saat ini. Menerapkan Sistem File Antarplanet - standar Web3 untuk pengalamatan konten, dapat dioperasikan dengan HTTP. Jadi didukung oleh model data IPLD dan libp2p untuk komunikasi jaringan. Kubo ditulis dalam Go.
Kumpulan fitur
Menjalankan IPFS-Node sebagai layanan jaringan yang merupakan bagian dari LAN dan WAN DHT
Fungsionalitas HTTP Gateway ( /ipfs
dan /ipns
) untuk pengambilan konten yang tepercaya dan tidak dapat dipercaya
Implementasi klien dan server HTTP Routing V1 ( /routing/v1
) untuk pencarian perutean yang didelegasikan
HTTP Kubo RPC API ( /api/v0
) untuk mengakses dan mengontrol daemon
Antarmuka Baris Perintah berdasarkan ( /api/v0
) RPC API
WebUI untuk mengelola node Kubo
Dukungan pemblokiran konten untuk operator node publik
Lihat Daftar
IPFS adalah sistem file global, berversi, peer-to-peer. Ini menggabungkan ide-ide bagus dari sistem sebelumnya seperti Git, BitTorrent, Kademlia, SFS, dan Web. Ini seperti segerombolan BitTorrent, bertukar objek git. IPFS menyediakan antarmuka yang sederhana seperti web HTTP, namun dengan permanen bawaan. Anda juga dapat memasang dunia di /ipfs.
Untuk info lebih lanjut lihat: https://docs.ipfs.tech/concepts/what-is-ipfs/
Sebelum membuka terbitan, pertimbangkan untuk menggunakan salah satu lokasi berikut untuk memastikan Anda membuka topik di tempat yang tepat:
bug implementasi kubo (sebelumnya bernama go-ipfs) di repo ini.
Masalah dokumentasi dalam masalah ipfs/docs.
Desain IPFS dalam masalah ipfs/spesifikasi.
Eksplorasi ide-ide baru dalam masalah ipfs/notes.
Ajukan pertanyaan dan temui komunitas lainnya di Forum IPFS.
Atau ngobrol dengan kami.
Tonggak sejarah di GitHub
Apa itu Kubo?
Apa itu IPFS?
Tonggak sejarah berikutnya
Daftar isi
Masalah Keamanan
Persyaratan Sistem Minimal
Memasang
Instal Pergi
Unduh dan Kompilasi IPFS
Pemecahan masalah
Kompilasi Silang
MacPort
Nix
minuman rumahan
coklat
Sendok
Linux Agung
Gentoo Linux
Nix
Tunggal
openSUSE
Guix
Patah
PPA Ubuntu
Memperbarui
Menggunakan pembaruan ipfs
Mengunduh build menggunakan IPFS
Buruh pelabuhan
Biner resmi yang dibuat sebelumnya
Paket Linux tidak resmi
Paket Windows tidak resmi
Paket MacOS tidak resmi
Bangun dari Sumber
Memulai
Penggunaan
Beberapa hal untuk dicoba
Pemecahan masalah
Paket
Perkembangan
Peta Subsistem yang Diimplementasikan
CLI, HTTP-API, Diagram Arsitektur
Pengujian
Ketergantungan Pembangunan
Catatan Pengembang
Info Pemelihara
Berkontribusi
Lisensi
Silakan ikuti SECURITY.md
.
IPFS dapat berjalan di sebagian besar sistem Linux, macOS, dan Windows. Kami merekomendasikan menjalankannya pada mesin dengan setidaknya 4 GB RAM dan 2 inti CPU (kubo sangat paralel). Pada sistem dengan memori lebih sedikit, ini mungkin tidak sepenuhnya stabil, dan Anda menanggung risikonya sendiri.
Petunjuk pengunduhan kanonik untuk IPFS ada di: https://docs.ipfs.tech/install/. Sangat disarankan agar Anda mengikuti petunjuk tersebut jika Anda tidak tertarik mengerjakan pengembangan IPFS.
Gambar resmi dipublikasikan di https://hub.docker.com/r/ipfs/kubo/:
? Rilis
tag latest
dan release
selalu menunjuk pada rilis stabil terbaru
vN.NN
menunjuk pada tag rilis tertentu
Ini adalah gambar kelas produksi.
? Kami juga menyediakan build pengembang eksperimental
master-latest
selalu menunjuk pada HEAD
cabang master
master-YYYY-DD-MM-GITSHA
menunjuk pada komit tertentu dari cabang master
Tag ini digunakan oleh pengembang untuk pengujian internal, tidak ditujukan untuk pengguna akhir atau penggunaan produksi.
$ buruh pelabuhan tarik ipfs/kubo:terbaru$ jalankan buruh pelabuhan --rm -itu --net=Host ipfs/kubo:terbaru
Untuk menyesuaikan node Anda, berikan konfigurasi yang diperlukan melalui -e
atau dengan memasang skrip di /container-init.d
.
Pelajari lebih lanjut di https://docs.ipfs.tech/install/run-ipfs-inside-docker/
Biner resmi dipublikasikan di https://dist.ipfs.tech#kubo:
Dari sana:
Klik warna biru "Unduh Kubo" di sisi kanan halaman.
Buka/ekstrak arsip.
Pindahkan kubo ( ipfs
) ke jalur Anda ( install.sh
dapat melakukannya untuk Anda).
Jika Anda tidak dapat mengakses dist.ipfs.tech, Anda juga dapat mengunduh kubo (go-ipfs) dari:
halaman rilis GitHub proyek ini
/ipns/dist.ipfs.tech
di gerbang dweb.link
IPFS memiliki alat pembaruan yang dapat diakses melalui ipfs update
. Alat ini tidak diinstal bersama IPFS untuk menjaga logika tersebut tetap independen dari basis kode utama. Untuk menginstal alat ipfs-update
, unduh di sini.
Buat daftar versi implementasi Kubo (go-ipfs) yang tersedia:
$ ipfs cat /ipns/dist.ipfs.tech/kubo/versions
Kemudian, untuk melihat build yang tersedia untuk versi dari perintah sebelumnya ( $VERSION
):
$ ipfs ls /ipns/dist.ipfs.tech/kubo/$VERSION
Untuk mengunduh versi versi tertentu:
$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_darwin-386.tar.gz # darwin build 32-bit$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_ $VERSION_darwin-amd64.tar.gz # darwin versi 64-bit$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_freebsd-amd64.tar.gz # freebsd versi 64-bit$ ipfs dapatkan / ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_linux-386.tar.gz # linux 32-bit build$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_linux-amd64 .tar.gz # linux 64-bit 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 # versi windows 64-bit
Linux Agung
Gentoo Linux
Nix
Tunggal
openSUSE
Guix
Patah
PPA Ubuntu
# pacman -S kubo
https://wiki.gentoo.org/wiki/Kubo
# muncul -a net-p2p/kubo
https://packages.gentoo.org/packages/net-p2p/kubo
Dengan manajer paket Nix yang berfungsi murni, Anda dapat menginstal kubo (go-ipfs) seperti ini:
$ nix-env -i kubo
Anda juga dapat menginstal Paket dengan menggunakan nama atributnya, yang juga kubo
.
Paket untuk Solus
$ sudo eopkg install kubo
Anda juga dapat menginstalnya melalui pusat perangkat lunak Solus.
Paket Komunitas untuk go-ipfs
Paket Komunitas untuk go-ipfs tidak ketinggalan zaman.
Tidak lagi didukung, lihat alasannya di kubo#8688.
Beranda PPA di Launchpad.
sudo add-apt-repository ppa:twdragon/ipfs sudo pembaruan yang tepat sudo tepat instal 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 pembaruan yang tepat sudo tepat instal ipfs-kubo
di mana <
adalah nama kode distribusi Ubuntu Anda (misalnya, jammy
untuk 22,04 LTS). Selama instalasi pertama, skrip pemeliharaan paket mungkin secara otomatis menanyakan profil jaringan, model akuntansi CPU, dan/atau file konfigurasi node mana yang ingin Anda gunakan.
CATATAN : metode ini juga dapat bekerja dengan distro berbasis Debian yang kompatibel yang memiliki libc6
di dalamnya, dan APT sebagai manajer paket.
coklat
Sendok
Tidak lagi didukung, lihat alasannya di kubo#9341.
Scoop menyediakan kubo sebagai kubo
di keranjang 'ekstra'-nya.
PS> sendok ember tambahkan ekstra PS> sendok instal kubo
MacPort
Nix
minuman rumahan
Paket ipfs saat ini mengarah ke kubo (go-ipfs) dan sedang dipertahankan.
$ sudo port install ipfs
Di macOS Anda dapat menggunakan manajer paket Nix yang berfungsi murni:
$ nix-env -i kubo
Anda juga dapat menginstal Paket dengan menggunakan nama atributnya, yang juga kubo
.
Ipfs formula Homebrew juga dipertahankan.
$ brew install --formula ipfs
Sistem pembangunan kubo memerlukan Go dan beberapa alat pembangunan POSIX standar:
buatan GNU
Git
GCC (atau Kompiler C lain yang kompatibel) (opsional)
Untuk membangun tanpa GCC, buatlah dengan CGO_ENABLED=0
(misalnya, make build CGO_ENABLED=0
).
Jika Anda perlu memperbarui: Unduh Go versi terbaru.
Anda perlu menambahkan direktori bin Go ke variabel lingkungan $PATH
, misalnya dengan menambahkan baris berikut ke /etc/profile
(untuk instalasi seluruh sistem) atau $HOME/.profile
:
export PATH=$PATH:/usr/local/go/bin export PATH=$PATH:$GOPATH/bin
(Jika Anda mengalami masalah, lihat petunjuk instalasi Go).
$ git clone https://github.com/ipfs/kubo.git $ cd kubo $ make install
Alternatifnya, Anda dapat menjalankan make build
untuk membuat biner go-ipfs (menyimpannya dalam cmd/ipfs/ipfs
) tanpa menginstalnya.
CATATAN: Jika Anda mendapatkan kesalahan seperti "kesalahan fatal: stdlib.h: Tidak ada file atau direktori", Anda kehilangan kompiler C. Jalankan kembali make
dengan CGO_ENABLED=0
atau instal GCC.
Kompilasi untuk platform berbeda semudah menjalankannya:
make build GOOS=myTargetOS GOARCH=myTargetArchitecture
Instruksi terpisah tersedia untuk membangun di Windows.
git
diperlukan agar go get
mengambil semua dependensi.
Manajer paket sering kali berisi paket golang
yang kedaluwarsa. Pastikan go version
melaporkan setidaknya 1.10. Lihat di atas untuk mengetahui cara menginstal go.
Jika Anda tertarik dengan pengembangan, silakan instal juga dependensi pengembangan.
Penyelesaian perintah shell dapat dihasilkan dengan salah satu sub-perintah ipfs commands completion
. Baca docs/command-completion.md untuk mempelajari lebih lanjut.
Lihat folder lain-lain untuk mengetahui cara menghubungkan IPFS ke systemd atau sistem init apa pun yang digunakan distro Anda.
Untuk mulai menggunakan IPFS, Anda harus terlebih dahulu menginisialisasi file konfigurasi IPFS di sistem Anda, ini dilakukan dengan ipfs init
. Lihat ipfs init --help
untuk informasi tentang argumen opsional yang diperlukan. Setelah inisialisasi selesai, Anda dapat menggunakan ipfs mount
, ipfs add
dan perintah lainnya untuk dijelajahi!
Bukti dasar 'ipfs berfungsi' secara lokal:
echo "hello world" > hello ipfs add hello # This should output a hash string that looks something like: # QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o ipfs cat
Untuk interaksi terprogram dengan Kubo, lihat daftar klien HTTP/RPC kami.
Jika Anda sebelumnya telah menginstal IPFS sebelumnya dan Anda mengalami masalah dalam menjalankan versi yang lebih baru, coba hapus (atau buat cadangan di tempat lain) direktori konfigurasi IPFS Anda (~/.ipfs secara default) dan jalankan kembali ipfs init
. Ini akan menginisialisasi ulang file konfigurasi ke defaultnya dan membersihkan penyimpanan data lokal dari semua entri yang buruk.
Silakan ajukan pertanyaan umum dan permintaan bantuan ke forum kami.
Jika Anda yakin telah menemukan bug, periksa daftar masalah dan, jika Anda tidak melihat masalah Anda di sana, hubungi kami di obrolan Matrix, atau ajukan masalah Anda sendiri!
Lihat IPFS di dokumentasi GO.
Beberapa tempat untuk membantu Anda memulai basis kode:
File utama: ./cmd/ipfs/main.go
Perintah CLI: ./core/commands/
Bitswap (mesin perdagangan data): go-bitswap
libp2p
libp2p: https://github.com/libp2p/go-libp2p
DHT: https://github.com/libp2p/go-libp2p-kad-dht
IPFS : Perintah Add
disingkapkan
WIP : Ini adalah diagram arsitektur tingkat tinggi dari berbagai subsistem implementasi spesifik ini. Untuk diperbarui dengan cara mereka berinteraksi. Siapa pun yang memiliki saran dipersilakan untuk berkomentar di sini tentang bagaimana kami dapat meningkatkannya!
Asal
Deskripsi: Titik-titik berarti "kemungkinan akan hilang". Bagian "Warisan" adalah pembungkus tipis di sekitar beberapa perintah untuk menerjemahkan antara sistem baru dan sistem lama. Bagian yang berwarna abu-abu pada diagram "daemon" ada untuk menunjukkan bahwa kodenya semua sama, hanya saja kita menghidupkan beberapa bagian dan beberapa bagian mematikannya tergantung apakah kita menjalankannya di klien atau di server.
make test
Jika Anda membuat perubahan pada buffer protokol, Anda perlu menginstal kompiler protoc.
Temukan dokumentasi lainnya untuk pengembang di dokumen
Kubo dikelola oleh Galangan Kapal.
Repositori ini adalah bagian dari triase GO Triage Galangan Kapal.
Proses Rilis
Kami ❤️ semua kontributor kami; proyek ini tidak akan seperti ini tanpa kalian! Jika Anda ingin membantu, silakan lihat CONTRIBUTING.md.
Repositori ini berada di bawah Kode Etik IPFS.
Anggota komunitas IPFS memberikan dukungan Kubo pada kategori forum diskusi di sini.
Butuh bantuan dengan IPFS itu sendiri? Pelajari di mana mendapatkan bantuan dan dukungan di https://ipfs.tech/help.
Proyek ini memiliki lisensi ganda berdasarkan ketentuan Apache 2.0 dan MIT:
Lisensi Apache, Versi 2.0, (LICENSE-APACHE atau http://www.apache.org/licenses/LICENSE-2.0)
Lisensi MIT (LICENSE-MIT atau http://opensource.org/licenses/MIT)