Peter Šurda
9197c425d2
Object requesting fix
2017-01-17 00:32:05 +01:00
Peter Šurda
9ed59dd825
Shutdown procedure cleanup
2017-01-16 23:38:18 +01:00
Peter Šurda
ca8550a206
Don't send requests for 0 objects
2017-01-16 23:37:25 +01:00
Peter Šurda
749bb628c0
Typo
2017-01-16 23:37:03 +01:00
Peter Šurda
4f920fe641
Fix infinite loop
2017-01-16 23:17:56 +01:00
Peter Šurda
d652dc864d
Downloading fixes
...
- able to request more objects with one command
- fixes to logic and error handling
2017-01-16 19:36:58 +01:00
Peter Šurda
9f89df6d1c
Expire objects that we're unable to receive
...
- sometimes a node would send an "inv" about an object but then not
provide it when requested. This could be that it expired in the
meantime or it was an attack or a bug. This patch will forget that the
object exists if was requested too many times and not received.
2017-01-16 17:08:47 +01:00
Peter Šurda
ca6bc9981c
Better tracking in downloading objects
...
- remember what was requested from which node
- remember if it was received
- re-request object if we haven't received any new object for more than
a minute
2017-01-16 15:17:23 +01:00
Peter Šurda
8dfa0faca9
More objects to be downloaded fixes
2017-01-15 23:10:44 +01:00
Peter Šurda
12205ee7ba
More fixes in objects to be downloaded
2017-01-15 23:07:11 +01:00
Peter Šurda
bd1aead46e
More fixes for objects to be downloaded
2017-01-15 22:41:12 +01:00
Peter Šurda
d04c0e78e4
Better handling of pending downloading objects
2017-01-15 22:36:12 +01:00
Peter Šurda
b750e67bfb
Handle exception in iterator
2017-01-15 22:25:09 +01:00
Peter Šurda
805f72e098
Make objects to be send stoppable if not empty
2017-01-15 22:21:19 +01:00
Peter Šurda
94f0bdc731
Objects to be downloaded optimising
...
- treat requested but never arrived objects as expired. This is how it
worked before the refactoring. Without this, the list won't go to
zero.
2017-01-15 22:01:10 +01:00
Peter Šurda
79893fdc23
Performance tuning objects to be downloaded
...
- rely on dict quasi-random order instead of an additional shuffle
- request an object once per minute
- stop check after count objects have been found
2017-01-15 20:47:33 +01:00
Peter Šurda
dbe15d0b99
Objects to be downloaded fixes
...
- tries to avoid calling senddata it it would block receiveDataThread,
allowing fore more asynchronous operation
- request objects in chunks of 100 (CPU performance optimisation)
2017-01-15 19:50:28 +01:00
Peter Šurda
f079ff5b99
Refactor objects to be downloaded
...
- moved logic into a Missing singleton
- shouldn't try to download duplicates anymore, only requests a hash
once every 5 minutes and not from the same host
- removed obsoleted variables
- the "Objects to be synced" in the Network tab should now be correct
- removed some checks which aren't necessary anymore in my opinion
- fix missing self in Throttle (thanks landscape.io)
2017-01-15 19:21:24 +01:00
Peter Šurda
6d2a75bfc9
Transfer speed improvements
...
- send buffer to send multiple commands in one TCP packet
- recv/send operation size now based on bandwith limit
- send queue limited to 100 entries
- buffer getdata commands to fill send queue, instead of waiting for the
data packet to arrive first (i.e. allow getdata to work asynchronously)
2017-01-15 15:08:03 +01:00
Peter Šurda
c3fef7bc4e
Syntax fix
2017-01-15 12:41:19 +01:00
Peter Šurda
9bf17b34d1
Remove obsolete imports and code
...
- landscape.io pointed out obsolete imports
- there is also an obsolete variable and lock in throttle.py
- add Exception type to BMConfigParser().save
2017-01-15 11:40:31 +01:00
Peter Šurda
8cb0953401
Moved writeKeysFile into configparser
...
- shared.writeKeysFile -> BMConfigParser().save
- makes it easier to get rid of circular imports
2017-01-15 10:50:02 +01:00
Peter Šurda
5ca8a52662
Typos, extra imports and similar
...
- pointed out by landscape.io
- also updated dev/ssltest.py to work the same way as the main program
2017-01-15 10:48:29 +01:00
Peter Šurda
689d697a40
Refactor bandwidth limit and speed calculator
...
- also fixes potential deadlocks
2017-01-14 23:21:00 +01:00
Peter Šurda
ad75552b5c
Move shutdown from shared.py to state.py
2017-01-14 23:20:15 +01:00
Peter Šurda
bcc7692e14
Add safeGetInt to BMConfigParser
2017-01-14 23:18:06 +01:00
Peter Šurda
02a7c59de8
OpenSSL 1.1.0 compatibility fixes
...
- part 2, continued from previous commit
2017-01-14 17:50:49 +01:00
Peter Šurda
59b5ac3a61
OpenSSL 1.1.0 compatibility fixes
...
- function check missed 1.1.0 release
- TLS didn't work with anonymous ciphers
2017-01-14 17:47:57 +01:00
Peter Šurda
fa2f87743e
SSL handshake fix
...
- SSL handshake would often fail, because verack packet was being sent
at the same time as the do_handshake was executed in a different
thread. This makes it so that do_handshake waits until verack is done
sending.
- also minor modifications in SSLContext initialisation
2017-01-14 13:22:46 +01:00
Peter Šurda
cc4c07025b
Sending thread fix
2017-01-14 12:35:08 +01:00
Peter Šurda
8d278182a7
Indentation
2017-01-13 15:53:47 +01:00
Peter Šurda
93bdc3c800
Remove extra print
2017-01-13 12:32:26 +01:00
Peter Šurda
d0b1cbfe1f
Add current git HEAD info to support request
2017-01-13 12:29:14 +01:00
Peter Šurda
5ae676f2ad
Minor support fix
2017-01-13 12:05:39 +01:00
Peter Šurda
6778d6046f
Add OpenSSL 1.1.0 compatibility
...
- thanks to Wolfgang Frisch <wfr@roembden.net>
2017-01-13 12:02:34 +01:00
Peter Šurda
59cf33c9a1
Remove obsolete import
2017-01-13 12:01:38 +01:00
Peter Šurda
65701e5997
neededPubkeys fix
...
- was still using shared.neededPubkeys
2017-01-13 09:30:23 +01:00
Peter Šurda
ff8deebf60
Keep track of network protocol status
2017-01-12 19:18:56 +01:00
Peter Šurda
810e50a040
Fix minor issues
...
- landscape.io complained
- obsolete imports
- ciphers -> self.ciphers
2017-01-12 07:26:04 +01:00
Peter Šurda
2cf2188bc3
Object sending fix
...
- forgot to move broadcastToSendDataQueues in class_singleWorker.py
2017-01-12 07:22:34 +01:00
Peter Šurda
bd520a340f
Trustedpeer fix and more refactoring
...
- fixed trustedPeer (thanks to anonymous bug reporter)
- moved trustedPeer and Peer into state.py
2017-01-12 06:58:35 +01:00
Peter Šurda
e7470a4757
Remove leftover from debugging
2017-01-12 06:57:17 +01:00
Peter Šurda
5ceb920bd6
TLS tuning
...
- allow TLS > 1.0 with python >= 2.7.9
- tune ssl_context with python >= 2.7.9
2017-01-11 20:47:27 +01:00
Peter Šurda
c738d93056
Assorted fixes
...
- landscape.io was complaining, this fixes most easily fixable errors
2017-01-11 18:13:00 +01:00
Peter Šurda
cdcdf11d59
Missing import fix
2017-01-11 17:46:33 +01:00
Peter Šurda
fa0a3135e7
Fixes pointed out by landscape.io
...
- missing/wrong/obsolete imports
- logger formatting
2017-01-11 17:26:25 +01:00
Peter Šurda
ac348e4e6b
Fixes and refactoring
...
- fixes errors introduced in the earlier refactoring
- more variables moved to state.py
- path finding functions moved to paths.py
- remembers IPv6 network unreachable (in the future can be used to skip
IPv6 for a while)
2017-01-11 17:00:00 +01:00
Peter Šurda
5d2bebae28
Add IPv4 multicast range to ignored addresses
2017-01-11 14:46:10 +01:00
Peter Šurda
8bcfe80ad0
Refactoring of config parser and shared.py
...
- got rid of shared config parser and made it into a singleton
- refactored safeConfigGetBoolean as a method of the config singleton
- refactored safeConfigGet as a method of the config singleton
- moved softwareVersion from shared.py into version.py
- moved some global variables from shared.py into state.py
- moved some protocol-specific functions from shared.py into protocol.py
2017-01-11 14:27:19 +01:00
Peter Šurda
085e335969
Proxy update (for the new network subsystem)
2017-01-10 21:22:22 +01:00
Peter Šurda
75090abaaf
Advanced dispatcher class
...
- generic class the new asyncore-based network subsystem that handles
buffered data transfer
2017-01-10 21:20:49 +01:00
Peter Šurda
b4703ec6ce
Make objectHashHolder into a list
...
- was a dict
2017-01-10 21:19:57 +01:00
Peter Šurda
9c214b4a24
Inventory refactoring #2
...
- forgot to add api.py
2017-01-10 21:17:25 +01:00
Peter Šurda
e84b19613e
Inventory refactoring
...
- minor refactoring, made it into singleton instead of a shared global
variable. This makes it a little bit cleaner and moves the class into
a separate file
- removed duplicate inventory locking
- renamed singleton.py to singleinstance.py (this is the code that
ensures only one instance of PyBitmessage runs at the same time)
2017-01-10 21:15:35 +01:00
Peter Šurda
4f543e14c1
TLS handshake fix
...
- TLS handshake in python is apparently always asynchronous, so it needs
proper handling of SSLWantReadError and SSLWantWriteError
- also adds a timeout and a proper shutdown if handshake fails
2017-01-07 23:42:07 +01:00
PyBitmessage Translations
541979a159
Auto-updated language fr from transifex
2017-01-05 19:24:45 +01:00
PyBitmessage Translations
9a26ce5be1
Auto-updated language ja from transifex
2016-12-16 10:18:29 +01:00
PyBitmessage Translations
e92161650b
Auto-updated language pl from transifex
2016-12-15 19:57:09 +01:00
PyBitmessage Translations
a87bfb8a82
Auto-updated language eo from transifex
2016-12-15 19:53:55 +01:00
PyBitmessage Translations
77d7dcbd2d
Auto-updated language sk from transifex
2016-12-15 16:33:21 +01:00
PyBitmessage Translations
3b896e69e7
Auto-updated language de from transifex
2016-12-15 16:26:50 +01:00
Peter Šurda
fefb959338
Notify if C PoW missing
...
- Linux users often don't know that the C PoW is available and complain
it's slow. This will try to build it, and adds availability
notification in the status bar
- also, the updateStatusBar signal now allows emphasised notifications,
which will remain visible for a longer period of time and also
reappear if a status change happened in the meantime
2016-12-15 16:11:29 +01:00
PyBitmessage Translations
9d9052dda2
Auto-updated language zh_cn from transifex
2016-12-13 17:52:23 +01:00
PyBitmessage Translations
49832231ca
Auto-updated language de from transifex
2016-12-13 17:39:49 +01:00
Peter Šurda
025950c05e
Fix locale init
...
- date/time wasn't localised correctly on startup
2016-12-13 11:54:01 +01:00
PyBitmessage Translations
dd777d6e43
Auto-updated language de from transifex
2016-12-12 00:44:09 +01:00
PyBitmessage Translations
d8b8e0e9dd
Auto-updated language fr from transifex
2016-12-10 20:12:30 +01:00
Peter Šurda
114563ed2f
Default logger output UTF-8
...
- fixes errors when using locales other than EN
2016-12-06 16:15:37 +01:00
Peter Šurda
0dde976dec
Fix timeformat in configparser
...
- allow both raw (new) and non-raw (old) style timeformat for backwards
compatibility
2016-12-06 13:04:52 +01:00
Peter Šurda
df18f7b042
Switch configparser to raw mode
2016-12-06 11:01:17 +01:00
Peter Šurda
e647d70bbc
New config parser class
...
- workaround for % in labels
- can be extended in the future
2016-12-06 10:47:39 +01:00
PyBitmessage Translations
9f89191742
Auto-updated language ja from transifex
2016-12-05 12:09:41 +01:00
Peter Šurda
9509552663
New network backend (WIP, not integrated)
...
- current snapshot of the new network backend code
- not working yet, just base classes and no integration
2016-12-01 16:48:04 +01:00
Peter Šurda
7ca6576dfc
Connection indicator for hidden service
...
- the number of connections as well as connection indicator was broken
when running as a hidden service. This is a workaround
2016-11-16 19:36:50 +01:00
Peter Šurda
5cea1e04d1
SSL disconnect fix
...
- sometimes SSL connections unnecessarily disconnected on non-fatal
errors. This should fix that. This is however a short term solution
because of migrating to asyncore which has its own error handling
2016-11-16 15:18:09 +01:00
PyBitmessage Translations
1d3757ddc8
Auto-updated language pl from transifex
2016-11-15 22:07:40 +01:00
PyBitmessage Translations
3bafd597af
Auto-updated language eo from transifex
2016-11-15 21:36:16 +01:00
Peter Šurda
3f3774ff1f
Translation source update
...
- add extended encoding translation sources
2016-11-15 17:11:36 +01:00
Peter Šurda
7cc0f8fab0
Add extended encoding message validation
...
- validates variables of the "message" type
2016-11-15 17:10:33 +01:00
Peter Šurda
e76b10a6ed
Logging fix
2016-11-15 17:10:14 +01:00
Peter Šurda
bae7351849
Formating and standalone fix
...
- when running as a standalone program, helper_msgcoding logger import
was missing
2016-11-15 17:09:08 +01:00
Peter Šurda
c6d45dd394
Encoding when sending to self
...
- when sending to self, it always used encoding 2 when saving into the
inbox. Now uses the one that's currently selected
2016-11-15 17:07:53 +01:00
Peter Šurda
fbc9886eda
OpenCL settings saving fix
2016-11-15 17:06:56 +01:00
Peter Šurda
612333a267
Enable support for extended encoding
...
- receiving extended encoding now works
- sending works from the GUI by pressing "Shift" while clicking on
"Send"
- requires https://pypi.python.org/pypi/msgpack-python
2016-11-14 20:23:58 +01:00
Peter Šurda
966b4382d8
Add handler for unknown encoding
2016-11-14 20:22:10 +01:00
Peter Šurda
5a438ccddd
OpenCL initialisation fix
2016-11-14 20:21:46 +01:00
Peter Šurda
b9748c55aa
Don't connect to self fix
...
- the hidden service don't connect to yourself fix was broken, this
fixes the fix
2016-11-14 20:20:41 +01:00
Peter Šurda
54e3465575
HTML parser queue flush fix
...
- the queue wasn't correctly flushed
2016-11-14 20:19:26 +01:00
Peter Šurda
d35062b49c
Half-open connection limit warning fix
...
- it only should complain if on Windows and can't determine the Windows
version
2016-11-13 08:50:09 +01:00
Peter Šurda
2fc2c78299
Extended encoding update
...
- modified to support both encoding and decoding
- fixes
- added test for all encodings
2016-11-12 17:20:45 +01:00
Peter Šurda
4af788e963
Placeholder proxy text
...
- based on what tor you're probably using (9150 for OSX and Windows,
9050 for others)
2016-11-12 15:41:58 +01:00
PyBitmessage Translations
a6ac128e9e
Auto-updated language eo from transifex
2016-11-10 21:56:09 +01:00
PyBitmessage Translations
7033527c41
Auto-updated language pl from transifex
2016-11-10 21:55:24 +01:00
PyBitmessage Translations
0a948d382a
Auto-updated language de from transifex
2016-11-10 21:54:24 +01:00
PyBitmessage Translations
87f607688f
Auto-updated language sk from transifex
2016-11-10 21:52:21 +01:00
Peter Šurda
e9a3ef465c
OpenCL vendor selector
...
- when you have multiple OpenCL drivers at the same time, e.g. intel and
nvidia, they won't mix leading to crashes. This patch makes it
possible to select which driver to use by listing the available
vendors
2016-11-10 21:43:10 +01:00
Peter Šurda
756f85c9f0
Don't connect to yourself when hidden service
2016-11-08 08:49:43 +01:00
Peter Šurda
a7f3afe5a6
Typo
2016-11-05 00:46:07 +01:00
Peter Šurda
8ce72d8d2d
Extended encoding updates
...
- more flexible and developer friendly. Still not active code
2016-11-03 22:41:36 +01:00
Peter Šurda
020a78b776
Exception prevention in hashCount
...
- I got a report that an exception can occur, and while I can't
reproduce it, this should avoid it
2016-11-01 14:44:39 +01:00