Peter Šurda
18988ae2e6
Asyncore updates
...
- performance optimisation, reduce number of loops when waiting
for protocol headers / commands
2017-05-31 10:17:36 +02:00
Peter Šurda
2555f692eb
Network status update part 2
...
- only update processed items every 2 seconds
2017-05-31 10:16:30 +02:00
Peter Šurda
e522f015a8
Network status updates
...
- only update processed numbers once every 2 seconds
- moved inventory lookups to the main inventory so now all
storage modules work with it
2017-05-31 10:15:47 +02:00
Peter Šurda
d9e3349eeb
Fix own IP detection
...
- minor bug in the previous commit
2017-05-31 00:22:07 +02:00
Peter Šurda
f23c169eec
Don't connect to myself
...
- track local IP+port of incoming connections and don't connect
to them in the future
2017-05-31 00:04:21 +02:00
Peter Šurda
fa9811f426
Asyncore update
...
- duplicate checking implemented
- connection pool vs. socket closing cleanup
2017-05-30 23:53:43 +02:00
Peter Šurda
abaa2c72e5
typo
2017-05-29 15:04:22 +02:00
Peter Šurda
11d02b1e41
typo
2017-05-29 14:59:42 +02:00
Peter Šurda
3a543efd83
Typo
2017-05-29 14:54:13 +02:00
Peter Šurda
7f381c0c25
Asyncore update
...
- incoming object handling fix
2017-05-29 14:52:31 +02:00
Peter Šurda
1ccfd41c3f
Asyncore updates
...
- fix connected to myself check
2017-05-29 14:41:02 +02:00
Peter Šurda
0aa5dbd958
Asyncore update
...
- shutdown fix
2017-05-29 14:35:08 +02:00
Peter Šurda
bdaa939e2c
ENOTSOCK fix
2017-05-29 13:39:26 +02:00
Peter Šurda
97c44b97f4
Asyncore update
...
- handle WSAENOTSOCK
2017-05-29 13:14:25 +02:00
Peter Šurda
a5c1b0c529
Asyncore fixes
...
- better handling of WSA* checks on non-windows systems
- handle EBADF on Windows/select
- better timeouts / loop lengths in main asyncore loop and
spawning new connections
- remove InvThread prints
2017-05-29 12:56:59 +02:00
Peter Šurda
74f1a74a8c
Make SO_REUSEPORT optional
...
- apparently not available on Windows
2017-05-29 11:30:56 +02:00
Peter Šurda
e7525d47be
Disable memory usage logging
...
- it looks like it's Unix specific and doesn't work on windows
2017-05-29 11:26:56 +02:00
Peter Šurda
02a07e5119
Asyncore update
...
- default to true (original attempt didn't work correctly)
2017-05-29 03:16:14 +02:00
Peter Šurda
73c41bff9d
typo
...
-BMConfigParser. instead of BMConfigParser().
2017-05-29 02:30:18 +02:00
Peter Šurda
65bb6648e7
Asyncore updates
...
- fix crash in inv thread
- more prints changed into logger
- minor fixes
2017-05-29 00:47:41 +02:00
Peter Šurda
c85d52b8e8
Asyncore updates
...
- asyncore is now on by default
- inv announcements implemented
- bandwidth limit implemented / fixed
- stats on download / upload speed now work
- make prints into logger
- limit knownNodes to 20k as it was before
- green light fixed
- other minor fixes
2017-05-29 00:24:07 +02:00
Peter Šurda
5d4e1e2007
asyncore fixes
...
- bm headers and commands are only read up to expected length.
On a very fast connection (e.g. local VM), reading verack
also read a part of the TLS handshake
- some debugging info moved from print to logger.debug
- tls handshake cleanup
2017-05-27 22:30:30 +02:00
Peter Šurda
21f6d38ec2
Asyncore fixes
...
- TCP fixes
2017-05-27 21:52:56 +02:00
Peter Šurda
99e714c432
UDP socket bugfixes
2017-05-27 20:43:27 +02:00
Peter Šurda
fa9ad537a5
Add task_done to asyncore-related queues
2017-05-27 19:39:19 +02:00
Peter Šurda
f8b4b427fc
Asyncore update
...
- bugfixes
- UDP socket for local peer discovery
- new function assembleAddr to unify creating address command
- open port checker functionality (inactive)
- sendBigInv is done in a thread separate from the network IO
thread
2017-05-27 19:09:21 +02:00
Peter Šurda
36b5e2c04f
Inventory storage abstraction
...
- can have multiple storage types for inventory
- sqlite is the old one, filesystem is a new available
2017-05-27 19:03:27 +02:00
Peter Šurda
1d87c63504
Traceback on Ctrl-C
...
- Ctrl-C will print a traceback of all threads instead of
complaining
2017-05-27 19:02:05 +02:00
Peter Šurda
7b9b7504ad
Don't clean right on startup
2017-05-27 19:01:14 +02:00
Peter Šurda
d699a28e49
Add variables to errno and socket
...
- to make sure they work cross platform without having to do
complicated tests
2017-05-27 19:00:19 +02:00
Peter Šurda
b37a05fd0a
Allow encoding 3 in broadcast API
2017-05-27 07:48:29 +02:00
Peter Šurda
e309a1edb3
Asyncore update
...
- separate queue for processing blocking stuff on reception
- rewrote write buffer as a queue
- some addr handling
- number of half open connections correct
2017-05-25 23:04:33 +02:00
Peter Šurda
51e52401fe
Windows plaform check pythonic
...
- moved to .startswith instead of 'in'
- thanks @Lvl4sword
2017-05-25 15:00:10 +02:00
Peter Šurda
9683c879bc
Asyncore update
...
- Network status UI works but current speed isn't implemented yet
- Track per connection and global transferred bytes
- Add locking to write queue so that other threads can put stuff
there
- send ping on timeout (instead of closing the connection)
- implement open port checker (untested, never triggered yet)
- error handling on IO
2017-05-25 14:59:18 +02:00
Peter Šurda
edcba9982b
Asyncore getdata processing performance improvement
...
- no need to query DB for existence of each entry
2017-05-24 21:35:50 +02:00
Peter Šurda
fa56ab3e6f
Asyncore update
...
- better error handling
- bug fixes
- remove some debug output
2017-05-24 21:15:36 +02:00
Peter Šurda
bafdd6a93a
Allow making outbound connections in asyncore
2017-05-24 16:54:33 +02:00
Peter Šurda
d635e515b9
Big Asyncore update
...
- most of the stuff is done so it partially works
- disabled pollers other than select (debugging necessary)
- can switch in the settings, section network, option asyncore (defaults
to False)
2017-05-24 16:51:49 +02:00
Peter Šurda
d498f1c0ae
Configparser update
...
- add default values for maxdownload/uploadrate, asyncore
- rework error handler slightly
2017-05-24 16:49:16 +02:00
Peter Šurda
198470f734
Revert parser/renderer max message size
...
- it's now dealt with during decoding
2017-05-15 12:25:30 +02:00
Peter Šurda
183f509f09
Decompression limit
...
- there is now a configurable decompression limit, default at
1MB. Oversize messages are trated as if they never arrived,
just a log entry
2017-05-15 12:23:16 +02:00
Peter Šurda
9f4a1fa0a4
Config file defaults and address unification
...
- bmconfigpaser.py now allows to put default values for a specific
option in the file
- addresses as sections are now detected by "BM-" rather than
just ignoring bitmessagesettings. There can now be other sections
with a cleaner config file
2017-05-15 12:18:07 +02:00
Peter Šurda
660997f8e7
Quick hack for excessively long messages
...
- only process the first MB of a message for GUI purposes
(parsing/rendering)
2017-05-14 15:40:35 +02:00
Peter Šurda
fd2603247d
Fix onionbindip for some systems with IPv6
...
- in some cases when IPv6 stack is available and onionbindip is an IPv4
address, socket.bind doesn't change the bound address, ending up
listening on everything
2017-05-10 20:01:23 +02:00
Peter Šurda
d9d3515905
Node class, WIP
...
- for new network subsystem
2017-05-07 20:16:49 +02:00
Peter Šurda
23b9555929
Add TLS version debug info
2017-05-07 20:15:57 +02:00
Peter Šurda
1c55bf7d4b
Add umsgpack as fallback
...
- if a "big" msgpack module isn't available, use bundled umsgpack
2017-05-07 20:15:16 +02:00
Peter Šurda
bf76c7f6ec
Allow extended encoding in API
2017-04-30 10:39:48 +02:00
Peter Šurda
96d58f3c11
Asyncore update (WIP)
2017-04-16 18:27:15 +02:00
Dmitri Bogomolov
e6f0b34f9b
Fixed some inconvenience on first run mainly in Ubuntu.
...
- immediately return from initCL() if numpy or pyopencl is unevailable
(no ImportError because of resetPoW() call)
- use glob to find C extension even if it named like
`bitmsghash.x86_64-linux-gnu.so`
If user chooses to show the Settings dialog:
- activate the "Network Settings" tab
- remove option 'dontconnect' if settings have been saved
2017-04-05 14:25:02 +03:00
Peter Šurda
51aeb284ca
Async network IO updates
...
- WIP
2017-04-04 10:46:01 +02:00
Peter Šurda
fe93473fc5
getpubkey length handling
...
- don't try to process getpubkey that is too long
2017-04-04 10:44:53 +02:00
Peter Šurda
c1bdcc2aba
ACKdata handling changes
...
- any type of object can now serve as ACKdata
2017-04-04 10:43:29 +02:00
Peter Šurda
46c9ea9403
Async network updates (WIP)
...
- cleaner command handling
- separating into header and command handling
- incoming connection handler
- bugfixes and more debug information
2017-03-20 18:32:26 +01:00
Peter Šurda
913b401dd0
PendingDownloadQueue updates
...
- track pending hashId more accurately
- add timeout and a cleanup so that the download queues don't
get stuck and memory is freed
- randomise download order (only works for inv commands with
more than 1 entry)
2017-03-20 01:22:37 +01:00
Peter Šurda
1af49a0165
Download tracking refactoring
...
- replace PendingDownload singleton dict with a Queue
- total memory and CPU requirements should be reduced
- get rid of somObjectsOfWhichThisRemoteNodeIsAlearedyAware. It has very
little practicle effect and only uses memory
2017-03-19 22:08:00 +01:00
Peter Šurda
0529fe2313
Known node count updates
...
- if too many nodes, only delete oldest nodes in bootstrap provider
mode, in normal mode ignore new nodes as it used to before
- in bootstrap provider mode, penalise nodes announced by others by 1
day instead of 3 hours
2017-03-11 12:14:40 +01:00
Peter Šurda
49869d0b56
Networking subsystem updates
...
- version command struct for faster unpacking
- increase read buffer to 2MB to allow a full command to fit
- initial bitmessage protocol class (WIP)
- error handling
- remove duplicate method
2017-03-11 11:12:08 +01:00
Peter Šurda
a1d1114cb2
New network subsystem updates
...
- auto-select select/poll/epoll/kqueue depending on what's available
2017-03-10 23:56:38 +01:00
Peter Šurda
998935be5f
New network subsystem, WIP
...
- finished proxy design
- socks4a and socks5 implemented
- authentication not tested
- resolver for both socks4a and socks5
- http client example using the proxy
2017-03-10 23:11:57 +01:00
Peter Šurda
3ac67e5da7
Connection error reporting changes
...
- fewer tracebacks
- more standardised reports including errno
2017-03-09 11:26:44 +01:00
PyBitmessage Translations
4014b80b7c
Auto-updated language ja from transifex
2017-03-08 17:25:19 +01:00
PyBitmessage Translations
b28fe3a220
Auto-updated language fr from transifex
2017-03-07 18:38:10 +01:00
PyBitmessage Translations
964809bbd6
Auto-updated language ru from transifex
2017-03-07 10:23:54 +01:00
PyBitmessage Translations
5d545dbcab
Auto-updated language sk from transifex
2017-03-06 22:16:29 +01:00
PyBitmessage Translations
5c2af00306
Auto-updated language de from transifex
2017-03-06 22:06:42 +01:00
PyBitmessage Translations
f4caf5f6a4
Auto-updated language fr from transifex
2017-03-06 21:58:59 +01:00
PyBitmessage Translations
fd871fca85
Auto-updated language ru from transifex
2017-03-06 21:56:38 +01:00
PyBitmessage Translations
76ae62c1f0
Auto-updated language ja from transifex
2017-03-06 21:55:52 +01:00
PyBitmessage Translations
fe6f446d07
Auto-updated language pl from transifex
2017-03-06 21:44:06 +01:00
PyBitmessage Translations
bbf2264862
Auto-updated language eo from transifex
2017-03-06 20:54:39 +01:00
Dmitri Bogomolov
ee7e630694
Show a dialog with QR-code for selected bm-address
2017-03-06 18:00:23 +02:00
Dmitri Bogomolov
9836206402
Missed translations: namecoin and welcom message
2017-03-05 23:07:18 +02:00
Peter Šurda
bea675f9a6
Remove unnecessary "print" from previous commit
2017-03-02 15:09:01 +01:00
Peter Šurda
53657dba47
Phase 1 of SHA256 support
...
- new variable "digestalg" which defaults to "sha1", but allows "sha256"
for those who want to sign using this
- Addresses #953
2017-03-02 15:03:08 +01:00
Peter Šurda
405a06c08a
Indentation
2017-03-02 15:02:51 +01:00
PyBitmessage Translations
ab39541ef5
Auto-updated language ru from transifex
2017-03-01 17:06:12 +01:00
Peter Šurda
b304872b68
Version bump for 0.6.2
2017-03-01 13:12:31 +01:00
Peter Šurda
15077c9388
More accurate PendingUpload tracking
...
- works correctly when starting offline
- stops tracking after after 60 seconds but only if at least 1
successful upload
2017-03-01 10:05:08 +01:00
Peter Šurda
9263f53d86
OpenCL PoW fix
...
- previous commit created some problems, now it should work
2017-02-28 23:52:27 +01:00
Peter Šurda
8d829b587e
Reset OpenCL when settings change
...
- previously, changing the OpenCL vendor (or turning it on/off) required
a restart and this wasn't clear
2017-02-28 22:59:44 +01:00
Peter Šurda
171bc83ec0
HTML parser fix
...
- URLs followed with space were broken
2017-02-28 22:47:56 +01:00
Peter Šurda
eaafb9efa5
Listening port shouldn't be grey
2017-02-28 22:04:34 +01:00
PyBitmessage Translations
2906bff6b4
Auto-updated language de from transifex
2017-02-28 19:25:41 +01:00
PyBitmessage Translations
e33c6023b3
Auto-updated language sk from transifex
2017-02-28 19:21:29 +01:00
PyBitmessage Translations
a90f35fe6d
Auto-updated language pl from transifex
2017-02-28 19:13:31 +01:00
PyBitmessage Translations
97f803ccde
Auto-updated language eo from transifex
2017-02-28 19:12:14 +01:00
PyBitmessage Translations
e55407ff4b
Auto-updated language ja from transifex
2017-02-28 19:08:45 +01:00
Dmitri Bogomolov
34084bbc80
Total setup.py cleanup and simple script installation
2017-02-28 15:51:49 +02:00
Peter Šurda
e7506b2ac0
Fix tracking of already attempted connections
...
- it didn't delete the entries correctly, resulting in outgoing syn
sender deadlocking
2017-02-28 09:43:09 +01:00
Peter Šurda
f5b430b567
Excessive random seeding
...
- outgoing thread was calling a seed reinit before each peer selection.
This is not necessary, just init when the thread starts
2017-02-28 09:40:28 +01:00
Peter Šurda
42246f83ef
Reset connection list on UPnP
...
- reset the already attempted connection list after UPnP port mapping is
established. This allows to resubmit externally reachable port
2017-02-28 01:15:49 +01:00
Peter Šurda
59e1739136
Revert duplicate IP treatment for bootstrap
...
- bootstrap provider mode shouldn't accept multiple connections from a
single IP after all, it creates problems
2017-02-28 00:20:34 +01:00
Peter Šurda
d0b0d15dc3
Fix potential deadlock
...
- alreadyAttemptedConnectionsListLock probably deadlocked
- removed locking where unnecessary and rewrote the important part with
proper locking
2017-02-28 00:12:49 +01:00
Peter Šurda
af8957ed72
Typo in the second most recent commit
2017-02-27 23:37:15 +01:00
Peter Šurda
d9d2deee25
Typo in last commit
2017-02-27 23:35:48 +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
5d068ec84a
Unnecessary locking
...
- there was a sleep inside a lock
2017-02-27 23:30:31 +01:00
Peter Šurda
741ac5ca05
UPnP recommendation notification fixes
...
- notify also if no connections and no change
2017-02-27 16:18:22 +01:00
Peter Šurda
ff786725ed
Typo
...
- UPnP / connectivity recommendation was active when on proxy rather
than without
2017-02-27 16:12:19 +01:00