Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(core-p2p): Fetch list of peers from at least a few others #2152

Merged
merged 1 commit into from Feb 25, 2019

Conversation

vasild
Copy link
Contributor

@vasild vasild commented Feb 25, 2019

Previously we would fetch the list of peers from a single other peer and
be satisfied with it as long as our list of peers satisfies
hasMinimumPeers().

With this change we will query at least 4 peers and combine their
lists. This will help in getting a better view of the network and all of
its peers in times of splits and bad network connectivity.

Proposed changes

Types of changes

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Refactoring (improve a current implementation without adding a new feature or fixing a bug)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Build (changes that affect the build system)
  • Docs (documentation only changes)
  • Test (adding missing tests or fixing existing tests)
  • Other... Please describe:

Checklist

  • I have read the CONTRIBUTING documentation
  • Lint and unit tests pass locally with my changes
  • I have added tests that prove my fix is effective or that my feature works
  • I have added necessary documentation (if appropriate)

Previously we would fetch the list of peers from a single other peer and
be satisfied with it as long as our list of peers satisfies
hasMinimumPeers().

With this change we will query at least 4 peers and combine their
lists. This will help in getting a better view of the network and all of
its peers in times of splits and bad network connectivity.
@ghost
Copy link

ghost commented Feb 25, 2019

@air1one @faustbrian @supaiku0 - please review this in the next few days. Be sure to explicitly select labels so I know what's going on.

If no reviewer appears after a week, a reminder will be sent out.

@ghost ghost requested a review from air1one February 25, 2019 09:57
@vasild vasild mentioned this pull request Feb 25, 2019
@vasild
Copy link
Contributor Author

vasild commented Feb 25, 2019

#2131

@codecov-io
Copy link

codecov-io commented Feb 25, 2019

Codecov Report

Merging #2152 into develop will increase coverage by 0.02%.
The diff coverage is 100%.

Impacted file tree graph

@@             Coverage Diff             @@
##           develop    #2152      +/-   ##
===========================================
+ Coverage    79.47%   79.49%   +0.02%     
===========================================
  Files          331      331              
  Lines         7922     7925       +3     
  Branches      1091     1117      +26     
===========================================
+ Hits          6296     6300       +4     
+ Misses        1593     1592       -1     
  Partials        33       33
Impacted Files Coverage Δ
packages/core-p2p/src/monitor.ts 58.49% <100%> (+0.85%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a3c2e40...1447f35. Read the comment docs.

@faustbrian
Copy link
Contributor

@vasild
Copy link
Contributor Author

vasild commented Feb 25, 2019

Resolves #2131

@faustbrian faustbrian merged commit 499c52e into develop Feb 25, 2019
@ghost ghost deleted the discover-peers-better branch February 25, 2019 10:31
@ghost ghost removed the Status: Needs Review label Feb 25, 2019
vasild added a commit that referenced this pull request Feb 27, 2019
* ArkEcosystem/core/2.3:
  chore: move core-graphql to the deprecated folder (#2169)
  refactor(crypto): benchmarks (#2167)
  refactor: replace micromatch with nanomatch and remove heavy deps (#2165)
  feat(crypto): increase vendor field length to 255 bytes (#2159)
  feat(core-api): search delegates by usernames (#2143)
  feat(core-logger-pino): initial implementation (#2134)
  perf(crypto): integrate bcrypto (#2158)
  feat(core): ask for process restarts after updating (#2155)
  refactor(core): replace pm2 with process manager (#2154)
  refactor(core): require the user to take action for updates (#2153)
  feat(core-p2p): Fetch list of peers from at least a few others (#2152)
  refactor(core): more robust check for ensureDefaults (#2151)
  fix(core): ensure file and defaults before reading
  fix(core): return correct suffix for core:restart command (#2150)
  fix(core-database): properly sort BigNumber values (#2144)
  feat(core): configuration and channel support for the CLI (#2145)
  feat(core): merge core-snapshot-cli commands into core (#2149)
  fix(core-api): pass query to findAllByVote method (#2142)
  feat(core-p2p): Validate GET replies from other peers (#2102)
  chore(release): 2.2.0-beta.7 (#2141)
  fix(core-blockchain): stuck at not ready to accept new block (#2139)
  refactor(core-p2p): Improve selection of peer for downloading blocks (#2137)
  fix(core): overwrite the config path if an env variable is provided (#2140)
  fix(core): do not ignore the network flag in parseWithNetwork (#2138)
  chore(release): 2.2.0-beta.6 (#2136)
  refactor(core-container): throw an error if the peers or plugins file are missing (#2135)
  chore(release): 2.2.0-beta.5 (#2132)
  refactor(core-p2p):  reduce logging noise (#2129)
  misc(core-p2p): remove superfluous log message (#2128)
  refactor(core-p2p): Improve fork handling in updatePeersOnMissingBlocks (#2125)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants