Skip to content

Commit 38117db

Browse files
authored
Merge pull request #9306 from ipfs/release-v0.16.0
release v0.16.0
2 parents 3ae52a4 + 6d85f9d commit 38117db

File tree

153 files changed

+4974
-2638
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

153 files changed

+4974
-2638
lines changed

.circleci/main.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ default_environment: &default_environment
3737
executors:
3838
golang:
3939
docker:
40-
- image: cimg/go:1.18.5
40+
- image: cimg/go:1.19.1
4141
working_directory: ~/ipfs/kubo
4242
environment:
4343
<<: *default_environment
@@ -62,7 +62,7 @@ executors:
6262
E2E_IPFSD_TYPE: go
6363
dockerizer:
6464
docker:
65-
- image: cimg/go:1.18.5
65+
- image: cimg/go:1.19.1
6666
environment:
6767
IMAGE_NAME: ipfs/kubo
6868
WIP_IMAGE_TAG: wip
@@ -156,8 +156,8 @@ jobs:
156156
- run: sudo apt update
157157
- run: |
158158
mkdir ~/localgo && cd ~/localgo
159-
wget https://golang.org/dl/go1.18.5.linux-amd64.tar.gz
160-
tar xfz go1.18.5.linux-amd64.tar.gz
159+
wget https://golang.org/dl/go1.19.1.linux-amd64.tar.gz
160+
tar xfz go1.19.1.linux-amd64.tar.gz
161161
echo "export PATH=$(pwd)/go/bin:\$PATH" >> ~/.bashrc
162162
- run: go version
163163
- run: sudo apt install socat net-tools
@@ -223,7 +223,7 @@ jobs:
223223
- *store_gomod
224224
interop:
225225
docker:
226-
- image: cimg/go:1.18.5-node
226+
- image: cimg/go:1.19.1-node
227227
parallelism: 4
228228
resource_class: large
229229
steps:

.github/workflows/codeql-analysis.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ jobs:
3131

3232
# Initializes the CodeQL tools for scanning.
3333
- name: Initialize CodeQL
34-
uses: github/codeql-action/init@v1
34+
uses: github/codeql-action/init@v2
3535
with:
3636
languages: ${{ matrix.language }}
3737

3838
- name: Autobuild
39-
uses: github/codeql-action/autobuild@v1
39+
uses: github/codeql-action/autobuild@v2
4040

4141
- name: Perform CodeQL Analysis
42-
uses: github/codeql-action/analyze@v1
42+
uses: github/codeql-action/analyze@v2

.github/workflows/golang-analysis.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
submodules: recursive
1212
- uses: actions/setup-go@v2
1313
with:
14-
go-version: "1.18.x"
14+
go-version: "1.19.x"
1515
- name: Check that go.mod is tidy
1616
uses: protocol/[email protected]
1717
with:
@@ -22,12 +22,13 @@ jobs:
2222
exit 1
2323
fi
2424
git diff --exit-code -- go.sum go.mod
25-
- name: gofmt
25+
- name: go fmt
2626
if: always() # run this step even if the previous one failed
2727
run: |
28-
out=$(gofmt -s -l .)
28+
out=$(go fmt ./...)
2929
if [[ -n "$out" ]]; then
30-
echo $out | awk '{print "::error file=" $0 ",line=0,col=0::File is not gofmt-ed."}'
30+
echo "Files are not go-fmt-ed:"
31+
echo "$out"
3132
exit 1
3233
fi
3334
- name: go vet

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Kubo Changelogs
22

3+
- [v0.16](docs/changelogs/v0.16.md)
34
- [v0.15](docs/changelogs/v0.15.md)
45
- [v0.14](docs/changelogs/v0.14.md)
56
- [v0.13](docs/changelogs/v0.13.md)

Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Note: when updating the go minor version here, also update the go-channel in snap/snapcraft.yml
2-
FROM golang:1.18.5-buster
2+
FROM golang:1.19.1-buster
33
LABEL maintainer="Steven Allen <[email protected]>"
44

55
# Install deps
@@ -111,10 +111,10 @@ ENV IPFS_LOGGING ""
111111
# 2. The API and Gateway are accessible from outside the container.
112112
ENTRYPOINT ["/sbin/tini", "--", "/usr/local/bin/start_ipfs"]
113113

114-
# Heathcheck for the container
114+
# Healthcheck for the container
115115
# QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn is the CID of empty folder
116116
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
117-
CMD ipfs dag stat /ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn || exit 1
117+
CMD ipfs dag stat /ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn || exit 1
118118

119119
# Execute the daemon subcommand by default
120120
CMD ["daemon", "--migrate=true", "--agent-version-suffix=docker"]

