Commit Graph

3330 Commits

Author SHA1 Message Date
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
Marcin Rataj
7d397ac219
feat: webui v2.7.4
(supersedes v2.7.3)

License: MIT
Signed-off-by: Marcin Rataj <lidel@lidel.org>
2020-04-14 17:51:25 +02: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
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
Steven Allen
b64d17b924 properly expose dual dht 2020-04-13 15:58:12 -07:00
Steven Allen
8679954f9b chore: update flatfs
And remove retry logic. This was flatfs specific and we've moved the logic down
into flatfs itself.

This update:

* Retries in more cases when we run out of file descriptors.
* Ensures we don't leak temporary files on batch put.
2020-04-10 16:42:29 -07:00
Steven Allen
e55c688fca fix: run tests in "dht server" mode
Otherwise, we'd need to wait a delay on start for nodes to start becoming
servers.
2020-04-09 23:07:27 -07:00
Steven Allen
bb08f7fe56 assign public IP addresses for tests that need them 2020-04-09 21:41:42 -07:00
Steven Allen
8a002250dc feat: introduce the dual WAN/LAN DHT
And only join the WAN DHT if we're publicly reachable.
2020-04-09 21:41:38 -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
1a85fddfeb For now remove export from the gateway whitelist 2020-04-08 14:54:49 -07:00
Peter Rabbitson
4772ca6134 Add simple byte-counting export progress-bar 2020-04-08 14:54:49 -07:00
Peter Rabbitson
ae5a9e0549 Bring back pipe closure from other end 2020-04-08 14:54:49 -07:00
Peter Rabbitson
380bffa146 Move commented out code together 2020-04-08 14:54:49 -07:00
Peter Rabbitson
73bb0e8353 Check against error veriable 2020-04-08 14:54:49 -07:00
Peter Rabbitson
c2f9849a2b Fastify with go-car version taking a session 2020-04-08 14:54:49 -07:00
Peter Rabbitson
f129f24bd7 Bring back error-prettifyer removed in f6b707d85f 2020-04-08 14:54:49 -07:00
Peter Rabbitson
3dca025f05 Remove pipe close since we are already in error 2020-04-08 14:54:49 -07:00
Peter Rabbitson
7a749ea7cb Less confusing CLI helptext 2020-04-08 14:54:49 -07:00
Peter Rabbitson
a5f19c4f9c Remove unnecessay prefetch 2020-04-08 14:54:49 -07:00
Peter Rabbitson
b0a461ca5c Typo fix 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
Steven Allen
ba631bbab0 fix: start the IPFS dht in server mode by default for now 2020-04-06 18:53:16 -07:00
Steven Allen
56e0e18294 feat: add a dhtserver option 2020-04-06 18:53:16 -07:00
Steven Allen
70fe64581d feat(dht): update to cypress DHT in backwards compatibility mode
This upgrades to the next DHT version, but in backwards compatibility mode.
2020-04-06 18:53:14 -07:00
Hector Sanjuan
7340543615 corehttp: Gateway handler: add Allow headers when returning MethodNotAllowed
Spec says that response with 405 must set Allow headers.
2020-04-05 09:57:57 +02: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
@RubenKelevra
7b750664fb
Revert last change (the default is now printed twice) 2020-04-04 05:34:56 +02:00
Hector Sanjuan
3b30e8e2b0 ipfs files cp: improve docstring with better words.
And align capitalization.
2020-04-02 20:46:31 +02:00
Hector Sanjuan
b5aaf75e25 Fix #4996: Improve help text for "ipfs files cp" 2020-04-01 12:08:48 +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
efdb8db276 fix: get rid of shutdown errors
Instead of feeding through the top-level context, feed through a cancel-free
context (that still carries the same context values). Then, when the top-level
context is canceled, call `stop` to shut everything down in-order. Finally,
cancel the inner context to make sure everything has been cleaned up.

Ideally, we just wouldn't use contexts for this. But this is strictly better
than what we have.
2020-03-29 20:48:43 -07:00
Steven Allen
f28b8fce66 feat: tls by default
Switches to TLS as the default security transports.
2020-03-29 19:12:54 -07:00
Steven Allen
ad543f0724 feat: update go-libp2p & go-bitswap
Uses the new libp2p AutoNAT option.
2020-03-24 14:54:09 -07:00
Steven Allen
b5ad3be060 feat: improve key lookup
* Support peer IDs encoded as CIDs.
* Support looking up the identity key by peer ID.
2020-03-23 15:40:48 -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
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
72490f7ed0 gateway: simplify/improve dnslink rewrite handling
Instead of adding a new fake header (that could be spoofed by the client...),
just read the original request URI from the request object.

This also removes support for suborigins. They have never been implemented in
browsers and it looks like efforts have stalled. We can add support back if we
need it but, well, maintaining support was going to be more trouble than it was
worth.

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2020-03-17 19:34:44 -07:00
Steven Allen
11c229bb14 rename ProxyOption to P2PProxyOption
(we're implementing an _actual_ proxy)

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2020-03-17 19:34:44 -07:00
Marten Seemann
53782d439c update to new private network interfaces 2020-03-09 19:39:06 -07:00
Steven Allen
1ae69862bc
Merge pull request #6602 from ipfs/feat/coreapi-mount
mount: switch over to the CoreAPI
2020-03-06 22:30:12 -08:00
Steven Allen
fef5e8d780 doc(commands): document that dht put takes a file
Turns out that our CLI help text doesn't indicate whether or not a command takes
a file.
2020-03-06 13:49:57 -08:00
Steven Allen
8643d949f3 cmds/tar: use the coreapi 2020-03-02 09:22:58 -08:00
Alan Shaw
0ddc2751a4
docs: fix typo
Co-Authored-By: Johnny <9611008+johnnymatthews@users.noreply.github.com>
2020-03-02 15:57:04 +00:00
Alan Shaw
885e1125b8
docs: fix example for files.write
* Adds the `--parents` optiont to the first command so that it is runnable
* Updates the description to specifies the option to use if you _do_ want nonexistant intermediate directories created
2020-03-02 10:36:13 +00:00
Steven Allen
46d26af0b6 feat(graphsync): mount the graphsync libp2p protocol
This won't fetch files from graphsync but will serve them.

fixes #6830
2020-02-26 09:11:15 -08:00
Steven Allen
bddd8287d4 doc(add): document hash stability
fixes #4318
2020-02-11 09:29:30 -08:00
Steven Allen
effbc0a542
docs(commands): fix mfs wording 2020-02-07 07:27:27 -08:00