kubo/docs
Marten Seemann 514411bedb
feat: opt-in Swarm.ResourceMgr (go-libp2p v0.18) (#8680)
* update go-libp2p to v0.18.0

* initialize the resource manager

* add resource manager stats/limit commands

* load limit file when building resource manager

* log absent limit file

* write rcmgr to file when IPFS_DEBUG_RCMGR is set

* fix: mark swarm limit|stats as experimental

* feat(cfg): opt-in Swarm.ResourceMgr

This ensures we can safely test the resource manager without impacting
default behavior.

- Resource manager is disabled by default
    - Default for Swarm.ResourceMgr.Enabled is false for now
- Swarm.ResourceMgr.Limits allows user to tweak limits per specific
  scope in a way that is persisted across restarts
- 'ipfs swarm limit system' outputs human-readable json
- 'ipfs swarm limit system new-limits.json' sets new runtime limits
  (but does not change Swarm.ResourceMgr.Limits in the config)

Conventions to make libp2p devs life easier:
- 'IPFS_RCMGR=1 ipfs daemon' overrides the config and enables resource manager
- 'limit.json' overrides implicit defaults from libp2p (if present)

* docs(config): small tweaks

* fix: skip libp2p.ResourceManager if disabled

This ensures 'ipfs swarm limit|stats' work only when enabled.

* fix: use NullResourceManager when disabled

This reverts commit b19f7c9eca.
after clarification feedback from
https://github.com/ipfs/go-ipfs/pull/8680#discussion_r841680182

* style: rename IPFS_RCMGR to LIBP2P_RCMGR

preexisting libp2p toggles use LIBP2P_ prefix

* test: Swarm.ResourceMgr

* fix: location of opt-in limit.json and rcmgr.json.gz

Places these files inside of IPFS_PATH

* Update docs/config.md

* feat: expose rcmgr metrics when enabled (#8785)

* add metrics for the resource manager
* export protocol and service name in Prometheus metrics
* fix: expose rcmgr metrics only when enabled

Co-authored-by: Marcin Rataj <lidel@lidel.org>

* refactor: rcmgr_metrics.go

* refactor: rcmgr_defaults.go

This file defines implicit limit defaults used when Swarm.ResourceMgr.Enabled

We keep vendored copy to ensure go-ipfs is not impacted when go-libp2p
decides to change defaults in any of the future releases.

* refactor: adjustedDefaultLimits

Cleans up the way we initialize defaults and adds a fix for case
when connection manager runs with high limits.

It also hides `Swarm.ResourceMgr.Limits` until we have a better
understanding what syntax makes sense.

* chore: cleanup after a review

* fix: restore go-ipld-prime v0.14.2

* fix: restore go-ds-flatfs v0.5.1

Co-authored-by: Lucas Molas <schomatis@gmail.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2022-04-07 21:06:35 -04:00
..
examples chore: bump to go-ipfs@0.11 in go-ipfs-as-a-library 2022-02-02 21:15:51 -08:00
production doc: document reverse proxy bug 2020-06-15 17:01:40 -07:00
add-code-flow.md Added link to doc in README.md 2019-01-15 21:08:37 -05:00
AUTHORS Updated authors doc 2016-08-18 11:54:48 -07:00
cli-http-api-core-diagram.png docs: README refresh, add cli-http-api-core diagram 2018-08-22 16:09:51 -07:00
command-completion.md doc(completion): suggest eval instead of writing a file 2021-07-01 08:46:52 -07:00
config.md feat: opt-in Swarm.ResourceMgr (go-libp2p v0.18) (#8680) 2022-04-07 21:06:35 -04:00
datastores.md docs(datastore): fixup some notes on sync safety 2020-04-27 15:19:49 -07:00
debug-guide.md feat: add basic gateway tracing (#8595) 2022-04-04 19:24:05 +02:00
developer-certificate-of-origin Add developer certificate of origin document 2017-06-26 15:36:35 -07:00
EARLY_TESTERS.md Updating release template based off some 0.10 learnings (#8491) 2021-11-23 14:32:22 -05:00
environment-variables.md feat: opt-in Swarm.ResourceMgr (go-libp2p v0.18) (#8680) 2022-04-07 21:06:35 -04:00
experimental-features.md feat: enabling pubsub and ipns-pubsub via config flags (#8510) 2021-11-30 11:00:11 -08:00
file-transfer.md quic: remove experimental status and add it to the default config 2020-05-22 04:54:19 +02:00
fuse.md Added additional note about killing the daemon 2020-04-01 20:40:56 -07:00
gateway.md docs: gateway.md (#8825) 2022-03-28 16:31:36 +02:00
generate-authors.sh added AUTHORS file 2015-02-11 07:42:21 -08:00
implement-api-bindings.md docs: fix inconsistent capitalization of "API". 2018-12-06 12:13:41 -05:00
PATCH_RELEASE_TEMPLATE.md Update PATCH_RELEASE_TEMPLATE.md 2022-03-16 17:50:46 -04:00
plugins.md stop using deprecated Go flag -i 2021-05-15 17:27:52 -07:00
README.md docs: link remaining docs available, guide people to the right locations 2019-10-01 17:23:47 +03:00
RELEASE_ISSUE_TEMPLATE.md chore: add instructions for Chocolatey release 2022-03-01 10:35:19 -05:00
releases.md doc: document security fix policy 2021-03-18 12:02:36 -07:00
snap.md Fix typos (#8548) 2021-11-17 21:16:06 +01:00
transports.md doc: update documentation for /ipfs -> /p2p multiaddr switch 2019-12-14 19:39:59 +01:00
windows.md Adding PowerShell to Minimal Go Installation 2022-01-14 11:35:11 -05:00

Developer Documentation and Guides

If you are looking for User Documentation & Guides, please visit docs.ipfs.io.

If youre experiencing an issue with IPFS, please follow our issue guide when filing an issue!

Otherwise, check out the following guides to using and developing IPFS:

Developing go-ipfs

Guides

Advanced User Guides

Other