Commit Graph

603 Commits

Author SHA1 Message Date
Jorropo
e7294cbdff feat: warn users who are falling behind reprovides
Fixes: #9704
Fixes: #9702
Fixes: #9703
Fixes: #9419
2023-06-08 10:05:30 +02:00
Jorropo
3ab1086f71 chore: migrate go-libipfs to boxo
Resolves #9677, #9676, #9675, #9736
2023-03-28 22:05:25 -04:00
Eng Zer Jun
7f7a5ab1b9 test: use T.TempDir to create temporary test directory
This commit replaces `os.MkdirTemp` with `t.TempDir` in tests. The
directory created by `t.TempDir` is automatically removed when the test
and all its subtests complete.

Prior to this commit, temporary directory created using `os.MkdirTemp`
needs to be removed manually by calling `os.RemoveAll`, which is omitted
in some tests. The error handling boilerplate e.g.
	defer func() {
		if err := os.RemoveAll(dir); err != nil {
			t.Fatal(err)
		}
	}
is also tedious, but `t.TempDir` handles this for us nicely.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2023-03-13 10:29:36 -04:00
Jorropo
7986196414 feat: Reduce RM code footprint
Co-Authored-By: Antonio Navarro Perez <antnavper@gmail.com>
2023-03-06 12:46:58 +01:00
Henrique Dias
255e64e49e
chore: migrate from go-ipfs-files to go-libipfs/files (#9535) 2023-01-13 14:27:03 +01:00
Jorropo
710d3208af feat: update upgrade repo from 12 to 13
Fixes: #9292
2022-12-12 21:57:02 +01:00
Marcin Rataj
70e604ff99
feat: Routing.Type=auto (DHT+IPNI) (#9475)
This changes the default routing to use both DHT and IPNI
at the same time. Closes #9454 Closes #9422

Full context:
https://github.com/ipfs/kubo/issues/9454
https://github.com/ipfs/kubo/issues/9422

Co-authored-by: Steve Loeppky <biglep@protocol.ai>
Co-authored-by: Gus Eggert <gus@gus.dev>
Co-authored-by: Steve Loeppky <biglep@protocol.ai>
2022-12-08 23:20:24 +01:00
Gus Eggert
e550d9e476
ci: add stylecheck to golangci-lint (#9334) 2022-10-06 10:18:40 -04:00
Antonio Navarro Perez
d1b9e41fc2
feat: Delegated routing with custom configuration. (#9274)
New multi-router configuration system based on https://hackmd.io/G1KRDEX5T3qyfoBMkIrBew#Methods

- Added a new routing type: "custom"
- Added specific struct types for different Routers (instead of map[string]interface{})
- Added `Duration` config type, to make easier time string parsing
- Added config documentation.
- Use the latest go-delegated-routing library version with GET support.
- Added changelog notes for this feature.

It:
- closes #9157
- closes #9079
- closes #9186
2022-09-22 15:47:45 +02:00
Jorropo
196887cbe5 chore: bump go-libp2p v0.22.0 & go1.18&go1.19
Fixes: #9225
2022-09-09 17:09:38 +02:00
Jorropo
82fbb84384 fmt: applies go1.19 fmt 2022-09-08 18:34:06 +02:00
Marcin Rataj
837f6ee92b chore: switch to dist.ipfs.tech
Part of https://github.com/protocol/bifrost-infra/issues/2018
ensures the domain used for fetching migrations is not
impacted by ipfs.io being blocked at DNS level by some ISPs.
2022-08-12 23:42:17 +02:00
Mark Gaiser
d419c0e95b
feat: add $IPFS_PATH/gateway file
The file contains the gateway your node is hosting in the http://<host>:<port> RFC 3986 format.
Structurally it works exactly the same as the API file.
2022-08-08 13:50:26 +02:00
Antonio Navarro Perez
92c4dc61a8
feat(routing): Delegated Routing (#8997)
* Delegated Routing.

Implementation of Reframe specs (https://github.com/ipfs/specs/blob/master/REFRAME.md) using go-delegated-routing library.

* Requested changes.

* Init using op string

* Separate possible ContentRouters for TopicDiscovery.

If we don't do this, we have a ciclic dependency creating TieredRouter.
Now we can create first all possible content routers, and after that,
create Routers.

* Set dht default routing type

* Add tests and remove uneeded code

* Add documentation.

* docs: Routing.Routers

* Requested changes.

Signed-off-by: Antonio Navarro Perez <antnavper@gmail.com>

* Add some documentation on new fx functions.

* Add changelog entry and integration tests

* test: sharness for 'dht' in 'routing' commands

Since 'routing' is currently the same as 'dht' (minus query command)
we need to test both, that way we won't have unnoticed divergence
in the default behavior.

* test(sharness): delegated routing via reframe URL

* Add more tests for delegated routing.

* If any put operation fails, the tiered router will fail.

* refactor: Routing.Routers: Parameters.Endpoint

As agreed  in https://github.com/ipfs/kubo/pull/8997#issuecomment-1175684716

* Try to improve CHANGELOG entry.

* chore: update reframe spec link

* Update go-delegated-routing dependency

* Fix config error test

* use new changelog format

* Remove port conflict

* go mod tidy

* ProviderManyWrapper to ProviderMany

* Update docs/changelogs/v0.14.md

Co-authored-by: Adin Schmahmann <adin.schmahmann@gmail.com>

Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: Adin Schmahmann <adin.schmahmann@gmail.com>
2022-07-07 17:10:25 -04:00
Marcin Rataj
82467bc936 refactor: rename to kubo 2022-07-06 18:40:37 +02:00
Jorropo
a433064d72
chore: replace ioutil with io and os (#8969)
Co-authored-by: Håvard Anda Estensen <haavard.ae@gmail.com>
2022-06-14 12:37:02 -04: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
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
Lucas Molas
6817fd4744 feat(cmds): allow to set the configuration file path 2022-04-22 13:03:28 -03:00
Lucas Molas
d92887086f
fix(core/commands): do not cache config (#8824) 2022-03-27 08:11:45 -04:00
Lucas Molas
c8543904d9
Merge pull request #8793 from ipfs/kylehuntsman/fix/repo/omitempty-error
fix(fsrepo): deep merge when setting config
2022-03-22 11:02:29 -03:00
Lucas Molas
76128272b7 unroll setConfigUnsynced 2022-03-15 18:09:28 -03:00
Kyle Huntsman
a09b6c205e fix(repo/common): improve MapGetKV not found error 2022-03-07 17:14:40 -07:00
Laurent Senta
8d549f03f3 fix: rewrite dependencies over the go-ipfs-config package 2022-03-04 09:45:16 +01:00
Kyle Huntsman
e1d14441a0 fix(fsrepo): deep merge when setting config 2022-03-03 00:21:37 -07:00
Adin Schmahmann
b565374f7e Merge branch 'release' 2022-02-18 14:20:14 -05:00
Adin Schmahmann
815e64f4a6 chore: bump migrations dist.ipfs.io CID to contain fs-repo-11-to-12 v1.0.2 2022-02-17 21:24:42 -05:00
Adin Schmahmann
bf76ebe667 feat: refactor Fetcher interface used for downloading migrations (#8728)
* feat: refactor Fetcher interface used for downloading migrations
* feat: add RetryFetcher for migration downloads
* feat: 3 retries for each HTTP migration download

(cherry picked from commit b1ffc870d5)
2022-02-17 21:24:42 -05:00
Gus Eggert
418bc6e709 feat: log multifetcher errors
This is to make it easier to understand why the multifetcher is
falling back to a different fetcher.

(cherry picked from commit 4f3eb4cdd4)
2022-02-17 21:24:42 -05:00
Dimitris Apostolou
b2efcf5ce3
Fix typos (#8726) 2022-02-15 18:50:09 -05:00
Adin Schmahmann
b1ffc870d5
feat: refactor Fetcher interface used for downloading migrations (#8728)
* feat: refactor Fetcher interface used for downloading migrations
* feat: add RetryFetcher for migration downloads
* feat: 3 retries for each HTTP migration download
2022-02-11 11:57:51 -08:00
Gus Eggert
4f3eb4cdd4 feat: log multifetcher errors
This is to make it easier to understand why the multifetcher is
falling back to a different fetcher.
2022-02-11 11:48:23 -05:00
Adin Schmahmann
7fe56507b5 feat: bump repo version to 12 and update CID of the distributions 2021-12-13 14:48:02 -05:00
Adin Schmahmann
52c177ced9
feat: go-libp2p 0.16, UnixFS autosharding and go-datastore with contexts (#8563)
* plumb through go-datastore context changes

* update go-libp2p to v0.16.0
* use LIBP2P_TCP_REUSEPORT instead of IPFS_REUSEPORT
* use relay config
* making deprecation notice match the go-ipfs-config key
* docs(config): circuit relay v2
* docs(config): fix links and headers
* feat(config): Internal.Libp2pForceReachability

This switches to config that supports setting and reading
Internal.Libp2pForceReachability OptionalString flag

* use configuration option for static relays

* chore: go-ipfs-config v0.18.0

https://github.com/ipfs/go-ipfs-config/releases/tag/v0.18.0

* feat: circuit v1 migration prompt when Swarm.EnableRelayHop is set (#8559)
* exit when Swarm.EnableRelayHop is set
* docs: Experimental.ShardingEnabled migration

This ensures existing users of global sharding experiment get notified
that the flag no longer works + that autosharding happens automatically.

For people who NEED to keep the old behavior (eg. have no time to
migrate today) there is a note about restoring it with
`UnixFSShardingSizeThreshold`.

* chore: add dag-jose code to the cid command output

* add support for setting automatic unixfs sharding threshold from the config
* test: have tests use low cutoff for sharding to mimic old behavior
* test: change error message to match the current error
* test: Add automatic sharding/unsharding tests (#8547)
* test: refactored naming in the sharding sharness tests to make more sense

* ci: set interop test executor to convenience image for Go1.16 + Node
* ci: use interop master

Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: Gus Eggert <gus@gus.dev>
Co-authored-by: Lucas Molas <schomatis@gmail.com>
2021-11-29 19:58:05 +01:00
Dimitris Apostolou
0c2f9d5950
Fix typos (#8548) 2021-11-17 21:16:06 +01:00
Marcin Rataj
6e610066f6
fix: macos notarized fs-repo-migrations (#8333)
Uses: https://github.com/ipfs/distributions/pull/381
Closes #8240
2021-08-12 18:52:23 +02:00
Andrew Gillis
3b6f57788b
Expose additional migration APIs (#8153)
* Expose additional migration APIs

Expose migration APIs for reading migration config and creating migration fetchers.  This allows implementation of commands and external applications that want to retrieve migrations according to the Migration portion of the IPFS config.

This change also moves some functionality that is specific to fetching migrations via IPFS into the `ipfsfetcher` package.
2021-07-30 11:27:57 -07:00
Andrew Gillis
c54cdaa1f8
Feat/migration ipfs download (#8064)
* Enable downloading migrations over IPFS

There are now options in the config file that control how migrations are downloaded. This includes enabling downloading migrations using IPFS by (when migrations are required) spinning up a temporary node for fetching the migrations before running them. There is also a config option to decide what to do with the migrations binaries once they are downloaded (e.g. cache or pin them in your node, or just throw out the data).

Co-authored-by: Steven Allen <steven@stebalien.com>
2021-05-12 09:33:14 -07:00
gammazero
7c8df87cd0 Make migrations log output to stdout
Migrations were logging to a mix of stdout and stderr.  This was due to the individual migration binaries logging non-error output to stdout, while the migration library (which downloads and executed these migrations) was logging to stderr.  This inconsistency can be confusing.  Also, previous versions of go-ipfs wrote non-error output to stdout. This PR fixes this so that non-error output from the migrations library is written to stdout.

Added test to look for expected log output.
2021-04-05 20:19:09 -07:00
Adin Schmahmann
bb8260abe1 Merge pull request #7857 from ipfs/fix/separate-migrations-bins 2021-03-31 17:05:51 -04:00
gammazero
b75d823950 Update latest distribution CID 2021-03-31 12:25:32 -07:00
gammazero
2fc1594f51 Use same semver lib that is use elsewhere in go-ipfs 2021-03-26 09:44:13 -07:00
gammazero
fe97eee1c9 Fix typo in log message 2021-03-26 00:48:13 -07:00
gammazero
f00b49be58 Set latest dist to use one with darwin arm64 builds 2021-03-25 23:42:59 -07:00
Adin Schmahmann
5ee8710c58 feat: repo migrations - use filepath instead of path to support windows 2021-03-25 16:00:14 -04:00
Adin Schmahmann
36de939e25 test: repo migrations fetch - skip part of a test on windows since it does not support read-only directories 2021-03-25 15:55:37 -04:00
Adin Schmahmann
891c81e631 test: repo migrations fetch - support windows wanting binaries to end in .exe 2021-03-25 15:53:15 -04:00
gammazero
09a481ea7a update current ipfs dist to migrations with vtag 2021-03-25 12:25:14 -07:00
Andrew Gillis
1530cd2cea
Rename migrations from ipfs-x-to-y to fs-repo-x-to-y (#8002)
* rename migrations from ipfs-x-to-y to fs-repo-x-to-y
* update current ipfs dist to one with migrations v1.0.0
2021-03-25 10:10:26 -07:00
gammazero
1430a0104c Update name of latest distribution path const 2021-03-16 16:57:44 -07:00