Commit Graph

13353 Commits

Author SHA1 Message Date
Adin Schmahmann
6d2f790f76 chore: update example deps 2022-05-04 14:56:19 -04:00
Adin Schmahmann
ff832cb992 docker: disable buildvcs for docker builds 2022-05-04 14:53:54 -04:00
Adin Schmahmann
8ec5718c56 chore: build with go 1.18.1 2022-05-04 14:53:54 -04:00
Adin Schmahmann
34aac1ee43 chore: update deps 2022-05-04 14:43:49 -04:00
Gus Eggert
0ab4367160 docs(tracing): update env var docs for new tracing env vars
This should have been updated as part of 967bd6932
2022-05-04 14:38:05 -04:00
Gus Eggert
3d527753ff feat: enable Resource Manager by default 2022-05-04 14:08:37 -04:00
Antonio Navarro Perez
0f8a1a35d2
chore: Update test/dependencies to match go-ipfs dependencies. (#8928) 2022-05-04 11:34:55 -04:00
Antonio Navarro Perez
afd11f1019
chore: fix linting errors (#8930) 2022-05-04 11:02:07 -04:00
Marcin Rataj
cab69276e9 docs: Swarm.ResourceMgr.Limits 2022-05-03 16:21:03 -04:00
Adin Schmahmann
126ebc459d
Merge pull request #8748 from ipfs/feat/dcutr-hole-punching-on-by-default
feat: EnableHolePunching by default
2022-05-03 15:20:19 -04:00
Adin Schmahmann
185971b259 fix: add info log indicating that hole punching has been disabled when it is left as the default but the relay client is disabled. 2022-05-03 14:26:09 -04:00
Adin Schmahmann
346fd9d854 fix: when the relay client is disabled and hole punching is left in its default state silently turn off hole punching instead of panicking 2022-05-03 14:26:09 -04:00
Adin Schmahmann
7ad6447453 feat: enable hole-punching by default 2022-05-03 14:26:09 -04:00
Adin Schmahmann
be1acfa1c5 chore: update go-libp2p 2022-05-03 14:26:09 -04:00
Adin Schmahmann
0d74f322df
Merge pull request #8931 from ipfs/ci/add-more-checks
ci: add more golang strictness checks
2022-05-03 14:19:11 -04:00
Adin Schmahmann
1f37a1481b go fmt 2022-05-03 14:09:38 -04:00
Adin Schmahmann
6f4fc1ae8e ci: add more golang strictness checks 2022-05-03 14:09:38 -04:00
Lucas Molas
25cc85fa93
feat(gateway): Gateway.FastDirIndexThreshold (#8853)
* fix(core/gateway): option to limit directory size listing

* feat(gw): HTMLDirListingLimit

This is alternative take on the way we limit the HTML listing output.
Instead of a hard cut-off, we list up to HTMLDirListingLimit.
When a directory has more items than HTMLDirListingLimit we show
additional header and footer informing user that only $HTMLDirListingLimit
items are listed. This is a better UX.

* fix: 0 disables Gateway.HTMLDirListingLimit

* refactor: Gateway.FastDirIndexThreshold

see explainer in docs/config.md

* refactor: prealoc slices

* docs: Gateway.FastDirIndexThreshold

* refactor: core/corehttp/gateway_handler.go

https://github.com/ipfs/go-ipfs/pull/8853#discussion_r851437088

* docs: apply suggestions from code review

Co-authored-by: Alan Shaw <alan.shaw@protocol.ai>

Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: Alan Shaw <alan.shaw@protocol.ai>
2022-04-28 19:36:57 +02:00
SukkaW
4f7d4bcc05 docs: replace all git.io links with their actual URLs 2022-04-28 18:06:08 +02:00
Marten Seemann
232ccb4e55
feat: relay v2 discovery (go-libp2p v0.19.0) (#8868)
* update go-libp2p to v0.19.0
* chore: go-namesys v0.5.0
* refactor(config): cleanup relay handling
* docs(config): document updated defaults
* fix(tests): panic during sharness

* fix: t0160-resolve.sh
See https://github.com/ipfs/go-namesys/pull/32

* fix: t0182-circuit-relay.sh
* test: transport encryption

Old tests were no longer working because go-libp2p 0.19 removed
the undocumented 'ls' pseudoprotocol.

This replaces these tests with handshake attempt (name is echoed back on
OK or 'na' is returned when protocol is not available) for tls and noise
variants + adds explicit test that safeguards us against enabling
plaintext by default by a mistake.

* fix: ./t0182-circuit-relay.sh

test is flaky, for now we just restart the testbed when we get
NO_RESERVATION error

* refactor: AutoRelayFeeder with exp. backoff

It starts at feeding peers ever 15s, then backs off each time
until it is done once an hour

Should be acceptable until we have smarter mechanism in go-lib2p 0.20

* feat(AutoRelay): prioritize Peering.Peers

This ensures we feed trusted Peering.Peers in addition to any peers
discovered over DHT.

* docs(CHANGELOG): document breaking changes

Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: Gus Eggert <gus@gus.dev>
2022-04-28 17:13:15 +02:00
Lucas Molas
4e2028d19c fix(cmds): add: reject files with different import dir 2022-04-28 16:59:02 +02:00
Marcin Rataj
ae15fcd195 chore&fix: panic/error handling while enumerating pins
switch to version from https://github.com/ipfs/go-pinning-service-http-client/pull/18
to see if CI E2E tests pass
2022-04-28 15:58:38 +02:00
Marcin Rataj
6815293aac
chore: mark 'log tail' experimental (#8912)
Ensuring people are aware the RPC API/CMD may change
Context: https://github.com/ipfs/go-ipfs/pull/8765#issuecomment-1109884874
2022-04-28 15:57:43 +02:00
Gus Eggert
74aff245d2
feat: persist limits to Swarm.ResourceMgr.Limits (#8901)
* feat: persist limit changes to config

This changes the "ipfs swarm limit" command so that when limit changes
are applied via the command line, they are persisted to the repo
config, so that they remain in effect when the daemon restarts.

Any existing limit.json can be dropped into the IPFS config easily
using something like:

cat ~/.ipfs/config | jq ".Swarm.ResourceMgr.Limits = $(cat limit.json)" | sponge ~/.ipfs/config

This also upgrades to Resource Manager v0.3.0, which exports the config
schema so that we don't have to maintain our own copy of it.

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2022-04-28 15:27:16 +02:00
Gus Eggert
d4879a464b
fix: build after Go 1.17 and Prometheus upgrades (#8916)
* fix: go mod tidy

* fix: update expected prometheus metrics

Go 1.17 includes some new runtime metrics that are automatically
published by the Prometheus client, so this adds them to the expected
metric list so that the tests pass and we don't accidentally drop them
in the future.
2022-04-27 13:38:05 +02:00
Gus Eggert
967bd69320
feat(tracing): use OpenTelemetry env vars where possible (#8875)
This removes some of the env vars added in f855bfe6e, so that go-ipfs
is as consistent with standard OpenTelemetry env vars as possible.
2022-04-25 11:06:22 -04:00
Lucas Molas
d6077b8ac2
Merge pull request #8634 from ipfs/schomatis/feat/cmds/use-custom-config-file-path
feat(cmds): allow to set the configuration file path
2022-04-22 13:13:34 -03:00
Lucas Molas
e172ad23c2 --config-file test in sharness/t0021-config.sh 2022-04-22 13:03:28 -03:00
Lucas Molas
447462b801 use --repo-dir in sharness/t0020-init.sh 2022-04-22 13:03:28 -03:00
Lucas Molas
6817fd4744 feat(cmds): allow to set the configuration file path 2022-04-22 13:03:28 -03:00
Marcin Rataj
7162a63e96
chore: improve new issue links (#8874) 2022-04-22 08:38:47 -07:00
Marcin Rataj
76ae33a9f3
chore: deprecate /api/v0/dns (#8893)
Closes #8607
2022-04-21 23:49:51 +02:00
Jorropo
fd7af6a733 chore: update go-libp2p-asn-util to make it init faster 2022-04-21 16:10:35 -04:00
Lucas Molas
7b5fe809f0
fix(cmds): CIDv1 and correct multicodecs in 'block put' and 'cid codecs' (#8568)
BREAKING CHANGES: 
- see https://github.com/ipfs/go-ipfs/pull/8568#issue-1063653194

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2022-04-21 18:19:40 +02:00
Marcin Rataj
67fdb6efcd
feat(gw): improved If-None-Match support (#8891)
Improves the way we handle If-None-Match header:
- Support for more than one Etag passed in If-None-Match
- Match both strong and weak Etags to maximize caching across
  various HTTP clients and libraries (some send weak Etags by default)
- Support for wildcard '*'
- Tests for If-None-Match behavior
2022-04-19 20:57:11 +02:00
Adin Schmahmann
d59730f51e
Update Go version to 1.17 (#8815)
* remove building the pre-bundled plugins as shared objects in makefile

* chore: update go version to minimum of 1.17
2022-04-15 14:32:00 -04:00
Justin Johnson
e07baf5835
chore(gw): extract logical functions to improve readability (#8885)
* Extract functions from getOrHeadHandler to improve readability and prepare for later refactorings

* Address PR feedback on when to return errors or booleans

* Be explicit about use of *requestError vs error
2022-04-15 16:06:43 +02:00
Piotr Galar
8a1dc33bb4
Merge pull request #8884 from ipfs/testground
Use testground-github-action from testground
2022-04-14 17:10:10 +02:00
Piotr Galar
9470fa3271
Use testground-github-action from testground 2022-04-14 13:39:36 +02:00
Caian Benedicto
63b0025664
feat(docker): /container-init.d for advanced initialization (#6577)
* Add initialization directory support to Docker image
* Add sharness test, fix bugs in init script
Fixed in init script:
- Added some missing quotes around expansions
- Fixed INIT_ARGS to not pass any args if IPFS_PROFILE isn't specified
- Use printf instead of "echo -e"
- Only run scripts in top-level of init dir
- Handle filenames correctly when finding init scripts (by using find + xargs)

* chore: docker cleanup
cleans up containers and images (useful when run on developer machine)

* remove container init documentation from README
There is already IPFS Docker documentation where this should live:
https://docs.ipfs.io/how-to/run-ipfs-inside-docker/

Co-authored-by: Caian <caian@ggaunicamp.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: Gus Eggert <gus@gus.dev>
2022-04-12 19:44:03 +02:00
Gus Eggert
bb68a68525
feat: port collect-profiles.sh to 'ipfs diag profile' (#8786)
* feat: add block profiling to collect-profiles.sh

* feat: add more profiles to 'ipfs diag profile'

This adds mutex and block profiles, and brings the command up-to-par
with 'collect-profiles.sh', so that we can remove it.

Profiles are also now collected concurrently, which improves the
runtime from (profile_time * num_profiles) to just (profile_time).

Note that this has a backwards-incompatible change, removing
--cpu-profile-time in favor of the more general --profile-time, which
covers all sampling profiles.

* docs(cli): ipfs diag profile

* add CLI flag to select specific diag collectors

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2022-04-12 11:58:03 -04:00
Jorropo
ca4a3ed961 fix: assets: correctly use the argument err in the WalkDirFunc Hashing Files 2022-04-12 02:36:19 +02:00
Franky W
70398d275c Change assets.Asset from a func to the embed.FS
This removes the delegation to the function and requires all callers
that used the `asset.Asset` func to access to asset via the `embed.FS`
2022-04-12 02:36:19 +02:00
Franky W
9210c08fa6 Remove gobindata
Since go1.16, there are built in tools that allow for embeding
filesystem inside the binary. We now make use of the `embed` package to
have all files put into the binary, removing the need to generate the
files and removes dependencies

Co-authored-by: Jorropo <jorropo.pgm@gmail.com>
2022-04-12 02:36:19 +02:00
Gus Eggert
9bd346e250
fix: fix context plumbing in gateway handlers (#8871)
This ensures that child contexts are passed around between
the handlers so that traces show the call hierarchy correctly.
2022-04-11 23:09:00 +02:00
makeworld
52bf133946
fix(gw): missing return if dir fails to finalize (#8806) 2022-04-08 23:09:23 +02:00
Adin Schmahmann
e1c8d78d7d
chore: update deps (#8859) 2022-04-08 22:31:26 +02:00
Ian Davis
fbf76663f4
fix(gw): update metrics only when payload data sent (#8827)
* fix: report gateway http metrics only when response is successful
* fix(gw): 304 Not Modified as no-op

This fix ensures we don't do any additional work when Etag match
what user already has in their own cache.

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2022-04-08 22:07:44 +02:00
Adin Schmahmann
d18f1f7ea9 Merge branch 'release' 2022-04-08 15:23:32 -04:00
Adin Schmahmann
0e8b121aba
Merge pull request #8861 from ipfs/release-v0.12.2
Release v0.12.2
2022-04-08 15:00:45 -04:00