Commit Graph

86 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
c17bcbd4e0
Merge pull request #7340 from ipfs/feat/boostrap-when-low
feat: bootstrap in dht when the routing table is empty
2020-05-25 13:01:08 -07:00
Steven Allen
ff17485cbb feat: bootstrap in dht when the routing table is empty
Otherwise, we could end up with only DHT clients and never re-bootstrap.

I've left the default go-ipfs bootstrapping code in for now as it's technically
possible to disable the DHT entirely.
2020-05-24 22:55:30 -07:00
Steven Allen
4714c0cecc feat: enable QUIC by default
But only if private networks are disabled.
2020-05-22 13:48:58 -07:00
Steven Allen
03c1f769d7 fix: remove strict signature verification option
Signature verification is now always strict.
2020-05-22 13:48:26 -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
0a8b2f117b chore: update deps
And remove use of mafilter library (now rolled into go-multiaddr).
2020-05-20 17:51:04 -07:00
Steven Allen
69ccf99915 chore: update libp2p 2020-05-20 16:56:22 -07:00
Steven Allen
5d13ac370b fix: fix duplicate block issue in bitswap
1. Increase broadcast timeout.
2. Fix use of sessions when pinning.

This also includes some bitswap changes to reduce some memory allocations and
optimize some hot spots.
2020-04-23 00:31:06 -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
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
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
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
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
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
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
Marten Seemann
53782d439c update to new private network interfaces 2020-03-09 19:39:06 -07: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
a53d48059b fix: migrate from deprecated warning function 2020-01-28 21:20:21 -08:00
Steven Allen
98d2fef6ec fix: use pre-defined relays for autorelay
Unfortunately, we don't currently have any way to pick out good relays from bad.
That means we keep searching, trying bad relays, searching some more, trying
_the same relays_, etc. until we randomly find 3 good stable relays. In
practice, this means we just keep searching forever and keep thrashing the DHT.

see https://github.com/libp2p/go-libp2p/issues/694
2020-01-17 06:28:23 -08:00
Adin Schmahmann
3a0d0e817a support async datastores 2019-12-19 00:59:31 -05:00
Steven Allen
8f3b274080 fix: move away from deprecated peer ID functions 2019-12-14 19:48:31 +01:00
Steven Allen
1b7f3a8d51
Merge pull request #6758 from ipfs/feat/ipns-persistent-pubsub
IPNS over PubSub as an Independent Transport
2019-12-13 14:55:56 +01:00
Roman Proskuryakov
7fdcbce1f1 Change Reporter to BandwidthCounter in IpfsNode 2019-12-12 12:42:25 +03:00
Adin Schmahmann
36494e493a ipns(pubsub): utilize persistent pubsub value store 2019-12-11 11:52:05 -05:00
Michael Muré
c3692a5913 extract the pinner to go-ipfs-pinner and dagutils into go-merkledag 2019-12-02 15:45:44 -05:00
Steven Allen
208a340eb1
Merge pull request #6686 from kishansagathiya/fix/typo
Fix typo
2019-09-30 07:27:45 -07:00
Kishan Mohanbhai Sagathiya
f0253dd108 Fix typo 2019-09-28 15:15:41 +05:30
Steven Allen
853ed0be5d chore: fix deprecation warnings 2019-09-26 15:38:12 -07:00
Steven Allen
416195de00 discovery: improve mdns warnings
* Don't warn when connecting to peers.
* Include the peer id when failing to connect to discovered nodes.
2019-09-23 12:17:56 -07:00
Steven Allen
9f1f958432 fix: close peerstore on stop
fixes #6627
2019-09-05 17:20:14 -07:00
Cole Brown
1bcf51e02d Update go-libp2p, fix tests with weak RSA keys 2019-08-23 14:26:20 -07:00
Steven Allen
55afc478ec
Merge pull request #6512 from ipfs/fix/default-gossipsub
make gossipsub the default routing protocol for pubsub
2019-07-18 01:04:58 -07:00
Steven Allen
1a55676bf9 make gossipsub the default routing protocol for pubsub
Pubsub is experimental anyways.
2019-07-15 10:02:42 -07:00
Łukasz Magiera
3f7927f1d8 Update imports to go-filestore 2019-07-15 15:52:34 +02:00
Michael Avila
10de165644
Change to construct provider from go-ipfs-provider 2019-07-03 14:22:55 -07:00
Sander Pick
f2635d1f5e
libp2p: moves discovery after host listen
Prevents the MDNS server from starting when the host has zero addresses.

Re: https://github.com/libp2p/go-libp2p/issues/652

Signed-off-by: Sander Pick <sanderpick@gmail.com>
2019-06-05 20:32:51 -07:00
Hlib
1f1c68f16e Usage of context helper in Blockstore provider 2019-06-04 16:11:27 +03:00
Hlib
4ca2763ee5 Remove Repo from routing provider parameter 2019-06-03 09:51:12 -07:00
Raúl Kripalani
e8c2852179 migrate to go-libp2p-core.
closes #6391

License: MIT
Signed-off-by: Raúl Kripalani <raul@protocol.ai>
2019-05-31 23:23:52 -07:00
Michael Avila
4feff27a89
Group imports correctly 2019-05-29 16:21:09 -07:00
Michael Avila
98df9143ed
Use ProvideEnabled option to construct Bitswap 2019-05-29 16:20:33 -07:00
Michael Avila
992ec291bc
Give argument intent revealing name (and add comment) 2019-05-29 16:20:33 -07:00
Michael Avila
23e1b1db3a
Use conditional for running provider online
License: MIT
Signed-off-by: Michael Avila <davidmichaelavila@gmail.com>
2019-05-29 16:20:32 -07:00
Michael Avila
9587723911
Remove strategic provider sys constructors
License: MIT
Signed-off-by: Michael Avila <davidmichaelavila@gmail.com>
2019-05-29 16:20:32 -07:00
Michael Avila
0b8f0d3a84
Use interface{} for duplicated return type
License: MIT
Signed-off-by: Michael Avila <davidmichaelavila@gmail.com>
2019-05-29 16:20:32 -07:00