docs(readme): rename to kubo

some things like third party package names, docker image etc need to
stay as go-ipfs for now
This commit is contained in:
Marcin Rataj 2022-06-19 23:41:26 +02:00
parent 82467bc936
commit 5cb572660d

View File

@ -1,27 +1,28 @@
# kubo
> the oldest IPFS implementation, previously known as "go-ipfs"
![kubo](https://user-images.githubusercontent.com/157609/167471494-dee3a355-b551-4fbf-98e0-2eb76e867b48.png)
[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square&cacheSeconds=3600)](https://protocol.ai)
[![GoDoc](https://img.shields.io/badge/godoc-reference-5272B4.svg?style=flat-square&cacheSeconds=3600)](https://godoc.org/github.com/ipfs/go-ipfs)
[![CircleCI](https://img.shields.io/circleci/build/github/ipfs/go-ipfs?style=flat-square&cacheSeconds=3600)](https://circleci.com/gh/ipfs/go-ipfs)
[![GoDoc](https://img.shields.io/badge/godoc-reference-5272B4.svg?style=flat-square&cacheSeconds=3600)](https://godoc.org/github.com/ipfs/kubo)
[![CircleCI](https://img.shields.io/circleci/build/github/ipfs/kubo?style=flat-square&cacheSeconds=3600)](https://circleci.com/gh/ipfs/kubo)
## What is "IPFS Banana"?
## What is Kubo?
This repo provides "jack of all trades, master of none" implementation of IPFS.
Kubo is the oldest IPFS implementation, previously known as go-ipfs.
Think of it as a "jack of all trades, master of none" implementation of IPFS.
It should be enough to get you started, if you find it lacking, see [other implementations](https://ipfs.io/#install).
## What is IPFS?
IPFS is a global, versioned, peer-to-peer filesystem. It combines good ideas from previous systems such as Git, BitTorrent, Kademlia, SFS, and the Web. It is like a single BitTorrent swarm, exchanging git objects. IPFS provides an interface as simple as the HTTP web, but with permanence built-in. You can also mount the world at /ipfs.
For more info see: https://docs.ipfs.io/introduction/overview/
Before opening an issue, consider using one of the following locations to ensure you are opening your thread in the right place:
- kubo (previously named go-ipfs) _implementation_ bugs in [this repo](https://github.com/ipfs/go-ipfs/issues).
- kubo (previously named go-ipfs) _implementation_ bugs in [this repo](https://github.com/ipfs/kubo/issues).
- Documentation issues in [ipfs/docs issues](https://github.com/ipfs/ipfs-docs/issues).
- IPFS _design_ in [ipfs/specs issues](https://github.com/ipfs/specs/issues).
- Exploration of new ideas in [ipfs/notes issues](https://github.com/ipfs/notes/issues).
@ -32,19 +33,13 @@ Before opening an issue, consider using one of the following locations to ensure
## Next milestones
[Milestones on GitHub](https://github.com/ipfs/go-ipfs/milestones)
[Milestones on GitHub](https://github.com/ipfs/kubo/milestones)
<!-- ToDo automate creation of these
[![GitHub milestone version 0.9.1](https://img.shields.io/github/milestones/progress/ipfs/go-ipfs/51?logo=ipfs&style=flat-square&cacheSeconds=3600)](https://github.com/ipfs/go-ipfs/milestone/51)
[![GitHub milestone version 0.10](https://img.shields.io/github/milestones/progress/ipfs/go-ipfs/48?logo=ipfs&style=flat-square&cacheSeconds=3600)](https://github.com/ipfs/go-ipfs/milestone/48)
[![GitHub milestone version 0.11](https://img.shields.io/github/milestones/progress/ipfs/go-ipfs/50?logo=ipfs&style=flat-square&cacheSeconds=3600)](https://github.com/ipfs/go-ipfs/milestone/50)
[![GitHub milestone version 0.12](https://img.shields.io/github/milestones/progress/ipfs/go-ipfs/49?logo=ipfs&style=flat-square&cacheSeconds=3600)](https://github.com/ipfs/go-ipfs/milestone/49)
-->
## Table of Contents
- [kubo](#kubo)
- [What is "IPFS Banana"?](#what-is-ipfs-banana)
- [What is Kubo?](#what-is-kubo)
- [What is IPFS?](#what-is-ipfs)
- [Next milestones](#next-milestones)
- [Table of Contents](#table-of-contents)
@ -101,18 +96,18 @@ The canonical download instructions for IPFS are over at: https://docs.ipfs.io/g
### System Requirements
IPFS can run on most Linux, macOS, and Windows systems. We recommend running it on a machine with at least 2 GB of RAM and 2 CPU cores (go-ipfs is highly parallel). On systems with less memory, it may not be completely stable.
IPFS can run on most Linux, macOS, and Windows systems. We recommend running it on a machine with at least 2 GB of RAM and 2 CPU cores (kubo is highly parallel). On systems with less memory, it may not be completely stable.
If your system is resource-constrained, we recommend:
1. Installing OpenSSL and rebuilding go-ipfs manually with `make build GOTAGS=openssl`. See the [download and compile](#download-and-compile-ipfs) section for more information on compiling go-ipfs.
1. Installing OpenSSL and rebuilding kubo manually with `make build GOTAGS=openssl`. See the [download and compile](#download-and-compile-ipfs) section for more information on compiling kubo.
2. Initializing your daemon with `ipfs init --profile=lowpower`
### Docker
[![Docker Image Version (latest semver)](https://img.shields.io/docker/v/ipfs/go-ipfs?color=blue&label=go-ipfs%20docker%20image&logo=docker&sort=semver&style=flat-square&cacheSeconds=3600)](https://hub.docker.com/r/ipfs/go-ipfs/)
More info on how to run go-ipfs inside docker can be found [here](https://docs.ipfs.io/how-to/run-ipfs-inside-docker/).
More info on how to run kubo inside docker can be found [here](https://docs.ipfs.io/how-to/run-ipfs-inside-docker/).
### Native Linux package managers
@ -133,7 +128,7 @@ More info on how to run go-ipfs inside docker can be found [here](https://docs.i
#### <a name="nix-linux">Nix</a>
With the purely functional package manager [Nix](https://nixos.org/nix/) you can install go-ipfs like this:
With the purely functional package manager [Nix](https://nixos.org/nix/) you can install kubo (go-ipfs) like this:
```
$ nix-env -i ipfs
@ -143,7 +138,7 @@ You can also install the Package by using its attribute name, which is also `ipf
#### Solus
In solus, go-ipfs is available in the main repository as
In solus, kubo (go-ipfs) is available in the main repository as
[go-ipfs](https://dev.getsol.us/source/go-ipfs/repository/master/).
```
@ -183,7 +178,7 @@ The snap sets `IPFS_PATH` to `SNAP_USER_COMMON`, which is usually `~/snap/ipfs/c
$ sudo mount --bind ~/.ipfs ~/snap/ipfs/common
```
If you want something more sophisticated to escape the snap confinement, we recommend using a different method to install `go-ipfs` so that it is not subject to snap confinement.
If you want something more sophisticated to escape the snap confinement, we recommend using a different method to install kubo so that it is not subject to snap confinement.
#### macOS package managers
@ -193,7 +188,7 @@ If you want something more sophisticated to escape the snap confinement, we reco
#### MacPorts
The package [ipfs](https://ports.macports.org/port/ipfs) currently points to go-ipfs and is being maintained.
The package [ipfs](https://ports.macports.org/port/ipfs) currently points to kubo (go-ipfs) and is being maintained.
```
$ sudo port install ipfs
@ -232,7 +227,8 @@ PS> choco install ipfs
#### Scoop
Scoop provides `go-ipfs` in its 'extras' bucket.
Scoop provides kubo as `go-ipfs` in its 'extras' bucket.
```Powershell
PS> scoop bucket add extras
PS> scoop install go-ipfs
@ -240,22 +236,22 @@ PS> scoop install go-ipfs
### Install prebuilt binaries
[![dist.ipfs.io Downloads](https://img.shields.io/github/v/release/ipfs/go-ipfs?label=dist.ipfs.io&logo=ipfs&style=flat-square&cacheSeconds=3600)](https://ipfs.io/ipns/dist.ipfs.io#go-ipfs)
[![dist.ipfs.io Downloads](https://img.shields.io/github/v/release/ipfs/kubo?label=dist.ipfs.io&logo=ipfs&style=flat-square&cacheSeconds=3600)](https://dweb.link/ipns/dist.ipfs.io#kubo)
From there:
- Click the blue "Download go-ipfs" on the right side of the page.
- Click the blue "Download kubo" on the right side of the page.
- Open/extract the archive.
- Move `ipfs` to your path (`install.sh` can do it for you).
- Move kubo (`ipfs`) to your path (`install.sh` can do it for you).
You can also download go-ipfs from this project's GitHub releases page if you are unable to access [dist.ipfs.io](https://ipfs.io/ipns/dist.ipfs.io#go-ipfs):
[GitHub releases](https://github.com/ipfs/go-ipfs/releases)
If you are unable to access [dist.ipfs.io](https://dist.ipfs.io#kubo), you can also download kubo (go-ipfs) from:
- this project's GitHub [releases](https://github.com/ipfs/kubo/releases/latest) page
- `/ipns/dist.ipfs.io` at [dweb.link](https://dweb.link/ipns/dist.ipfs.io#kubo) gateway
### Build from Source
![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/ipfs/go-ipfs?label=Requires%20Go&logo=go&style=flat-square&cacheSeconds=3600)
![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/ipfs/kubo?label=Requires%20Go&logo=go&style=flat-square&cacheSeconds=3600)
go-ipfs's build system requires Go and some standard POSIX build tools:
kubo's build system requires Go and some standard POSIX build tools:
* GNU make
* Git
@ -265,7 +261,7 @@ To build without GCC, build with `CGO_ENABLED=0` (e.g., `make build CGO_ENABLED=
#### Install Go
![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/ipfs/go-ipfs?label=Requires%20Go&logo=go&style=flat-square&cacheSeconds=3600)
![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/ipfs/kubo?label=Requires%20Go&logo=go&style=flat-square&cacheSeconds=3600)
If you need to update: [Download latest version of Go](https://golang.org/dl/).
@ -281,7 +277,7 @@ export PATH=$PATH:$GOPATH/bin
#### Download and Compile IPFS
```
$ git clone https://github.com/ipfs/go-ipfs.git
$ git clone https://github.com/ipfs/kubo.git
$ cd go-ipfs
$ make install
@ -318,10 +314,10 @@ Note: OpenSSL requires CGO support and, by default, CGO is disabled when cross-c
dependencies as well.
- _WARNING_: Older versions of OSX FUSE (for Mac OS X) can cause kernel panics when mounting!-
We strongly recommend you use the [latest version of OSX FUSE](http://osxfuse.github.io/).
(See https://github.com/ipfs/go-ipfs/issues/177)
(See https://github.com/ipfs/kubo/issues/177)
- Read [docs/fuse.md](docs/fuse.md) for more details on setting up FUSE (so that you can mount the filesystem).
- Shell command completions can be generated with one of the `ipfs commands completion` subcommands. Read [docs/command-completion.md](docs/command-completion.md) to learn more.
- See the [misc folder](https://github.com/ipfs/go-ipfs/tree/master/misc) for how to connect IPFS to systemd or whatever init system your distro uses.
- See the [misc folder](https://github.com/ipfs/kubo/tree/master/misc) for how to connect IPFS to systemd or whatever init system your distro uses.
### Updating
@ -335,7 +331,7 @@ codebase. To install `ipfs update`, [download it here](https://ipfs.io/ipns/dist
<!-- TODO: rename this section after we figure out if dist.ipfs.io sgould produce both /go-ipfs/ and /kubo/ -->
List the available versions of "go-ipfs" implementation:
List the available versions of kubo (go-ipfs) implementation:
```
$ ipfs cat /ipns/dist.ipfs.io/go-ipfs/versions
@ -387,7 +383,7 @@ If you have previously installed IPFS before and you are running into problems g
Please direct general questions and help requests to our [forum](https://discuss.ipfs.io) or our IRC channel (freenode #ipfs).
If you believe you've found a bug, check the [issues list](https://github.com/ipfs/go-ipfs/issues) and, if you don't see your problem there, either come talk to us on IRC (freenode #ipfs) or file an issue of your own!
If you believe you've found a bug, check the [issues list](https://github.com/ipfs/kubo/issues) and, if you don't see your problem there, either come talk to us on [Matrix chat](https://docs.ipfs.io/community/chat/), or file an issue of your own!
## Packages
@ -460,14 +456,14 @@ For brevity, we've omitted most go-libp2p, go-ipld, and go-multiformats packages
Some places to get you started on the codebase:
- Main file: [./cmd/ipfs/main.go](https://github.com/ipfs/go-ipfs/blob/master/cmd/ipfs/main.go)
- CLI Commands: [./core/commands/](https://github.com/ipfs/go-ipfs/tree/master/core/commands)
- Main file: [./cmd/ipfs/main.go](https://github.com/ipfs/kubo/blob/master/cmd/ipfs/main.go)
- CLI Commands: [./core/commands/](https://github.com/ipfs/kubo/tree/master/core/commands)
- Bitswap (the data trading engine): [go-bitswap](https://github.com/ipfs/go-bitswap)
- libp2p
- libp2p: https://github.com/libp2p/go-libp2p
- DHT: https://github.com/libp2p/go-libp2p-kad-dht
- PubSub: https://github.com/libp2p/go-libp2p-pubsub
- [IPFS : The `Add` command demystified](https://github.com/ipfs/go-ipfs/tree/master/docs/add-code-flow.md)
- [IPFS : The `Add` command demystified](https://github.com/ipfs/kubo/tree/master/docs/add-code-flow.md)
### Map of Implemented Subsystems
**WIP**: This is a high-level architecture diagram of the various sub-systems of this specific implementation. To be updated with how they interact. Anyone who has suggestions is welcome to comment [here](https://docs.google.com/drawings/d/1OVpBT2q-NtSJqlPX3buvjYhOnWfdzb85YEsM_njesME/edit) on how we can improve this!
@ -509,5 +505,5 @@ Please reach out to us in one [chat](https://docs.ipfs.io/community/chat/) rooms
This project is dual-licensed under Apache 2.0 and MIT terms:
- Apache License, Version 2.0, ([LICENSE-APACHE](https://github.com/ipfs/go-ipfs/blob/master/LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT](https://github.com/ipfs/go-ipfs/blob/master/LICENSE-MIT) or http://opensource.org/licenses/MIT)
- Apache License, Version 2.0, ([LICENSE-APACHE](https://github.com/ipfs/kubo/blob/master/LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT](https://github.com/ipfs/kubo/blob/master/LICENSE-MIT) or http://opensource.org/licenses/MIT)