Commit Graph

1646 Commits

Author SHA1 Message Date
Steven Allen
978091a626 feat: implement peering service
MVP for #6097

This feature will repeatedly reconnect (with a randomized exponential backoff)
to peers in a set of "peered" peers.

In the future, this should be extended to:

1. Include a CLI for modifying this list at runtime.
2. Include additional options for peers we want to _protect_ but not connect to.
3. Allow configuring timeouts, backoff, etc.
4. Allow groups? Possibly through textile threads.
5. Allow for runtime-only peering rules.
6. Different reconnect policies.

But this MVP should be a significant step forward.
2020-05-25 20:24:41 -07:00
Steven Allen
9f40af0b13 test(sharness): fix bootstrap test for quic bootstrap addrs 2020-05-22 16:57:58 -07:00
Steven Allen
a4985c29e8 test(sharness): fix pubsub tests 2020-05-22 16:21:15 -07:00
@RubenKelevra
2dc1f691f1 quic: remove experimental status and add it to the default config 2020-05-22 04:54:19 +02:00
Steven Allen
4b10fdb324
Merge pull request #7320 from ipfs/fix/fuse-tests
test(sharness): fix fuse tests
2020-05-20 18:03:32 -07:00
Steven Allen
f6f6658f6f test(sharness): test the local symlink 2020-05-19 18:59:54 -07:00
Steven Allen
391d345622 fix: correctly trim resolved IPNS addresses
fixes https://github.com/ipfs/go-ipfs/issues/7246
2020-05-19 18:33:46 -07:00
Steven Allen
6eca4928d6 test(sharness): fix fuse tests
We count "mount" IPNS if it refers to a file instead of a directory.
2020-05-14 13:14:38 -07:00
Peter Rabbitson
3590b1750d Add an extra guard for the issue encountered in #7207 2020-04-24 14:20:07 +02:00
Peter Rabbitson
8a32251e66 Do not mangle diagnostics when sorted comparison needed 2020-04-24 14:15:37 +02:00
Steven Allen
1e6bf16e83 test(sharness): make repo gc test more robust 2020-04-23 15:10:16 -07:00
Will Scott
9a8bcd0caf
wan peers in public ipv6 space 2020-04-21 07:58:51 -07:00
Steven Allen
9033ba9cad
Merge pull request #7181 from rex4539/fix-typos
Fix typos and cleanup
2020-04-20 21:43:47 -07:00
Dimitris Apostolou
1e437c7e97
Fix typos and cleanup 2020-04-20 22:00:01 +03:00
Steven Allen
5f529ce0a6 test: fix sharness tests for welcome docs changes 2020-04-20 11:23:30 -07:00
Steven Allen
841b62cd2c
Merge pull request #7151 from ipfs/feat/dual-dht-tests
integration test for the dual dht
2020-04-15 15:43:03 -07:00
Marcin Rataj
8290ec11c3
fix: subdomain redirect for dir CIDs
Closes #7164

License: MIT
Signed-off-by: Marcin Rataj <lidel@lidel.org>
2020-04-15 23:50:53 +02:00
Will Scott
e5a41875ba
lint 2020-04-15 08:47:21 -07:00
Will Scott
971cbf747a
test passes 2020-04-15 08:47:20 -07:00
Will Scott
5079cfa624
minor cleanup / progress 2020-04-15 08:47:19 -07:00
Will Scott
b61d9639f6
better address generation 2020-04-15 08:47:18 -07:00
Will Scott
94de605570
startup bootstrap 2020-04-15 08:47:17 -07:00
Will Scott
02cf54dec6
rebase on dual DHT 2020-04-15 08:47:16 -07:00
Will Scott
635a5c798e
integration test for the dual dht 2020-04-15 08:47:15 -07:00
Steven Allen
1f23fc000c feat: add autonat config options
1. Enable AutoNATService on _all_ nodes by default. If it's an issue, we can
disable it in RC3 but this will give us the best testing results.
2. Expose options to configure AutoNAT rate limiting.
2020-04-14 20:54:58 -07:00
Steven Allen
5772ac7a5f test(sharness): improve CAR tests to remove some potential races
* Instead of ensuring that we GC nothing, verify that the repo validates.
* Avoid a race between removing the fifos and trying to read from them.
* Avoid all 'bash -c' invocations. Instead, make liberal use of subshells and
  wait.

