Skip to content

Commit

Permalink
Add bee-autopeering crate (#755)
Browse files Browse the repository at this point in the history
* Add bee-autopeering crate

* Improve and test autopeering multiaddress

* Add entrynode multiaddrs parsing test

* Add identity module; protobufs; peer module

* Add DiscoveredPeer type

* Add Packet type

* Add peering messages

* Add salt and distance calc.

* Separate salt and distance

* Contact entry nodes

* Add 'AutopeeringServer' type

* Add 'discovery' module

* Add 'DiscoveredPeerlist'

* Add 'backoff' module

* Add 'Backoff' type

* Implement backoff jitter and timout

* Impl custom 'ServiceMap' type with simple protobuf conversion

* Switch to milliseconds in backoff module

* Use same jitter logic as Hornet

* Send 'Ping' packet

* Impl Into<Peer> for DiscoveredPeer

* Ping entry nodes

* Refactor and cleanup

* Answer pings; refactoring

* Nits

* Add 'request' module

* Add 'cron' module

* Add cron job for expired requests

* Fix and expand backoff unit tests

* Add event channels

* Add missing newlines

* Introduce in-memory and sled peerstore

* Larger refactor

* Consistent message handling

* Refactor local and distance

* Make init generic over peerstore backend

* Finish neighborhood impl

* Make Neighborhood iterable

* Update salts; drop neighborhoods

* Test neighborhood size limit

* Add distance unit tests

* Finish filter impl.

* Add apply_condition unit test

* handle and send drop request

* Peering request handling

* Discovery verification handling

* Shutdown logic; Add usage example

* Improve shutdown bus

* Manual Debug impl for AutopeeringMultiaddr

* Add DNS resolution to AutopeeringMultiaddr

* Create peer instances from entry node list

* Format

* Generate network id; print autopeering warning

* Send 'DiscoveryRequest'

* Review comments

* Nits

* Fix packet processing

* Fix local peer services

* Add CHANGELOG.md, README.md, and LICENSE

* Remove expired requests regularly; Update salts regularly

* Review comments; Small refactor

* More comments describing the delay factory; tiny refactor

* Add ValidationError enum; Improve discovery message processing

* Refactor 'Repeat' trait

* Introduce 'Runnable' trait and 'Spawner' struct

* Introduce 'task' module; Remove 'shutdown' module

* Fix verification response validation

* Some doc fixes

* Event unification; design improvements

* Random peer selection in DiscoveryResponse

* Add 'ring' module; Build active- and replacement peerlists on top

* Add 'command' module; Introduce discovery handlers

* Refactor; request callbacks

* Refactor 'task' module

* Doc fixes

* Finish query strategy

* Fix example; Format

* Fix query peer selection

* Refactor verification and discovery functions

* Refactor peering manager

* Larger refactor

* Fix dead lock

* Finish neighborhood update logic

* Finish sled peerstore; Refactoring

* Refactor neighbor filter

* Make PeerId Copy; Impl byte serialization for Peer and PeerId

* Fix 'channel closed' bug

* Impl Display for Event

* Set better log levels

* Add Local constructor for hex encoded private keys

* Add Local constructor for libp2p ed25519 keypair

* Downgrade more logs to trace level

* Don't log log local id (as likely being logged before)

* Write docs

* Fix doc tests; Make neighbor validator non-optional

* Fix warnings, clippy, format

* Add 'discovered' relation

* Little readme fix

* Let readme point to lib.rs

* Dead lock protection

* Fix panic

* Do not expose lock guards of the neighbor filter

* Log peer id and addr when sending

* Remove requests that weren't answered in time

* Fix peering event log

* Access peer service

* Create multiaddr from service endpoint data

* Log connected discovered peers

* bee-network: Automatically connect to discovered peers

* Message error handling

* Remove disconnected discovered peers

* Remove undialable discovered peers

* Git-ignore peerstore dir

* Update deps; JSON and TOML config support

* Undo deps bump due to policy

* Introduce the following changes:
* Rename bee-network to bee-gossip;
* Move bee-autopeering and bee-gossip into bee-network directory
* Add enabled option to autopeering config section

* Impl Default for AutopeeringConfig

* Fix default impl

* Rename config json and toml builders

* Enforce building the config through one of its builders

* Fix deserialization

* Format

* Fix bee-gossip example

* Remove yet unused command logic

* Remove all remaining yet unused code

* Set default-features = false on all deps

* Address review comments

* Fix test and udeps CI

* Fix clippy

* Fix format

* Fix clippy --all-targets

* Update default port; Improve docs

* Address review comments

* Address more review comments

* Address even more review comments

* Fix udeps

* Typo

* Update codeowners file
  • Loading branch information
Alex6323 authored Dec 21, 2021
1 parent 322e967 commit 8bd2f7a
Show file tree
Hide file tree
Showing 99 changed files with 7,902 additions and 221 deletions.
3 changes: 2 additions & 1 deletion .github/CODEOWNERS
Loading

0 comments on commit 8bd2f7a

Please sign in to comment.