Skip to content

Commit e24d048

Browse files
authored
Merge branch 'master' into ajnavarro/swarm-peering-save
2 parents bfd17bd + a4594fb commit e24d048

21 files changed

+509
-420
lines changed

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.17](docs/changelogs/v0.17.md)
34
- [v0.16](docs/changelogs/v0.16.md)
45
- [v0.15](docs/changelogs/v0.15.md)
56
- [v0.14](docs/changelogs/v0.14.md)

Dockerfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
# Note: when updating the go minor version here, also update the go-channel in snap/snapcraft.yml
21
FROM golang:1.19.1-buster
32
LABEL maintainer="Steven Allen <[email protected]>"
43

README.md

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
## What is Kubo?
99

10-
Kubo was the first IPFS implementation and is the most widely used one 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.
10+
Kubo was the first IPFS implementation and is the most widely used one today. Implementing the *Interplanetary Filesystem* - the Web3 standard for content-addressing, interoperable with HTTP. Thus powered by IPLD's data models and the libp2p for network communication. Kubo is written in Go.
1111

1212
Featureset
1313
- Runs an IPFS-Node as a network service
@@ -216,22 +216,7 @@ $ guix package -i go-ipfs
216216

217217
#### Snap
218218

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-
224-
With snap, in any of the [supported Linux distributions](https://snapcraft.io/docs/core/install):
225-
226-
```
227-
$ sudo snap install ipfs
228-
```
229-
230-
The snap sets `IPFS_PATH` to `SNAP_USER_COMMON`, which is usually `~/snap/ipfs/common`. If you want to use `~/.ipfs` instead, you can bind-mount it to `~/snap/ipfs/common` like this:
231-
232-
```
233-
$ sudo mount --bind ~/.ipfs ~/snap/ipfs/common
234-
```
219+
No longer supported, see rationale in [kubo#8688](https://github.com/ipfs/kubo/issues/8688).
235220

236221
#### MacPorts
237222

@@ -266,11 +251,7 @@ $ brew install --formula ipfs
266251

267252
#### Chocolatey
268253

269-
[![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)
270-
271-
```Powershell
272-
PS> choco install go-ipfs
273-
```
254+
No longer supported, see rationale in [kubo#9341](https://github.com/ipfs/kubo/issues/9341).
274255

275256
#### Scoop
276257

@@ -378,6 +359,10 @@ Basic proof of 'ipfs working' locally:
378359
# QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o
379360
ipfs cat <that hash>
380361

362+
### HTTP/RPC clients
363+
364+
For programmatic interaction with Kubo, see our [list of HTTP/RPC clients](docs/http-rpc-clients.md).
365+
381366
### Troubleshooting
382367

383368
If you have previously installed IPFS before and you are running into problems getting a newer version to work, try deleting (or backing up somewhere else) your IPFS config directory (~/.ipfs by default) and rerunning `ipfs init`. This will reinitialize the config file to its defaults and clear out the local datastore of any bad entries.

bin/mkreleaselog

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,11 @@ recursive_release_log() {
261261

262262
printf -- "Generating Changelog for %s %s..%s\n" "$module" "$start" "$end" >&2
263263

264+
echo "### Changelog"
265+
echo
266+
echo "<details><summary>Full Changelog</summary>"
267+
echo
268+
264269
printf -- "- %s:\n" "$module"
265270
release_log "$module" "$start" "$end" | indent
266271

@@ -286,7 +291,9 @@ recursive_release_log() {
286291
done
287292

288293
echo
289-
echo "Contributors"
294+
echo "</details>"
295+
echo
296+
echo "### Contributors"
290297
echo
291298

292299
echo "| Contributor | Commits | Lines ± | Files Changed |"

config/pubsub.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,8 @@ type PubsubConfig struct {
1111

1212
// Enable pubsub (--enable-pubsub-experiment)
1313
Enabled Flag `json:",omitempty"`
14+
15+
// SeenMessagesTTL configures the duration after which a previously seen
16+
// message ID can be forgotten about.
17+
SeenMessagesTTL *OptionalDuration `json:",omitempty"`
1418
}

core/node/groups.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ func LibP2P(bcfg *BuildCfg, cfg *config.Config) fx.Option {
6464
pubsubOptions = append(
6565
pubsubOptions,
6666
pubsub.WithMessageSigning(!cfg.Pubsub.DisableSigning),
67+
pubsub.WithSeenMessagesTTL(cfg.Pubsub.SeenMessagesTTL.WithDefault(pubsub.TimeCacheDuration)),
6768
)
6869

6970
switch cfg.Pubsub.Router {

core/node/libp2p/rcmgr_defaults.go

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,31 @@ func createDefaultLimitConfig(cfg config.SwarmConfig) (rcmgr.LimitConfig, error)
8888
StreamsOutbound: 0,
8989
},
9090

91-
// Just go with what libp2p does
92-
TransientBaseLimit: rcmgr.DefaultLimits.TransientBaseLimit,
93-
TransientLimitIncrease: rcmgr.DefaultLimits.TransientLimitIncrease,
91+
TransientBaseLimit: rcmgr.BaseLimit{
92+
Memory: rcmgr.DefaultLimits.TransientBaseLimit.Memory,
93+
FD: rcmgr.DefaultLimits.TransientBaseLimit.FD,
94+
95+
Conns: bigEnough,
96+
ConnsInbound: rcmgr.DefaultLimits.TransientBaseLimit.ConnsInbound,
97+
ConnsOutbound: bigEnough,
98+
99+
Streams: bigEnough,
100+
StreamsInbound: rcmgr.DefaultLimits.TransientBaseLimit.StreamsInbound,
101+
StreamsOutbound: bigEnough,
102+
},
103+
104+
TransientLimitIncrease: rcmgr.BaseLimitIncrease{
105+
Memory: rcmgr.DefaultLimits.TransientLimitIncrease.Memory,
106+
FDFraction: rcmgr.DefaultLimits.TransientLimitIncrease.FDFraction,
107+
108+
Conns: 0,
109+
ConnsInbound: rcmgr.DefaultLimits.TransientLimitIncrease.ConnsInbound,
110+
ConnsOutbound: 0,
111+
112+
Streams: 0,
113+
StreamsInbound: rcmgr.DefaultLimits.TransientLimitIncrease.StreamsInbound,
114+
StreamsOutbound: 0,
115+
},
94116

95117
// Lets get out of the way of the allow list functionality.
96118
// If someone specified "Swarm.ResourceMgr.Allowlist" we should let it go through.

core/node/libp2p/rcmgr_logging.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func (n *loggingResourceManager) start(ctx context.Context) {
5050
n.limitExceededErrs = make(map[string]int)
5151

5252
for e, count := range errs {
53-
n.logger.Errorf("Resource limits were exceeded %d times with error %q.", count, e)
53+
n.logger.Errorf("Protected from exceeding resource limits %d times: %q.", count, e)
5454
}
5555

5656
if len(errs) != 0 {

core/node/libp2p/rcmgr_logging_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func TestLoggingResourceManager(t *testing.T) {
5555
if oLogs.Len() == 0 {
5656
continue
5757
}
58-
require.Equal(t, "Resource limits were exceeded 2 times with error \"system: cannot reserve inbound connection: resource limit exceeded\".", oLogs.All()[0].Message)
58+
require.Equal(t, "Protected from exceeding resource limits 2 times: \"system: cannot reserve inbound connection: resource limit exceeded\".", oLogs.All()[0].Message)
5959
return
6060
}
6161
}

docs/PATCH_RELEASE_TEMPLATE.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ This process handles patch releases from version `vX.Y.Z` to `vX.Y.Z+1` assuming
2424
- [ ] Release published
2525
- [ ] to [dist.ipfs.tech](https://dist.ipfs.tech)
2626
- [ ] to [npm-go-ipfs](https://www.npmjs.com/package/go-ipfs) (should be done by [ipfs/npm-go-ipfs](https://github.com/ipfs/npm-go-ipfs), but ok to dispatch [this job](https://github.com/ipfs/npm-go-ipfs/actions/workflows/main.yml) manually)
27-
- [ ] to [chocolatey](https://chocolatey.org/packages/go-ipfs) (should be done by [ipfs/choco-go-ipfs](https://github.com/ipfs/choco-go-ipfs/), but ok to dispatch [this job](https://github.com/ipfs/choco-go-ipfs/actions/workflows/main.yml) manually)
28-
- [ ] to [snap](https://snapcraft.io/ipfs) (should happen automatically, see [snap/snapcraft.yaml](https://github.com/ipfs/kubo/blob/master/snap/snapcraft.yaml))
2927
- [ ] to [github](https://github.com/ipfs/kubo/releases)
3028
- [ ] to [arch](https://www.archlinux.org/packages/community/x86_64/go-ipfs/) (flag it out of date)
3129
- [ ] Cut a new ipfs-desktop release

0 commit comments

Comments
 (0)