Hopefully fixes #7123.
2020-04-13 21:42:27 -07:00
Steven Allen
28e31e17a8
Merge pull request #7127 from ipfs/feat/dual-dht
feat: introduce the dual WAN/LAN DHT
2020-04-13 19:01:12 -07:00
Steven Allen
c12c184ca4 fix: invalidate cache on failed publish
If we fail to publish, _invalidate_ our cache. The publish may have partially
succeeded.
2020-04-13 18:22:04 -07:00
Steven Allen
d0d508b2e1 fix: fix 'dht query' command to actually return the closest peers
Then improve the tests such that they actually work.
2020-04-13 17:42:03 -07:00
Peter Rabbitson
cb5863c038 Temporarily disable gc-race test
I am going to rig a more robust version and run it locally to crash
Disabling in master in order to validate the pipe reading itself
works correctly and reliably
2020-04-13 19:28:14 +02:00
Peter Rabbitson
768c287f9b Extra potential deadlock debugging 2020-04-10 19:25:16 +02:00
Peter Rabbitson
edc27793fb Extra cross-iptb-network testcases 2020-04-10 19:25:16 +02:00
Peter Rabbitson
4319c12692 Fixup all original test issues 2020-04-10 19:25:14 +02:00
Steven Allen
bb08f7fe56 assign public IP addresses for tests that need them 2020-04-09 21:41:42 -07:00
Steven Allen
9a98158bed test(sharness): test address filtering
tests #6995
2020-04-08 20:26:42 -07:00
Peter Rabbitson
a903e23ab9 We are running under set -e :picard-facepalm: 2020-04-08 14:54:49 -07:00
Peter Rabbitson
f9ae330978 Harden test - no -z in busybox 2020-04-08 14:54:49 -07:00
Peter Rabbitson
fbe40883e6 Remove PresentInImport tracking as per conversation 2020-04-08 14:54:49 -07:00
Peter Rabbitson
90c58d6cac Dag import functionality only ( no progress )
This still works over "loosely defined" .car files
Please refer to the sharness tests for extra info

We can tighten this up if the sentiment is "Postel was wrong"
2020-04-08 14:54:49 -07:00
Peter Rabbitson
635e333d60 Dag export command, silent, no progress 2020-04-08 14:54:49 -07:00
Hector Sanjuan
1b490476e5 HTTP API: Disallow GET requests on API
This commit upgrades go-ipfs-cmds and configures the commands HTTP API Handler
to only allow POST/OPTIONS, disallowing GET and others in the handling of
command requests in the IPFS HTTP API (where before every type of request
method was handled, with GET/POST/PUT/PATCH being equivalent).

The Read-Only commands that the HTTP API attaches to the gateway endpoint will
additional handled GET as they did before (but stop handling PUT,DELETEs).

By limiting the request types we address the possibility that a website
accessed by a browser abuses the IPFS API by issuing GET requests to it which
have no Origin or Referrer set, and are thus bypass CORS and CSRF protections.

This is a breaking change for clients that relay on GET requests against the
HTTP endpoint (usually :5001). Applications integrating on top of the
gateway-read-only API should still work (including cross-domain access).

Co-Authored-By: Steven Allen <steven@stebalien.com>
Co-Authored-By: Marcin Rataj <lidel@lidel.org>
2020-04-05 09:57:57 +02:00
Steven Allen
06ba6d0fc2 fix: remove internal relay discovery
This logic collects a list of known relays by testing every new connection.

It exists so we can dial /p2p-circuit/p2p/QmFoobar addresses (circuit addresses
that don't specify the relay). However, this kind of address is useless outside
of basic demos as a random relay is practically guaranteed to not be connected
to the target peer. Picking a random relay to connect to some peer is almost
_never_ the desired behavior.
2020-03-31 12:24:55 -07:00
Steven Allen
aec498bbde test(sharness): make sure we can actually enable autonat
This isn't a real autonat test, but it's a regression test to make sure we don't blatantly break this.
2020-03-25 12:48:25 -07:00
Cornelius Toole
62de9ba9d3 feat(file-ignore): add ignore opts to add cmd
- add the `gitignore` or `ignore options to the add command
2020-03-20 09:22:04 -07:00
Steven Allen
05fe3086a5 fix(sharness): fix sharness tests to take removed bootstrap peers into account 2020-03-18 08:50:40 -07:00
Marcin Rataj
f9567a0a0f fix(gateway): curl without redirect on localhost
When request is sent to http://localhost:8080/ipfs/$cid response has
HTTP 301 status code and "Location" header with redirect destination at
$cid.ipfs.localhost:8080

Redirect is followed by browsersi, but not by commandline tools.
Status 301 is ignored by curl in default mode: it will print response
and won't follow redirect, user needs to add -L for that.

To fix curl, we return correct payload in body of HTTP 301 response,
but set Clear-Site-Data header to ensure Origin sandbox can't be abused.

This requires a surgical workaround:
If Location header is present in ResponseWriter's Header map,
we ensure http.ServeContent() returns HTTP 301

Context: https://github.com/ipfs/go-ipfs/pull/6982

License: MIT
Signed-off-by: Marcin Rataj <lidel@lidel.org>
2020-03-18 08:50:40 -07:00
Marcin Rataj
3ecccd6e1d feat(gateway): subdomain and proxy gateway
License: MIT
Signed-off-by: Marcin Rataj <lidel@lidel.org>
2020-03-18 08:50:38 -07:00
Steven Allen
97401b9e27
Merge pull request #6997 from ipfs/chore/sharness_fixes_2019-03-16
Chore/sharness fixes 2019 03 16
2020-03-17 14:33:22 -07:00
Peter Rabbitson
705bee7d3f Support pipes when named on the cli explicitly
Still throws an error when a pipe is encountered during directory recursion
2020-03-16 17:25:33 -07:00
Peter Rabbitson
51d4383d56 Abort individual sharness tests if a previous instance is present
Before starting each individual test check if a daemon is present with a
trash* directory as its workdir. Exit with failure if this is the case.
2020-03-15 19:57:29 +00:00