diegomrsantos
fe4ff79885
feat: message prioritization with immediate peer-published dispatch and queuing for other msgs ( #1015 )
2024-02-16 10:54:16 +01:00
diegomrsantos
e0f70b7177
improvement: enhanced checkExpiring macro with custom timeout ( #1023 )
2024-02-09 11:51:27 +01:00
Jacek Sieka
2ede0fa40c
remove redundant gcsafe annotations ( #999 )
2023-12-05 08:05:32 +01:00
diegomrsantos
ebef85c9d7
Rate limit fixes ( #965 )
2023-11-09 14:20:28 +01:00
diegomrsantos
3fc1236659
Revert "Prevent concurrent IWANT of the same message ( #943 )" ( #977 )
2023-11-03 15:24:27 +01:00
diegomrsantos
18b0f726df
Rate Limit tests ( #953 )
2023-10-05 15:12:07 +00:00
diegomrsantos
75871817ee
Split msgs in iwant response if bigger than limit ( #944 )
2023-10-02 11:39:28 +02:00
diegomrsantos
56599f5b9d
GossipSub Traffic scoring ( #920 )
2023-09-22 16:45:08 +02:00
Tanguy
b2eac7ecbd
GS: Relay messages to direct peers ( #949 )
2023-09-15 17:22:02 +02:00
diegomrsantos
c6aa085e98
Prevent concurrent IWANT of the same message ( #943 )
2023-08-21 16:34:24 +02:00
diegomrsantos
f80ce3133c
Bandwidth estimate as a parameter ( #941 )
2023-08-14 17:03:46 +02:00
Tanguy
7a369dd1bf
GossipSub: Limit flood publishing ( #911 )
...
Co-authored-by: Diego <diego@status.im>
2023-07-31 11:13:51 +02:00
Tanguy
b784167805
GossipSub: IDontWant ( #934 )
2023-07-28 10:58:05 +02:00
Tanguy
440461b24b
GS: improve handleIHave ( #922 )
2023-07-11 12:17:50 +02:00
Tanguy
4aa615c44c
GossipSub: TimedEntry & shortAgent fixes ( #858 )
2023-04-03 11:05:01 +02:00
Tanguy
6b61ce8c91
GossipSub: Better IWANT handling ( #875 )
2023-04-03 10:56:20 +02:00
Tanguy
8d5ea43e2b
Upgrade flow refactoring ( #807 )
2023-03-08 12:30:19 +01:00
Tanguy
c1a3bd8fee
Fix pubsub CI logs ( #861 )
2023-03-01 16:59:44 +01:00
Tanguy
f14ada3dcf
Move tests flags from 'nimble test' to 'config.nims' ( #852 )
2023-02-10 11:32:21 +01:00
Tanguy
c11772c94e
Happy new year! ( #847 )
2023-01-20 15:47:40 +01:00
Tanguy
1711c204ea
Fix: big messages in pubsub ( #808 )
2022-11-24 16:43:45 +00: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
abbeaab684
Keep connection alive when peer doesn't support pubsub ( #754 )
2022-09-06 13:20:42 +02:00
Tanguy
3ffc03ed16
Gossipsub: Rebalance mesh immediately when peer sub/unsub ( #719 )
2022-09-02 10:24:54 +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
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
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
c97befb387
Add tests for gossipsub direct peers ( #707 )
2022-04-12 14:03:31 +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
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
Tanguy
df566e69db
Fixes for style check ( #676 )
2021-12-16 11:05:20 +01:00
Tanguy
47a35e26d7
Typo: s/unsubcribeBackoff/unsubscribeBackoff ( #675 )
2021-12-14 10:50:57 +01:00
Tanguy
6893bd9dbb
Customizable gossipsub backoff on unsubscribe ( #665 )
...
* Customizable gossipsub backoff on unsubscribe
* change default to 5s
2021-12-02 14:47:40 +00:00
Tanguy
6f779c47c8
Gossipsub: don't send to peers seen during validation ( #648 )
...
* Gossipsub: don't send to peers seen during validation
* Less error prone code
* add metric
* Fix metric
* remove dangling code test
* address comments
* don't allocate memory
2021-11-14 09:08:05 +01:00
Tanguy
5885e03680
Add maxMessageSize option to pubsub ( #634 )
...
* Add maxMessageSize option to pubsub
* Switched default to 1mb
2021-10-25 12:58:38 +02:00
Tanguy
846baf3853
Various cleanups part 1 ( #632 )
...
* raise -> raise exc
* replace stdlib random with bearssl
* object init -> new
* Remove deprecated procs
* getMandatoryField
2021-10-25 10:26:32 +02:00
Menduist
d02735dc46
Remove peer info ( #610 )
...
Peer Info is now for local peer data only.
For other peers info, use the peer store.
Previous reference to peer info are replaced with the peerid
2021-09-08 11:07:46 +02:00
Tanguy Cizain
caac8191d2
Change newXXXX procs to XXXX.new ( #585 )
...
* newBufferStream -> BufferStream.new
* newMultistream -> MultistreamSelect.new
* newSecio -> Secio.new
* newNoise -> Noise.new
* newPlainText -> PlainText.new
* newPubSubPeer -> PubSubPeer.new
* newIdentify -> Identify.new
* newMuxerProvider -> MuxerProvider.new
2021-06-07 09:32:08 +02:00
Dmitriy Ryajov
ac4e060e1a
adding raises defect across the codebase ( #572 )
...
* adding raises defect across the codebase
* use unittest2
* add windows deps caching
* update mingw link
* die on failed peerinfo initialization
* use result.expect instead of get
* use expect more consistently and rework inits
* use expect more consistently
* throw on missing public key
* remove unused closure annotation
* merge master
2021-05-21 10:27:01 -06:00