README.md

Lines changed: 84 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
# kubo
2-
3-
> the oldest IPFS implementation, previously known as "go-ipfs"
41

52
![kubo, an IPFS node in Go](https://ipfs.io/ipfs/bafykbzacecaesuqmivkauix25v6i6xxxsvsrtxknhgb5zak3xxsg2nb4dhs2u/ipfs.go.png)
63

@@ -10,15 +7,18 @@
107

118
## What is Kubo?
129

13-
Kubo (go-ipfs) the earliest and most widely used implementation of IPFS.
10+
Kubo was the first is the most widely used IPFS implementation today. Implementing the *Interplanetary Filesystem* - the Web3 standard and contender to replace https. Thus powered by IPLD's data models and the libp2p for network communication. Kubo is written in Go.
11+
12+
Featureset
13+
- Runs an IPFS-Node as a network service
14+
- [Command Line Interface](https://docs.ipfs.tech/reference/kubo/cli/) to IPFS-Nodes
15+
- Local [Web2-to-Web3 HTTP Gateway functionality](https://github.com/ipfs/specs/tree/main/http-gateways#readme)
16+
- HTTP RPC API (`/api/v0`) to access and control the daemon
17+
- IPFS's internal Webgui can be used to manage the Kubo nodes
1418

15-
It includes:
16-
- an IPFS daemon server
17-
- extensive [command line tooling](https://docs.ipfs.tech/reference/kubo/cli/)
18-
- an [HTTP Gateway](https://github.com/ipfs/specs/tree/main/http-gateways#readme) (`/ipfs/`, `/ipns/`) for serving content to HTTP browsers
19-
- an HTTP RPC API (`/api/v0`) for controlling the daemon node
19+
### Other implementations
2020

21-
Note: [other implementations exist](https://docs.ipfs.tech/basics/ipfs-implementations/).
21+
See [List](https://docs.ipfs.tech/basics/ipfs-implementations/)
2222

2323
## What is IPFS?
2424

@@ -51,31 +51,30 @@ Before opening an issue, consider using one of the following locations to ensure
5151
- [Install](#install)
5252
- [System Requirements](#system-requirements)
5353
- [Docker](#docker)
54-
- [Native Linux package managers](#native-linux-package-managers)
55-
- [ArchLinux](#archlinux)
54+
- [Official prebuilt binaries](#official-prebuilt-binaries)
55+
- [Updating](#updating)
56+
- [Using ipfs-update](#using-ipfs-update)
57+
- [Downloading builds using IPFS](#downloading-builds-using-ipfs)
58+
- [Unofficial Linux packages](#unofficial-linux-packages)
59+
- [ArchLinux](#arch-linux)
5660
- [Nix](#nix)
5761
- [Solus](#solus)
5862
- [openSUSE](#opensuse)
59-
- [Other package managers](#other-package-managers)
6063
- [Guix](#guix)
6164
- [Snap](#snap)
62-
- [macOS package managers](#macos-package-managers)
65+
- [Unofficial MacOS packages](#unofficial-macos-packages)
6366
- [MacPorts](#macports)
6467
- [Nix](#nix-1)
65-
- [Homebrew](#homebrew)
66-
- [Windows package managers](#windows-package-managers)
68+
- [Homebrew](#homebrew)
69+
- [Unofficial Windows packages](#unofficial-windows-packages)
6770
- [Chocolatey](#chocolatey)
6871
- [Scoop](#scoop)
69-
- [Install prebuilt binaries](#install-prebuilt-binaries)
7072
- [Build from Source](#build-from-source)
7173
- [Install Go](#install-go)
7274
- [Download and Compile IPFS](#download-and-compile-ipfs)
7375
- [Cross Compiling](#cross-compiling)
7476
- [OpenSSL](#openssl)
7577
- [Troubleshooting](#troubleshooting)
76-
- [Updating](#updating)
77-
- [Using ipfs-update](#using-ipfs-update)
78-
- [Downloading builds using IPFS](#downloading-builds-using-ipfs)
7978
- [Getting Started](#getting-started)
8079
- [Usage](#usage)
8180
- [Some things to try](#some-things-to-try)
@@ -110,19 +109,67 @@ If your system is resource-constrained, we recommend:
110109

111110
### Docker
112111

113-
[![Docker Image Version (legacy name)](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/)
114-
<!-- TODO: replace with kubo after we have minimum set of images after kubo 0.14 (stable semver release, 'latest' and 'release' docker tags)
112+
Official images are published at https://hub.docker.com/r/ipfs/kubo/:
113+
115114
[![Docker Image Version (latest semver)](https://img.shields.io/docker/v/ipfs/kubo?color=blue&label=kubo%20docker%20image&logo=docker&sort=semver&style=flat-square&cacheSeconds=3600)](https://hub.docker.com/r/ipfs/kubo/)
116-
-->
117115

118-
More info on how to run kubo (go-ipfs) inside Docker can be found [here](https://docs.ipfs.tech/how-to/run-ipfs-inside-docker/).
116+
More info on how to run Kubo (go-ipfs) inside Docker can be found [here](https://docs.ipfs.tech/how-to/run-ipfs-inside-docker/).
117+
118+
### Official prebuilt binaries
119+
120+
The official binaries are published at https://dist.ipfs.tech#kubo:
121+
122+
[![dist.ipfs.tech Downloads](https://img.shields.io/github/v/release/ipfs/kubo?label=dist.ipfs.tech&logo=ipfs&style=flat-square&cacheSeconds=3600)](https://dist.ipfs.tech#kubo)
123+
124+
From there:
125+
- Click the blue "Download Kubo" on the right side of the page.
126+
- Open/extract the archive.
127+
- Move kubo (`ipfs`) to your path (`install.sh` can do it for you).
128+
129+
If you are unable to access [dist.ipfs.tech](https://dist.ipfs.tech#kubo), you can also download kubo (go-ipfs) from:
130+
- this project's GitHub [releases](https://github.com/ipfs/kubo/releases/latest) page
131+
- `/ipns/dist.ipfs.tech` at [dweb.link](https://dweb.link/ipns/dist.ipfs.tech#kubo) gateway
132+
133+
#### Updating
134+
135+
##### Using ipfs-update
136+
137+
IPFS has an updating tool that can be accessed through `ipfs update`. The tool is
138+
not installed alongside IPFS in order to keep that logic independent of the main
139+
codebase. To install `ipfs-update` tool, [download it here](https://dist.ipfs.tech/#ipfs-update).
140+
141+
##### Downloading builds using IPFS
119142

120-
### Native Linux package managers
143+
List the available versions of Kubo (go-ipfs) implementation:
144+
145+
```console
146+
$ ipfs cat /ipns/dist.ipfs.tech/kubo/versions
147+
```
148+
149+
Then, to view available builds for a version from the previous command (`$VERSION`):
150+
151+
```console
152+
$ ipfs ls /ipns/dist.ipfs.tech/kubo/$VERSION
153+
```
154+
155+
To download a given build of a version:
156+
157+
```console
158+
$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_darwin-386.tar.gz # darwin 32-bit build
159+
$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_darwin-amd64.tar.gz # darwin 64-bit build
160+
$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_freebsd-amd64.tar.gz # freebsd 64-bit build
161+
$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_linux-386.tar.gz # linux 32-bit build
162+
$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_linux-amd64.tar.gz # linux 64-bit build
163+
$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_linux-arm.tar.gz # linux arm build
164+
$ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_windows-amd64.zip # windows 64-bit build
165+
```
166+
167+
### Unofficial Linux packages
121168

122169
- [Arch Linux](#arch-linux)
123170
- [Nix](#nix-linux)
124171
- [Solus](#solus)
125-
- [openSUSE](#openSUSE)
172+
- [openSUSE](#opensuse)
126173

127174
#### Arch Linux
128175

@@ -159,11 +206,6 @@ You can also install it through the Solus software center.
159206

160207
[Community Package for go-ipfs](https://software.opensuse.org/package/go-ipfs)
161208

162-
### Other package managers
163-
164-
- [Guix](#guix)
165-
- [Snap](#snap)
166-
167209
#### Guix
168210

169211
GNU's functional package manager, [Guix](https://www.gnu.org/software/guix/), also provides a go-ipfs package:
@@ -174,6 +216,11 @@ $ guix package -i go-ipfs
174216

175217
#### Snap
176218

219+
> ⚠️ **SNAP USE IS DISCOURAGED**
220+
>
221+
> 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.
222+
223+
177224
With snap, in any of the [supported Linux distributions](https://snapcraft.io/docs/core/install):
178225

179226
```
@@ -186,14 +233,6 @@ The snap sets `IPFS_PATH` to `SNAP_USER_COMMON`, which is usually `~/snap/ipfs/c
186233
$ sudo mount --bind ~/.ipfs ~/snap/ipfs/common
187234
```
188235

189-
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.
190-
191-
#### macOS package managers
192-
193-
- [MacPorts](#macports)
194-
- [Nix](#nix-macos)
195-
- [Homebrew](#Homebrew)
196-
197236
#### MacPorts
198237

199238
The package [ipfs](https://ports.macports.org/port/ipfs) currently points to kubo (go-ipfs) and is being maintained.
@@ -220,7 +259,7 @@ A Homebrew formula [ipfs](https://formulae.brew.sh/formula/ipfs) is maintained t
220259
$ brew install --formula ipfs
221260
```
222261

223-
### Windows package managers
262+
### Unofficial Windows packages
224263

225264
- [Chocolatey](#chocolatey)
226265
- [Scoop](#scoop)
@@ -230,7 +269,7 @@ $ brew install --formula ipfs
230269
[![Chocolatey Version](https://img.shields.io/chocolatey/v/go-ipfs?color=00a4ef&label=go-ipfs&logo=windows&style=flat-square&cacheSeconds=3600)](https://chocolatey.org/packages/go-ipfs)
231270

232271
```Powershell
233-
PS> choco install ipfs
272+
PS> choco install go-ipfs
234273
```
235274

236275
#### Scoop
@@ -242,18 +281,12 @@ PS> scoop bucket add extras
242281
PS> scoop install go-ipfs
243282
```
244283

245-
### Install prebuilt binaries
284+
### Unofficial macOS packages
246285

247-
[![dist.ipfs.tech Downloads](https://img.shields.io/github/v/release/ipfs/kubo?label=dist.ipfs.tech&logo=ipfs&style=flat-square&cacheSeconds=3600)](https://dweb.link/ipns/dist.ipfs.tech#kubo)
248-
249-
From there:
250-
- Click the blue "Download kubo" on the right side of the page.
251-
- Open/extract the archive.
252-
- Move kubo (`ipfs`) to your path (`install.sh` can do it for you).
286+
- [MacPorts](#macports)
287+
- [Nix](#nix-macos)
288+
- [Homebrew](#homebrew)
253289

254-
If you are unable to access [dist.ipfs.tech](https://dist.ipfs.tech#kubo), you can also download kubo (go-ipfs) from:
255-
- this project's GitHub [releases](https://github.com/ipfs/kubo/releases/latest) page
256-
- `/ipns/dist.ipfs.tech` at [dweb.link](https://dweb.link/ipns/dist.ipfs.tech#kubo) gateway
257290

258291
### Build from Source
259292

@@ -323,42 +356,6 @@ dependencies as well.
323356
- 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.
324357
- 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.
325358

326-
### Updating
327-
328-
#### Using ipfs-update
329-
330-
IPFS has an updating tool that can be accessed through `ipfs update`. The tool is
331-
not installed alongside IPFS in order to keep that logic independent of the main
332-
codebase. To install `ipfs update`, [download it here](https://dist.ipfs.tech/#ipfs-update).
333-
334-
#### Downloading builds using IPFS
335-
336-
<!-- TODO: rename this section after we figure out if dist.ipfs.tech sgould produce both /go-ipfs/ and /kubo/ -->
337-
338-
List the available versions of kubo (go-ipfs) implementation:
339-
340-
```
341-
$ ipfs cat /ipns/dist.ipfs.tech/go-ipfs/versions
342-
```
343-
344-
Then, to view available builds for a version from the previous command ($VERSION):
345-
346-
```
347-
$ ipfs ls /ipns/dist.ipfs.tech/go-ipfs/$VERSION
348-
```
349-
350-
To download a given build of a version:
351-
352-
```
353-
$ ipfs get /ipns/dist.ipfs.tech/go-ipfs/$VERSION/go-ipfs_$VERSION_darwin-386.tar.gz # darwin 32-bit build
354-
$ ipfs get /ipns/dist.ipfs.tech/go-ipfs/$VERSION/go-ipfs_$VERSION_darwin-amd64.tar.gz # darwin 64-bit build
355-
$ ipfs get /ipns/dist.ipfs.tech/go-ipfs/$VERSION/go-ipfs_$VERSION_freebsd-amd64.tar.gz # freebsd 64-bit build
356-
$ ipfs get /ipns/dist.ipfs.tech/go-ipfs/$VERSION/go-ipfs_$VERSION_linux-386.tar.gz # linux 32-bit build
357-
$ ipfs get /ipns/dist.ipfs.tech/go-ipfs/$VERSION/go-ipfs_$VERSION_linux-amd64.tar.gz # linux 64-bit build
358-
$ ipfs get /ipns/dist.ipfs.tech/go-ipfs/$VERSION/go-ipfs_$VERSION_linux-arm.tar.gz # linux arm build
359-
$ ipfs get /ipns/dist.ipfs.tech/go-ipfs/$VERSION/go-ipfs_$VERSION_windows-amd64.zip # windows 64-bit build
360-
```
361-
362359
## Getting Started
363360

364361
### Usage

0 commit comments

Comments
 (0)