Commit Graph

3513 Commits

Author SHA1 Message Date
fe0664640e
Migrate antiIntersectionDelay to asyncore
- implemented by ignoring getdata during the delay rather than sleeping
as it was in the threaded model
- it can happen that a valid getdata request is received during the
delay. A node should be implemented in a way that retries to download,
that may not be the case with older PyBitmessage versions or other
implementations
2017-07-05 09:27:52 +02:00
fc19e4119a
Download thread updates
- now tracks downloads globally too, so it doesn't request the same
object from multiple peers at the same time
- retries at the earliest every minute
- stops trying to download an object after an hour
- minor fixes in retrying downloading invalid objects
2017-07-05 09:25:49 +02:00
846fced0a2
Remove obsolete inactive code 2017-07-05 09:19:56 +02:00
d086781ce8
AddrQueue fix
- forgot to commit import
2017-07-05 09:19:18 +02:00
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
9d09f9f3ce
Reduce severity of socks connectivity errors
- Fixes #1024
- Fixes #1019
2017-07-05 09:07:00 +02:00
773d91bbe2
Unknown object log entry less severe
- unnecessarily classified as critical
- fixes #1023
2017-07-05 09:01:40 +02:00
e00a02206b
AddrThread
- this thread is for spreading new/updated addresses in active
connections, analogous to the InvThread
- it doesn't do anything yet, this is just a dummy queue at the moment
2017-07-05 08:57:44 +02:00
27f5de0f9c
Unified random number provider
- not used yet, just an inactive helper function
- I received feedback that OpenSSL.rand isn't more secure than
os.urandom. I read several debates/analyses about it and concur
2017-07-05 08:52:16 +02:00
PyBitmessage Translations
70c5929e92
Auto-updated language ru from transifex 2017-07-04 17:51:58 +02:00
cc3cf77759
New class multiqueue
- to be used for invthread and addthread
- updated invthread for multiqueue
2017-06-27 13:25:12 +02:00
f5a143d0b8
Config validator
- config options can have validators
- limit maxoutboundconnections to max 8
2017-06-27 13:19:12 +02:00
20e01860cf
Network status peer list shouldn't be editable 2017-06-27 13:16:41 +02:00
PyBitmessage Translations
8a3577aed7
Auto-updated language eo from transifex 2017-06-25 19:26:14 +02:00
PyBitmessage Translations
30b65aaefc
Auto-updated language pl from transifex 2017-06-25 19:25:47 +02:00
PyBitmessage Translations
ccfe58c2c0
Auto-updated language ja from transifex 2017-06-25 16:49:31 +02:00
aa203b23ee
Fix typo introduced by code quality patch 2017-06-24 23:09:08 +02:00
189578cba3
Asyncore proxy fixes
- SOCKS5 now seems to work, SOCKS4a untested
2017-06-24 12:23:56 +02:00
916b85c862
Connection pool cleanup
- minor code quality improvement
2017-06-24 12:23:16 +02:00
0dc0b22974
Expired / Stream mismatch / duplicate object error handling
- cleanup of the code
2017-06-24 12:22:41 +02:00
0a79490e2c
Known nodes maximum configurable part 2 2017-06-24 12:21:42 +02:00
d57b0c55ee
Object validator trigger moved
- from bmproto to bmobject
2017-06-24 12:21:06 +02:00
dc5a91f326
Remove stack depth warnings
- I was never able to trigger them
2017-06-24 12:19:19 +02:00
e9edf70d3a
TLS updates
- save TLS version
- minor TLS error handling updates
2017-06-24 12:18:15 +02:00
b9d60f8b41
Max known nodes configurable 2017-06-24 12:17:01 +02:00
26eb54a82e
Network status updates
- now lists each node with its info instead of a per-stream summary
2017-06-24 12:16:12 +02:00
bfbdd7e140
Chan address validator button feedback
- During validation, the button not only turns gray but also changes
label
2017-06-24 12:14:23 +02:00
2685fe29b1
Code quality improvements 2017-06-24 12:13:35 +02:00
243025a1aa
Leave __delitem__ unimplemented in filesystem storage
- rename the cleaning method
2017-06-21 12:17:40 +02:00
618f3865c1
Main thread end
- instead of sleeping, it just ends
2017-06-21 12:16:56 +02:00
0cc8589b27
Asyncore updates
- should prevent the same object being re-requested indefinitely
- locking for object tracking
- move SSL-specific error handling to TLSDispatcher
- observe maximum connection limit when accepting a new connection
- stack depth test (for debugging purposes)
- separate download thread
- connection pool init moved to main thread
2017-06-21 12:16:33 +02:00
76fed78211
Made it possible to use installed umsgpack 2017-06-12 13:54:44 +03:00
06fed6f9c2
setup.py: second exception in list can be treated as variable 2017-06-12 12:58:16 +03:00
b7f9e74eea
setup.py: added new packages appeared after 36b5e2c 2017-06-12 12:52:24 +03:00
a3a55e53c4
UDP Socket dict address fix
- fixes #1008
2017-06-11 14:11:39 +02:00
cba749088a
Asyncore updates
- mainly work on proxy support, but it's still not fully working
- minor bugfixes
2017-06-10 10:13:49 +02:00
7deb7c3d4f
Typo 2017-06-10 10:11:50 +02:00
8d41d5fcf6
default known nodes update 2017-06-10 10:11:21 +02:00
7f06cb7c27
Inventory flush fix in GUI
- Fixes #1011
2017-06-10 10:10:59 +02:00
7e8ee51322
Fallback umsgpack import fix 2017-06-10 10:09:44 +02:00
f366447e94
Fix identicon imports 2017-06-10 10:09:14 +02:00
d34fdbb3f4
Fix network status in api 2017-06-10 10:08:40 +02:00
ae97f7abd8
Typo 2017-06-10 10:07:47 +02:00
009a215224
Fix api connected hosts lists 2017-06-09 10:07:51 +02:00
7bde4e9445
Missing module name in bmproto 2017-06-04 10:25:16 +02:00
e8d9a7f183
Asyncore connect handling
- minor improvements in handling of connect events so that it's not
processed twice
2017-06-03 16:30:05 +02:00
a9c0000c17
Treat some invalid objects as received
- update to 6044df5adf
- objects that are expired or in wrong stream are not re-requested
anymore, even if they aren't stored in the inventory
- the previous option "acceptmismatch" now only affects whether such
objects are stored in the inventory
2017-06-03 16:29:21 +02:00
Scott
f78f1a718b
Change api.py 2017-06-02 18:53:13 -06:00
6044df5adf
Optional storing of expired and off-stream objects
- a new config file option, network/acceptmismatch, allows the inventory
to store objects that expired or are from a stream we're not
interested in. Having this on will prevent re-requesting objects that
other nodes incorrectly advertise. It defaults to false
2017-06-02 15:43:35 +02:00
d75d920a68
Asyncore updates
- clean object tracking dictionaries in the cleaner thread
- clean up close / handle_close
- add locking to tracking dictionaries
2017-06-02 07:09:35 +02:00