Giovanni Petrantoni
b902c030a0
add metrics into chronosstream to identify peers agents ( #458 )
...
* add metrics into chronosstream to identify peers agents
* avoid too many agent strings
* use gauge instead of counter for stream metrics
* filter identity on /
* also track bytes traffic
* fix identity tracking closeimpl call
* add gossip rpc metrics
* fix missing metrics inclusions
* metrics fixes and additions
* add a KnownLibP2PAgents strdefine
* enforse toLowerAscii to agent names (metrics)
* incoming rpc metrics
* fix silly mistake in rpc metrics
* fix agent metrics logic
* libp2p_gossipsub_failed_publish metric
* message ids metrics
* libp2p_pubsub_broadcast_ihave metric improvement
* refactor expensive gossip metrics
* more detailed metrics
* metrics improvements
* remove generic metrics for `set` users
* small fixes, add debug counters
* fix counter and add missing subs metrics!
* agent metrics behind -d:libp2p_agents_metrics
* remove testing related code from this PR
* small rebroadcast metric fix
* fix small mistake
* add some guide to the readme in order to use new metrics
* add libp2p_gossipsub_peers_scores metric
* add protobuf metrics to understand bytes traffic precisely
* refactor gossipsub metrics
* remove unused variable
* add more metrics, refactor rebalance metrics
* avoid bad metric concurrent states
* use a stack structure for gossip mesh metrics
* refine sub metrics
* add received subs metrics fixes
* measure handlers of known topics
* sub/unsub counter
* unsubscribeAll log unknown topics
* expose a way to specify known topics at runtime
2021-01-08 14:21:24 +09:00
Dmitriy Ryajov
8e57746f3a
improving connection estblishing metrics ( #500 )
2021-01-07 17:06:41 -06:00
Dmitriy Ryajov
b2ea5a3c77
Concurrent upgrades ( #489 )
...
* adding an upgraded event to conn
* set stopped flag asap
* trigger upgradded event on conn
* set concurrency limit for accepts
* backporting semaphore from tcp-limits2
* export unittests module
* make params explicit
* tone down debug logs
* adding semaphore tests
* use semaphore to throttle concurent upgrades
* add libp2p scope
* trigger upgraded event before any other events
* add event handler for connection upgrade
* cleanup upgraded event on conn close
* make upgrades slot release rebust
* dont forget to release slot on nil connection
* misc
* make sure semaphore is always released
* minor improvements and a nil check
* removing unneeded comment
* make upgradeMonitor a non-closure proc
* make sure the `upgraded` event is initialized
* handle exceptions in accepts when stopping
* don't leak exceptions when stopping accept loops
2021-01-04 12:59:05 -06:00
Dmitriy Ryajov
e1bc9e7a44
Enable gh actions to run on multiple platforms ( #479 )
...
* enable github actions
* bring back azure pipelines
* brang back codecov and nbc bump
* disable bash tracing
* wip
* disable azure
* re-enable windows
* use GOPATH to determine go workspace
2020-12-22 18:12:02 -06:00
Giovanni Petrantoni
63bf369315
nbc bump - target unstable
2020-12-21 00:53:59 +09:00
Giovanni Petrantoni
5e79d3ab9c
avoid triggering unsubscribeAll from unsubscribe (gossip)
2020-12-20 17:08:03 +09:00
Giovanni Petrantoni
4858e0ab15
Gossipsub refactor pt2 ( #495 )
...
* add sub/unsub test
* remove unused variable from gossip
2020-12-20 00:45:34 +09:00
cyanlemons
f970155d3b
updated README to display correct nim version ( #494 )
2020-12-19 15:43:54 +01:00
Giovanni Petrantoni
05e789a34f
Gossipsub refactor ( #490 )
...
* refactor peerStats, re-enable scores for testing
* remove gossip 1.0
* cleanup
* codecov matrix fixes
* restore previous score on onNewPeer
* fix coverage n checks
* unsubscribeAll gossipsub fixes
* refactor unsub/sub
* refactor onNewPeer and fix score flow
* disable scores by default (change in tests later)
* fix tests, enable scores in tests
* fix wrongly merged test
* ensure topic removal from topics table
* small typo fix
* testinterop fixes
2020-12-19 15:43:32 +01:00
cyanlemons
f7b8a097d5
fix invalid README hyperlink by adding https prefix ( #492 )
2020-12-19 09:31:35 +01:00
Giovanni Petrantoni
6c2e743ff3
Race condition in pubsub #469 ( #471 )
...
* Race condition in pubsub #469
* use allFinished
* improve cancellation handling
2020-12-19 00:56:46 +09:00
Jacek Sieka
a1a5f9abac
nice msgid log formatting ( #491 )
2020-12-18 16:14:07 +01:00
Giovanni Petrantoni
52628d1a2e
avoid using debug logging in gossip, just because
2020-12-17 17:21:09 +09:00
Jacek Sieka
0c331d5200
simplify noise frame construction ( #478 )
2020-12-16 13:10:06 +01:00
Giovanni Petrantoni
051681678b
better codecov.yml comments
2020-12-16 13:07:22 +09:00
Giovanni Petrantoni
a50b1c186c
Improve PR codecov output ( #482 )
...
* wip
* set 48 as n builds
* fixes
2020-12-16 13:04:57 +09:00
Jacek Sieka
9e5ba64c48
avoid creating prune message unless we're pruning ( #487 )
2020-12-15 22:46:03 +01:00
Dmitriy Ryajov
ea6988d380
track stew head ( #488 )
2020-12-15 14:12:22 -06:00
Giovanni Petrantoni
18d69a5c41
Workaround the gossipsub table race condition ( #486 )
2020-12-15 12:32:11 -06:00
Jacek Sieka
b52dab9fd7
use stew/leb128 ( #481 )
...
* avoids multiple reallocations in readLp
* simplifies varint implementation
* remove vbuffer.length (unused)
2020-12-15 12:15:22 -06:00
Giovanni Petrantoni
5543f6681f
first pass, use results for Cid module ( #480 )
...
* first pass, use results for Cid module
* improvements to decode
2020-12-15 14:19:18 +01:00
Dmitriy Ryajov
a990fe95a0
Fixing range error introduces in v1.2.8 ( #485 )
2020-12-15 06:58:38 +01:00
Giovanni Petrantoni
f8f0bc1bd8
Gossip improvements ( #476 )
...
* add more traces, remove async from rebalance
* more traces
* avoid computng scores when weight is 0.0
* debug colocation, fix an indent in unsubpeer (minor)
* add full ValidationResult coverage
* store in cache only after validation
* gossip 1.0 fixes
* fix typo
* gossip 10 internal test fixes
* test fixing
* refactor peerstats usages
* populate tables if missing when scoring
2020-12-15 10:25:22 +09:00
Dmitriy Ryajov
4224f12503
fix memory safety issue in tests ( #484 )
2020-12-14 15:22:53 -06:00
Mamy Ratsimbazafy
42d264d8b0
Rm bearssl + Deactivate Travis completely ( #477 )
...
* Rm bearssl added in #2167
* Travis ARM doesn't work
2020-12-10 14:19:27 +01:00
Mamy André-Ratsimbazafy
8805e5f061
Use Travis only for ARM64 - https://github.com/status-im/nimbus-eth2/pull/2167
2020-12-09 16:05:41 -06:00
Jacek Sieka
6f1ecc8df7
streamline socket read/write hot path ( #473 )
...
* streamline socket read/write hot path
This avoids some unnecessary memory copying on the hot path of noise /
mplex, as well as getting rid of a few futures - profiling shows that
this is one of the main culprits of small memory allocations, which
makes sense - this is where gossip fan-out happens.
* fewer futures (and corresponding closures) when sending lpchannel
messages
* avoid data copies when encrypting and framing noise messages
* avoid copying tuple when reading noise data (poor c codegen)
* fix setting eof flag in secure read
* write noise frames in one go
...and closing secure socket once is enough
2020-12-09 08:56:40 -06:00
Jacek Sieka
1befeb8c2e
clean up peerid ( #470 )
...
* fix dangling cstring on error return
* remove some useless inlines
* less mallocs in shortlog
* proc -> func
* rename test
2020-12-03 13:53:16 -06:00
Dmitriy Ryajov
e9d4679059
Race in connection setup ( #464 )
...
* check that connection is not closed or eof
* don't release connection lock prematurely
* test that only valid connections can be added
* correct exception type on closed connection
* add clarifying comment
* use closeWithEOF for more stable test
* misc comments
* log stream id in buffestream asserts
* use closeWithEOF to prevent races in tests
* give some time to the remote handler to trigger
* adding more tests to make codecov happy
2020-12-02 19:24:48 -06:00
Dmitriy Ryajov
d1c689e5ab
adding libp2p tag to logScope ( #465 )
2020-12-01 11:34:27 -06:00
Giovanni Petrantoni
e1648d4404
fix mcache logic check in gossipsub
2020-12-01 23:55:51 +09:00
Giovanni Petrantoni
b4738d723c
Some gossip fixes ( #467 )
...
* fix some missing rpc in rebalanceMesh
* clarify some variable names and lifetime
* further improvements
2020-12-01 11:44:09 +01:00
Dmitriy Ryajov
94e672ead0
allow concurrent closeWithEOF ( #466 )
...
* allow concurrent closeWithEOF
* add dedicated closedWithEOF flag
2020-12-01 09:44:21 +01:00
Jacek Sieka
5c2a54bdd9
fix timeoutmonitor loop ( #463 )
...
* fix timeoutmonitor loop
* Clarify that cancellation can happen while in timeoutMonitor
2020-11-29 13:34:19 +01:00
Dmitriy Ryajov
18443dafc1
rework peer event to take an initiator flag ( #456 )
...
* rework peer event to take an initiator flag
* use correct direction for initiator
2020-11-28 10:59:47 -06:00
Dmitriy Ryajov
3d44fcb8b3
use cancelAndAwait to mitigate further hangs ( #459 )
2020-11-28 09:48:06 -06:00
Dmitriy Ryajov
a8f5f7a8bb
move dialing logic to it's own proc to avoid try/finally bugs ( #461 )
...
* move dialing logic to it's own proc to avoid try/finally bugs
* re-export transport
* lint
* add cancelation test
* test remote conn close on dial
2020-11-28 09:05:12 +01:00
Giovanni Petrantoni
02b20440f2
Limit ihave emission ( #462 )
...
* add some limits to ihave emission, go has them, rust does not actually
* restore shuffling of IDs
* add some context
2020-11-28 16:27:39 +09:00
Giovanni Petrantoni
12db9a4cf2
TopicParams validation tuning
2020-11-28 00:23:09 +09:00
Giovanni Petrantoni
809df8d04d
add some extra gossip metrics
2020-11-26 16:20:34 +09:00
Giovanni Petrantoni
6c7f2766fe
expose seenTTL parameters ( #457 )
2020-11-26 14:45:10 +09:00
Dmitriy Ryajov
ca9c5c85e4
dont break chronicles logging streamline connsetup ( #455 )
2020-11-25 13:34:48 -06:00
Dmitriy Ryajov
7b1e652224
Allow custom identify agent string ( #451 )
...
* allow custom agent version string
* rework tests and add test for custom agent version
2020-11-25 07:42:02 -06:00
Dmitriy Ryajov
164892776b
get rid of hangs cleanup ( #453 )
2020-11-25 07:35:25 -06:00
Dmitriy Ryajov
21110636cb
fixing log level to avoid sacring users ( #452 )
2020-11-24 12:07:27 -06:00
Giovanni Petrantoni
a3b21f7cbb
update create-pull-request
2020-11-24 17:23:28 +09:00
Dmitriy Ryajov
351489bfa9
getMuxedStream to more appropriate getStream ( #448 )
2020-11-24 00:37:45 -06:00
Dmitriy Ryajov
69ae24dc8d
less leak prone cleanup ( #447 )
...
* less leak prone cleanup
* fix double allFinished
2020-11-23 18:22:15 -06:00
Dmitriy Ryajov
6cc3f4283a
update conn peerinfo instead of replacing ( #445 )
...
* update conn peerinfo instead of replacing
* remove unnecesary peerid var
2020-11-23 15:15:55 -06:00
Dmitriy Ryajov
034a1e8b1b
small cleanups from tcp-limits2 ( #446 )
2020-11-23 15:02:23 -06:00