Skip to content
Snippets Groups Projects
Unverified Commit 8fde09bf authored by Wolfgang Welz's avatar Wolfgang Welz Committed by GitHub
Browse files

Move autopeering code from iotaledger/autopeering-sim to goshimmer (#91)

* :sparkles: GetNextCandidate selection added

* :bug: Recompile salt.proto

* :recycle: Refactor peer IDs completely

* :bug: Recompile proto sources

* :construction: WIP

* :ok_hand: renamed to sort

* :construction: Return requested peers on request

* :sparkles: Kepp track how ofter a managed peer was verified

* :wrench: sort adapted to the new peer

* :construction: Query verified peers for new peers

* :construction: WIP

* :white_check_mark: Add manager tests

* :bento: Add peering messages to protobuf

* :art: Make Salt methods consistent with Peer

* :sparkles: Handle peering messages

* :construction: WIP

* :bug: Add To filed to PeersRequest

* :white_check_mark: Add PeersRequest test

* :zap: Adding PeersRequest benchmark

* :art: Move mpeer and helper functions to own file

* :bug: Bump peer only once on reverification

* :construction: WIP

* :bug:

* :construction: WIP

* :bug: Increase buffer to prevent deadlocks

* :zap: Remove unnecessary lock

* :white_check_mark: Add peering request test

* :white_check_mark: Make tests deterministic by triggering reverify

* :construction: WIP

* :lock: fixing concurrency issues

* :white_check_mark: testManager improved

* :bug: Don't send PeeringResponse for invalid salt

* :construction: WIP

* :construction: WIP

* :pencil: removed commented code

* :construction: WIP

* :construction: WIP

* Neighbourhood manager (#11)

* :sparkles: GetNextCandidate selection added

* :lock: fixing concurrency issues

* :white_check_mark: testManager improved

* :pencil: removed commented code

* :construction: WIP

* :construction: WIP

* :construction: WIP

* :construction: WIP

* :heavy_check_mark: Make TestAdd pass in neighborhood_test

`Add` should do nothing if the neighborhood list is full.

* :white_check_mark: Improve TestSrvVerifyBoot

* :arrow_up: Upgrade to go 1.13

* :heavy_minus_sign: Use testify instead of magiconair/properties

* :construction:

* :construction: WIP

* :construction: WIP

* :construction: WIP

* :construction: WIP

* Simulation (#14)

* :sparkles: clear rejection filter after refreshing the public salt

* :sparkles: clean rejection filter

* :white_check_mark: Add mpeer test

* :art: gofmt test

* :art: Remove ineffactual assignments

* :hammer: Trigger panic when index is out of bound in deletePeer

* :white_check_mark: Add selection test

* :white_check_mark: Add TestGetFurtherest and TestGetPeerIndex

* :sparkles: both salt updated at the same time and neighborhood dropped

* :art: Add node peering history for simulation

* :construction: WIP

* :sparkles: added sim visualization

* :fire: removed root handler

* :pencil: added README

* :pencil: updated README

* :heavy_minus_sign: removed unused dependencies

* :art: Tidy go.mod

* :construction: Work in progress

* :construction: WIP

* :construction: WIP

* :construction: WIP

* :lipstick: improved start button

* :construction: WIP

* :sparkles: added keyboard support for start

* :construction: WIP

* :construction: WIP

* :construction: WIP

* :construction: WIP

* :construction: WIP

* :construction: WIP

* :sparkles: added input parameters

* :pencil: README updated

* :lipstick: gif updated

* :lipstick: figure updated

* :pencil: updated

* :lipstick: updated gif

* removed simulation metrics

* :pencil: updated

* :pencil: updated

* :recycle: Extract server from discovery and peering

* :bug: Use golang/protobuf

* Update README.md

* :recycle: Rename PeersRequest to DiscoveryRequest

* :pencil2: Fixing typos

* :art: Move unused function to tests

* :recycle: The selection protocol depends on the discovery

* :white_check_mark: Make tests more robust when using -race

* :loud_sound: Improve logging

* :art: Remove unnecessary arguments

* :bug: Fix data races

* :bug: added timeout for simulated network

* :art: added loop to animation

* :recycle: rename neighborhood to selection

* :sparkles: adds initial salt and fixes simulation end

* :pencil: visualizer enabled by default

* :sparkles: new parameter dropAll and improved python script

* :pencil: updated README

* :pencil: updated README

* :bug: fix salt initialization

* :pencil: added blogpost link

* :pencil: Add badges to README

* :construction_worker: Add Travis CI for tests

* :rotating_light: Correct formating

* :construction_worker: Running golangci on Travis

* :rotating_light: Ignore return value of 'logger.Sync'

* :rotating_light: Remove unused functions

* :pencil: Add link to license

* :art: Move simnetwork to transport

* :art: Use the complete network protocol in simulations

* :recycle: Do not export selection/manager

* :fire: Remove gRPC transport layer

* :white_check_mark: Add UDP connection transport test

* :construction: Implement the peer DB using Goshimmer database

* :heavy_plus_sign: Use the local GoShimmer version

* :sparkles: Add support for a persistent database

* :sparkles: Persist private key of local peer in database

* :bug: Set TTL for bootstrap peers

* :construction: Use GoShimmer events

* :sparkles: Store the supported services in the local peer

* :pushpin: Use most current GoShimmer git version as a dep

* :heavy_plus_sign: Switch to hive.go event package

* :art: Use correct module iotaledger/autopeering-sim

* :bug: Provide dummy service in autopeering simulation

* :sparkles: adds service support in the selection

* :sparkles: adds peer discovered events

* :sparkles: adds GetIncomingNeighbors and GetOutgoingNeighbors

* :bug: fixes out of bound error in splitNodeKey

* :sparkles: adds public IP support

* :bug: fixes localhost

* :bug: fixes localhost parsing

* :wrench: changes selection loop to 1s

* :loud_sound: switches from fmt.Println to log.Debug

* :wrench: increases maxKnown to 1000 and always triggers discovered peer

* :sparkles: adds PeerDeleted event

* :construction: moves PeerDeleted event into deletePeer

* :sparkles: adds config paramters for the peer discovery

* :sparkles: adds config parameters to neighbor selection

* :sparkles: enable/disable inbound/outbound selection

* :bulb: Improve Godoc comments

* :sparkles: modifies disabled outbound selection

* :bug: fixes bug with disabling the selection

* :heavy_minus_sign: removes getMyIP() from server

* :mute: removes some debugging logs

* :construction: Introduce services

- Each peer now comes with a set of services
- Local peer is a proper peer
- Services are exchanged during Pong and are available for all verified
peers

* :bug: fixes GetVerifiedPeer

* :sparkles: adds gossip key to the service

* :mute: removes debugging logs

* :white_check_mark: Add test for GetVerifiedPeer

* :bug: Fix main

* :art: Add localNetwork to Protocol

* :bug: Add new but verified peers to the manager

* :wrench: changes configurable parameters

* :bug: fixes DiscoveryRequest field sequence

* :bento: Regenerate proto files

* :art: Cleanup parameters

* :bug: Fix potential race condition

* :mute: Reduce logging verbosity

* :white_check_mark: Add test for selection+discover

* :sparkles: Return net.Addr in Transport

* :bug: Remove inbound/outbound switches completely

* :loud_sound: Improve logging

* :loud_sound: Fix peerdb logs

* :bug: Fix peer updating

* :white_check_mark: Make TestProtFull more robust

* :art: Make queryInterval a parameter

* :loud_sound: Improve loggind during querying

* :bug: Trigger PeerDiscovered only for active peers

* :art: Cleanup protocol tests

* :white_check_mark: Add discovery test on protocol level

* :art: Rename maxVerified to maxManaged

* :wrench: Increase default query interval

* :art: Improve discover benchmarks

* :white_check_mark: Fix manager tests

* :art: Do not use bugged assert.Eventually

* :rotating_light: Fix linter warnings in server

* :rotating_light: Remove unused parameters

* :art: Make transport work on slices of bytes

* :pencil2: Fix typo in comments

* :rotating_light: Fix linter warnings

* :art: UpdateService accepts two strings

* :white_check_mark: Add test that services are received in discover

* :sparkles: adds required services

* :art: Handle closed connections consistently

* :art: Code cleanup

* :bug: fixes DropPeer

* :art: improves debug messages

* :loud_sound: Log errors during reverification

* :loud_sound:

 Log packet size

* refactor: remove unused files

* refactor: use internal autopeering package

Co-authored-by: default avatarAngelo Capossele <angelocapossele@gmail.com>
Co-authored-by: default avatarjkrvivian <jkrvivian@gmail.com>
parent f24af478
No related branches found
No related tags found
No related merge requests found
Showing
with 2450 additions and 29 deletions
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment