* Refactor relay_finder and start autorelay after identify
* Clock fork
* Remove multiple timers and use a single rate limiting chan for findNodes
* Remove clock fork
* Rename
* Use scheduledWork.nextAllowedCallToPeerSource.Add(rf.conf.minInterval)
* Fix flaky test that relied on time
* add autonat metrics
* add benchmarks
* use increase instead of sum by with rate in dashboard
* add interface assertion
* add no alloc test
* update dashboard
* autonat: minor dashboard tweaks
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
* do not start new relay if one already exists
* Update p2p/host/relaysvc/relay.go
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
* test by emitting events
* fix race condition
* increase timeout
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
* bump go.mod to Go 1.19 and run go fix
* stop using the deprecated io/ioutil package
* bump go.mod to Go 1.19 and run go fix
* bump go.mod to Go 1.19 and run go fix
* bump go.mod to Go 1.19 and run go fix
* stop using the deprecated io/ioutil package
* bump go.mod to Go 1.19 and run go fix
* stop using the deprecated io/ioutil package
* update .github/workflows/go-test.yml
* update .github/workflows/go-check.yml
* update .github/workflows/release-check.yml
* various fixes
* stop using deprecated math/rand.Read
---------
Co-authored-by: web3-bot <web3-bot@users.noreply.github.com>
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
* rcmgr: Change LimitConfig to use LimitVal type
* Nits
* Remove DefaultReifiedLimits
* Use pointers for optional ResourceLimits
* Reify a nil pointer with defaults
* Fix maxints
* Move helper
* Return nil if everything is default
* Check for nil pointer
* Change terms
* Add IsDefault helper
* Use values instead of pointers for PartialLimitConfig
* Remove references to reify
* Unmarshal 0 limits as block all
* ResourceLimits can build on Limits interface objs
* Convert max int to unlimited
* Remove ToLimitConfigWithDefaults
* Rename to ToPartialLimitConfig
* identify: cache the snapshot
* identify: refactor sending of Identify pushes
* identify: fix concurrency when sending pushes
* identify: fix timestamp handling
* identify: remove unneeded pushSemaphore
* identify: improve logging
* identify: use a sequence number instead of a timestamp
* identify: start with an empty snapshot
* identify: wait until we've actually finished setting up
* Replace OpenCensus with Prometheus Go SDK
Allows for much more efficient metric collecting
* PR comments
* Try a different way of testing noallocs
* CI fiddling
* CI fiddling
* Undo debug change
* Return early
* Debug
* Try AllocsPerRun
* Try gosched in noop
* Use AllocsPerRun
* Try without cover
* Use tag
* Revert "Try without cover"
This reverts commit e91b1e8f0d0ffbe6842a37925eb72e0177bf0773.
* Cleanup debug code
* Use global string slice pool
* Split libp2p.EnableAutoRelay into 2 functions
Provide two specific ways to enable the autorelay subsystem
libp2p.EnableAutoRelayWithStaticRelays
libp2p.EnableAutoRelayWithPeerSource
* remove minInterval from WithPeerSource
* Use PeerSource type
* Fix typo
* Update p2p/host/autorelay/options.go
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
---------
Co-authored-by: Marco Munizaga <git@marcopolo.io>
Co-authored-by: Marco Munizaga <marco@marcopolo.io>
Co-authored-by: Marten Seemann <martenseemann@gmail.com>