Commit Graph

28 Commits

Author SHA1 Message Date
Dmitri Bogomolov d9ddbe8d24
Do not update addrQueue if not added node to own knownnodes
and more checks in knownnodes.addKnownNode moved from bmproto.
2020-07-21 16:21:42 +03:00
Dmitri Bogomolov 739ff7b439
Add knownnodes only by knownnodes.addKnownNode(),
now it can update lastseen.
2020-07-21 16:21:36 +03:00
Dmitri Bogomolov d6c1845b71
Moved Peer from state to network.node
and trustedPeer to network.connectionpool.BMConnectionPool attribute
2019-11-11 17:13:12 +02:00
lakshyacis afce500085
knownnodes quality fixes 2019-10-31 14:52:43 +05:30
Dmitri Bogomolov 88f2c51595
quzwelsuziwqgpt2.onion:8444 is also a bootstrap server 2019-09-25 18:55:02 +03:00
Dmitri Bogomolov 7215003c6f
No DNS resolving in knownnodes 2019-09-25 18:55:01 +03:00
Dmitri Bogomolov 0a06567071
Connect to bootstrap nodes by name 2019-09-25 18:55:01 +03:00
Dmitri Bogomolov a7a634be1b
Add self peers with rating 1 2019-08-02 17:56:40 +03:00
Dmitri Bogomolov 668a73abf6
Fixed my mistake in knownnodes, in ef54bca 2019-08-01 12:58:43 +03:00
Dmitri Bogomolov ef54bcaf82
The changes in #1325 are buggy. Implementing it properly. 2018-10-12 11:28:13 +03:00
Dmitri Bogomolov 6969ec0ec9
Removed commented config check and added module docstring 2018-10-10 14:14:08 +03:00
Dmitri Bogomolov e417b6257f
Fixes #1335:
- moved knownnodes cleanup to knownnodes module,
  - added a check for last node in stream initiating DNS based bootstrap.
2018-10-10 14:14:02 +03:00
Dmitri Bogomolov 4c184d8ffe
Fix import of pickled knownnodes.dat 2018-10-05 12:25:14 +03:00
Peter Šurda b0446ab4ab
Improve pickle knownnodes error handling
- Fixes #1333 (untested)
2018-08-05 09:07:31 +02:00
Dmitri Bogomolov 358e621710
Round peer rating to 2 decimal places before saving knownnodes 2018-08-02 12:26:41 +03:00
Dmitri Bogomolov 659d45bb15
Create default knownnodes if cannot read from file 2018-05-21 18:49:39 +03:00
Dmitri Bogomolov b499e1bd22
Start without knownnodes if JSON got corrupted 2018-05-21 18:49:39 +03:00
Dmitri Bogomolov 5e72fdba17
Simplified addKnownNode() and added docstrings 2018-05-21 18:49:38 +03:00
Dmitri Bogomolov 67feb8fee9
Serialize knownnodes to json by default
Fixes #1232
2018-05-21 18:49:38 +03:00
Dmitri Bogomolov f87ce4ad50
Moved reading knownnodes.dat into knownnodes module 2018-05-21 18:49:38 +03:00
Dmitri Bogomolov ca42b4be63
flake8 for knownnodes 2018-05-21 18:49:38 +03:00
Peter Šurda d44c6c6464
Forget known nodes with bad rating 2017-10-19 08:52:44 +02:00
Peter Šurda a0bbd21efc
Add ratings to peers
- outbound peers now have a rating
- it's also shown in the network status tab
- currently it's between -1 to +1, changes by 0.1 steps and uses a
hyperbolic function 0.05/(1.0 - rating) to convert rating to
probability with which we should connect to that node when randomly
chosen
- it increases when we successfully establish a full outbound connection
to a node, and decreases when we fail to do that
- onion nodes have priority when using SOCKS
2017-07-05 09:17:01 +02:00
Peter Šurda b9d60f8b41
Max known nodes configurable 2017-06-24 12:17:01 +02:00
Peter Šurda af8957ed72
Typo in the second most recent commit 2017-02-27 23:37:15 +01:00
Peter Šurda 339e375958
Bootstrap provider mode and minor knownNodes changes
- if knownNodes grows to 20000, instead of ignoring new nodes, forget
  the 1000 oldest ones
- drop connection after sendaddr if too many connections, even if it's
  an outbound one
- if maximum total connections are lower than maximum outbound
  connections, active bootstrap provider mode
- in this mode, check all addresses received before announcing them
- so basically it only annouces those addresses it successfully
  connected to
2017-02-27 23:31:12 +01:00
Peter Šurda c778b81427
knownNodes refactoring and shutdown fixes
- saveKnownNodes replaced the repeated pickle.dump
- with knownNodesLock instead of acquire/release
- outgoingSynSender had an unnecessary loop during shutdown causing
  excessive CPU usage / GUI freezing
2017-02-09 11:53:33 +01:00
Peter Šurda 59f3a2fbe7
Reduce cyclic dependencies
- rearranged code to reduce cyclic dependencies
- doCleanShutdown is separated in shutdown.py
- shared queues are separated in queues.py
- some default values were moved to defaults.py
- knownnodes partially moved to knownnodes.py
2017-02-08 13:41:56 +01:00