Commit Graph

13381 Commits

Author SHA1 Message Date
Gus Eggert
8d7ed002df
feat: upgrade to go-libp2p-kad-dht@v0.16.0 (#9005)
* feat: upgrade to go-libp2p-kad-dht@v0.16.0

* rename "cid format --codec" to "cid format --mc"

* refactor(test): from --codec to --mc

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2022-06-03 16:56:30 -04:00
siiky
0a01574ff7 docs: fix typo in the swarm/peering help text 2022-06-03 08:37:58 -07:00
Gus Eggert
b1c051d250
feat: disable resource manager by default (#9003)
* feat: disable resource manager by default

We are disabling this by default for v0.13 as we work to improve the
UX around Resource Manager. It is still usable and can be enabled in
the IPFS config with "ipfs config --bool Swarm.ResourceMgr.Enabled true".

We intend to enable Resource Manager by default in a subsequent
release.

* docs(config): Swarm.ResourceMgr disabled by default

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2022-06-02 10:31:06 -04:00
Gus Eggert
b8617b9966
fix: adjust rcmgr limits for accelerated DHT client rt refresh (#8982)
* fix: adjust rcmgr limits for accelerated DHT client rt refresh

The Accelerated DHT client periodically refreshes its routing table,
including at startup, and if Resource Manager throttling causes the
client's routing table to be incomplete, then content routing may be
degraded or broken for users.

This adjusts the default limits to a level that empirically doesn't
cause Resource Manager throttling during initial DHT client
bootstrapping. Ideally the Accelerated DHT client would handle this
scenario more gracefully, but this works for now to unblock the 0.13
release.

* Set default outbound conns unconditionally

This also sets the default overall conns as a function of the outbound
and inbound conns, since they are adjusted dynamically, and it makes
the intention of the value clear.

* increase min FD limit
2022-06-02 10:23:42 -04:00
Marten Seemann
f720172a2a
chore: update go-libp2p to v0.19.3 (#8990) 2022-06-01 11:08:22 -04:00
Antonio Navarro Perez
e8f1ce07b3
fix(ci): make go-ipfs-as-a-library work without external peers (#8978)
* Do not connect to external nodes on ipfs as a lib example.

It was causing some build timeouts error because CircleCI
was throttling WAN connections.

It closes #8956

* style: rename node vars

since this is example, this should make things easier to follow

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2022-05-25 02:36:01 +02:00
Gus Eggert
5615715c55
feat: log when resource manager limits are exceeded (#8980)
This periodically logs how many times Resource Manager limits were
exceeded. If they aren't exceeded, then nothing is logged. The log
levels are at ERROR log level so that they are shown by default.

The motivation is so that users know when they have exceeded resource
manager limits. To find what is exceeding the limits, they'll need to
turn on debug logging and inspect the errors being logged. This could
collect the specific limits being reached, but that's more complicated
to implement and could result in much longer log messages.
2022-05-19 15:27:44 -04:00
Marcin Rataj
650bc246ab
fix: JS caching via Access-Control-Expose-Headers (#8984)
This fix safelists additional headers allowing JS running on websites to
read them when IPFS resource is downloaded via Fetch API.

These headers provide metadata necessary for making smart caching
decisions when IPFS resources are downloaded via Service Worker or a
similar middleware on the edge.
2022-05-19 14:11:19 -04:00
siiky
a72753bade docs: fix abstractions typo 2022-05-14 02:54:00 +02:00
Jorropo
7892cc91f9 fix: hanging goroutine in get fileArchive handler
Fixes #8957

The context was only checked while reading data.
Not while writing data to the http connection.
So since the data flow through an io.Pipe the closing didn't flowed through and left the writer open hanging.

Co-authored-by: Antonio Navarro Perez <antnavper@gmail.com>
2022-05-13 18:24:34 +02:00
Marcin Rataj
53299e84e0
chore: mark fuse experimental (#8962)
It works only on some platforms, and does not work reliably.
This corrects our error of not setting expectations right.
2022-05-12 10:32:54 -07:00
Lucas Molas
e23a4611d8
Merge pull request #8965 from ipfs/schomatis/fix/disable-rcmg-checks
fix(node/libp2p): disable rcmgr checkImplicitDefaults
2022-05-12 14:08:51 -03:00
Marcin Rataj
28a71e872e test: IPFS_CHECK_RCMGR_DEFAULTS enabled on CI 2022-05-12 15:30:31 +02:00
Lucas Molas
f156486208 fix(node/libp2p): disable rcmg checkImplicitDefaults 2022-05-12 15:30:31 +02:00
Marcin Rataj
657d4f4dd9
fix: go-libp2p 0.19.2 with holepunch fixup (#8966)
https://github.com/libp2p/go-libp2p/releases/tag/v0.19.2
2022-05-12 14:52:17 +02:00
galargh
4798777377 ci: disable workflows in forks 2022-05-09 07:01:08 -04:00
Marcin Rataj
6a4ee0a8a5
fix(ci): fix flaky t0081-repo-pinning.sh (#8919)
* fix(ci): fix flaky t0081-repo-pinning.sh

Sometimes docker pull fails, this will retry.

* add upper bound on # retries (3)

Co-authored-by: Gus Eggert <gus@gus.dev>
2022-05-06 23:57:47 +02:00
Andrew Gillis
889f73e90e
Add 'ipfs repo migrate' command (#8428)
* Add 'ipfs repo migrate' command

This PR replaces #7658 that was originally contributed by zaibons, in order to move code into a branch and avoid some CI problem.

The command allows the user to run the repo migration without starting the daemon.

resolves #7471

* return non-ErrNeedMigration errors from fsrepo.Open()

Co-authored-by: Gus Eggert <gus@gus.dev>
2022-05-06 17:34:51 -04:00
T Mo
9a84a4f06e
pubsub multibase encoding (#8933)
* pubsub multibase encoding

Adds clarification for pubsub multibase encoding over HTTP RPC for issue https://github.com/ipfs/ipfs-docs/issues/1007

* Grammatical change

* Moved period
2022-05-06 08:49:15 -07:00
Lucas Molas
831c33925f
Merge pull request #8947 from RubenKelevra/patch-7
'pin rm' helptext: rewrite description as object is not removed from local storage (immediately)
2022-05-06 12:23:36 -03:00
Antonio Navarro Perez
ae15e18894
Merge pull request #8934 from ajnavarro/fix/install-on-mac-m1-monterey 2022-05-06 17:13:24 +02:00
@RubenKelevra
17bb829235
'pin rm' helptext: rewrite description as object is not removed from local storage (immediately) 2022-05-06 15:56:30 +02:00
Antonio Navarro Perez
7e488c1c16 Ensure that folder exists before moving ipfs binary.
On macOS Monterey there is no /usr/local/bin folder and we need to
create it.
2022-05-06 15:29:05 +02:00
Daniel Norman
d476f2d6da
Add instructions to resolve repo migration error (#8946)
Fixes #8779

Co-authored-by: Daniel N <2color@users.noreply.github.com>
2022-05-06 08:02:38 -04:00
Adin Schmahmann
1299bcb3fd fix: use path instead of filepath for asset embeds to support Windows 2022-05-05 12:29:13 -04:00
Adin Schmahmann
b72125522a chore: update version to v0.14.0-dev 2022-05-04 16:28:58 -04:00
Adin Schmahmann
00c4a0c120
Merge pull request #8941 from ipfs/docs/0.13.0-changelog
docs: v0.13.0 changelog
2022-05-04 13:10:39 -07:00
Adin Schmahmann
205280934a
Merge pull request #8932 from ipfs/chore/update-go-build-version
chore: build with go 1.18.1
2022-05-04 15:08:42 -04:00
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