Alvaro Revuelta
192cac6254
Store missing pubkey in PeerStore [KeyBook] ( #804 )
2022-11-21 10:55:25 +01:00
Dmitriy Ryajov
8c2eca18dc
Allow passing max message size ( #800 )
...
Co-authored-by: Tanguy <tanguy@status.im>
2022-11-15 14:01:14 +01:00
diegomrsantos
d9305bda84
Add Tor Transport support ( #765 )
2022-11-04 19:20:23 +01:00
Tanguy
4bce8f38c9
Remove sleepAsync from tests/testswitch ( #792 )
2022-10-27 23:10:24 +00:00
Tanguy
dc13ff81d3
Revert "Temporarily remove failing test ( #788 )" & fix tests ( #789 )
...
Co-authored-by: Ludovic Chenut <ludovic@status.im>
2022-10-26 11:07:31 +02:00
Tanguy
2e12c7ab73
Temporarily remove failing test ( #788 )
2022-10-21 16:59:53 +02:00
Tanguy
7b103e02f2
Allow public address mapping ( #767 )
2022-10-20 12:22:28 +02:00
lchenut
32233d36c8
Discovery interface ( #783 )
...
Co-authored-by: Tanguy <tanguy@status.im>
2022-10-03 22:00:00 +00:00
lchenut
1c99aca054
RendezVous Protocol ( #751 )
2022-09-30 10:41:04 +02:00
Tanguy
fa5d102370
Better dnsaddr resolving ( #753 )
2022-09-26 11:03:24 +02:00
diegomrsantos
a56c3bc296
Make observedAddr optional ( #772 )
...
Co-authored-by: Tanguy <tanguy@status.im>
2022-09-22 21:55:59 +02:00
Tanguy
5e7e009445
Move relay & autonat to connectivity folder ( #769 )
2022-09-15 09:43:40 +02:00
Tanguy
72abe822c0
Fix switch failed start ( #770 )
2022-09-15 07:06:32 +00:00
lchenut
4d8b50d24c
Specify EOF error ( #759 )
2022-09-14 10:58:41 +02:00
diegomrsantos
d8a9e93ff7
Add onion3 multiaddr support ( #764 )
2022-09-08 17:10:11 +02:00
Tanguy
abbeaab684
Keep connection alive when peer doesn't support pubsub ( #754 )
2022-09-06 13:20:42 +02:00
Jacek Sieka
dfbfbe6eb6
allow connection to a peer with unknown PeerId ( #756 )
...
Co-authored-by: Tanguy <tanguy@status.im>
2022-09-05 14:31:14 +02:00
Tanguy
3ffc03ed16
Gossipsub: Rebalance mesh immediately when peer sub/unsub ( #719 )
2022-09-02 10:24:54 +02:00
Miran
14d2c3f51e
Configuration refactoring ( #732 )
...
move -d:nimRawSetjmp to nim.cfg
switch .cfg to .nims
add --skipParentCfg
Co-authored-by: Tanguy <tanguy@status.im>
2022-09-01 14:00:22 +02:00
lchenut
2332813873
Autonat protocol ( #739 )
2022-08-23 17:49:07 +02:00
Tanguy
124a7a5ffe
Add missing stub logger ( #752 )
2022-08-03 19:04:17 +02:00
Tanguy
2d864633ea
ConnManager connection tracking refacto ( #749 )
2022-08-03 16:48:19 +02:00
Miran
2fbe82bf9d
make it more Nim 1.4+ compatible ( #742 )
2022-08-03 13:33:19 +02:00
lchenut
34c2fb8787
Circuit relay v2 ( #717 )
2022-08-01 14:31:22 +02:00
tersec
1e598a0239
topicIDs -> topicIds; PubsubPeerEvent -> PubSubPeerEvent; messageIDs -> messageIds ( #748 )
2022-07-27 17:14:05 +00:00
tersec
4ca1c2d7ed
--styleCheck:error ( #743 )
...
* --styleCheck:error
* PeerID -> PeerId
* other libp2p styleCheck changes
* MessageID -> messageId; topicID -> topicId
2022-07-27 11:47:50 +00:00
lchenut
912873f8b3
Replace table by seq for storing muxers ( #741 )
...
Replace table by seq for stocking muxers
2022-07-22 12:54:09 +02:00
Tanguy
533e39ef94
Yamux ( #704 )
...
Co-authored-by: Ludovic Chenut <ludovic@status.im>
2022-07-04 15:19:21 +02:00
Tanguy
150fafbee8
Faster CI ( #724 )
...
* Only compile once in CI
* Fix codecov fetch
2022-07-01 20:20:42 +02:00
Tanguy
d0523fdc9d
Documentation ( #716 )
2022-07-01 20:19:57 +02:00
lchenut
0ece5eaf12
Start/stop protocols ( #730 )
...
Starting/stopping a switch now starts/stops all protocols mounted on that switch
2022-06-30 11:21:33 +02:00
Tanguy
a7e335e1bb
Remove Br prefix from BearSSL ( #728 )
...
ref status-im/nim-bearssl#27
2022-06-16 10:08:52 +02:00
Tanguy
60becadcf9
Peer store refacto ( #700 )
...
There is now a global PeerStore structure (instead of having one for libp2p, one for waku, etc)
The user can create custom books for new types easily
Also add a pruning system to remove dead peers
2022-05-25 12:12:57 +02:00
Tanguy
d4ff1c88e9
Less warnings ( #710 )
2022-05-24 15:10:57 +02:00
lchenut
13503f3799
Circuit relay v1 ( #670 )
...
Circuit relay v1
2022-05-18 10:19:37 +02:00
Tanguy
991549f391
Gossipsub scoring fixes ( #709 )
...
* Use decayInterval as a scoring heartbeat period
* Take mesh delivery window into account
2022-05-11 10:38:43 +02:00
lchenut
32ca1898d9
Gossipsub: Put Peer Exchange behind a flag ( #715 )
...
Add a flag to enable Peer Exchange in Gossipsub (disabled by default)
2022-05-10 10:39:43 +02:00
Tanguy
9ba5c069c8
Update SPR when the PeerInfo changes ( #711 )
2022-04-13 09:35:28 +02:00
Tanguy
c97befb387
Add tests for gossipsub direct peers ( #707 )
2022-04-12 14:03:31 +00:00
tersec
fc6b8f46f1
encrypt and decrypt empty sequences ( #713 )
...
* encrypt and decrypt empty sequences
* use assign in curve25519
2022-04-12 10:41:48 +00:00
Tanguy
c7504d2446
Gossipsub peer exchange ( #647 )
...
* Signed envelopes and routing records
* Send signed peer record as part of identify (#649 )
* Add SPR from identify to new peer book (#657 )
* Send & receive gossipsub PX
* Add Signed Payload
Co-authored-by: Hanno Cornelius <68783915+jm-clius@users.noreply.github.com>
2022-03-14 09:39:30 +01:00
Eric Mastro
44a7260f07
fixes from #688 ( #697 )
...
* tests: invert message logic on expect from #688
* fix: export pubsub_errors for backward compatibility
2022-02-24 17:32:20 +01:00
Tanguy
c09d032133
Allow force dial ( #696 )
2022-02-24 17:31:47 +01:00
Tanguy
f98bf612bd
Fix tests of #638
2022-02-21 18:14:43 +01:00
Tanguy
bc318084f4
GS: Publish to fanout when mesh unhealthy ( #638 )
...
* Send to fanout when mesh unhealthy
* don't use fanout when floodPublish
2022-02-21 16:22:08 +01:00
Eric Mastro
3b718baa97
feat: allow msgIdProvider to fail ( #688 )
...
* feat: allow msgIdProvider to fail
Closes : #642 .
Changes the return type of the msgIdProvider to `Result[MessageID, string]` so that message id generation can fail.
String error type was chosen as this `msgIdProvider` mainly because the failed message id generation drops the message and logs the error provided. Because `msgIdProvider` can be externally provided by library consumers, an enum didn’t make sense and a object seemed to be overkill. Exceptions could have been used as well, however, in this case, Result ergonomics were warranted and prevented wrapping quite a large block of code in try/except.
The `defaultMsgIdProvider` function previously allowed message id generation to fail silently for use in the tests: when seqno or source peerid were not valid, the message id generated was based on a hash of the message data and topic ids. The silent failing was moved to the `defaultMsgIdProvider` used only in the tests so that it could not fail silently in applications.
Unit tests were added for the `defaultMsgIdProvider`.
* Change MsgIdProvider error type to ValidationResult
2022-02-21 16:04:17 +01:00
Tanguy
1a97d0a2f5
Validate pubsub subscriptions ( #627 )
...
* Check topic before subscribing
* Block subscribe to invalid topics
2022-01-14 12:40:30 -06:00
Ștefan Talpalaru
e72d03bc78
CI: test with multiple Nim versions by default ( #684 )
...
* CI: test with 1.2 & devel by default
* Skip buggy windows websocket test
2022-01-10 12:29:52 +01:00
Tanguy
f3dee6865c
Chronos strict exception tracking ( #652 )
...
* Enable chronos strict exception tracking ( -d:chronosStrictException )
2022-01-05 16:27:33 +01:00
Dmitriy Ryajov
dffe4bed45
mitigate high traffic - drop faulty peers ( #460 )
...
Only allow 1 connection per peer
Co-authored-by: Tanguy <tanguy@status.im>
2022-01-04 11:21:24 +00:00