Commit graph

147 commits

Author SHA1 Message Date
SomberNight
5481fd8af6
interface: validate field order in "mempool.get_fee_histogram" response 2020-10-26 02:07:30 +01:00
SomberNight
c5da22a9dd
network: tighten checks of server responses for type/sanity 2020-10-16 19:30:42 +02:00
bitromortac
292016d283
network dialog: include protocol in server address field (#6624)
* network-dialog: include protocol in server field

In this way it is now possible again to use plain server connections
without reverting it automatically to tls connections.

* qt network dialog: hide trailing protocol ":s" in TextEdit

This hides some complexity from casual users, while still allowing
advanced users to set the protocol.

Co-authored-by: SomberNight <somber.night@protonmail.com>
2020-10-14 16:28:31 +00:00
SomberNight
aae06116f9
follow-up prev 2020-09-25 11:23:23 +02:00
SomberNight
5a7c3dc4d0
network: make MAX_INCOMING_MSG_SIZE configurable from config
requested in https://github.com/spesmilo/electrum/issues/4315#issuecomment-698730778
2020-09-25 11:15:04 +02:00
SomberNight
d19ff43266
interface: check server response for some methods
some basic sanity checks

Previously if the server sent back a malformed response, it could partially corrupt a wallet file.
(as sometimes the response would get persisted, and issues would only arise later when the values were used)
2020-07-02 15:41:39 +02:00
SomberNight
3766420a0b
network: clarify local_height/server_height 2020-06-21 08:20:56 +02:00
SomberNight
56a9ccca6d
interface: make localhost exempt from ip-range bucketing 2020-04-25 06:38:26 +02:00
SomberNight
38980a4f5c
interface: (trivial) make some methods private 2020-04-24 17:18:05 +02:00
Luke Childs
ca1046bce2
Add --serverfingerprint option (#6094)
* Add --fingerprint option

* Simplify conditional checks

* Improve warning wording

* Throw error instead of logging and returning

* --fingerprint => --serverfingerprint

* Only run fingerprint checks against main server

* Throw error if --serverfingerprint is set for a non SSL main server

* Fix linting errors

* Don't check certificate fingerprint in a seperate connection

* Disallow CA signed certs when a fingerprint is provided

* Show clear error and then exit for Qt GUI users

* Remove leading newlines from error dialog

* Always check is_main_server() when getting fingerprint

* Document how to generate SSL cert fingerprint
2020-04-24 14:11:40 +00:00
SomberNight
9e57ae630b
network/gui: unify host/port input fields to single server str
This allows optionally specifying the protocol for the main server.

fixes #6095
fixes #5278
2020-04-16 21:19:48 +02:00
SomberNight
ea64b2af64
interface.get_certificate: use public asyncio APIs 2020-04-16 17:31:58 +02:00
SomberNight
223b62554e
lntransport: use network proxy if available
fixes #4824
2020-04-15 21:44:09 +02:00
SomberNight
cf1f2ba4dc
network: replace "server" strings with ServerAddr objects 2020-04-15 17:23:47 +02:00
ThomasV
9224404108 Move callback manager out of Network class 2020-04-14 18:29:51 +02:00
ThomasV
133d74adfb fee estimates: use median if auto-connect 2020-03-12 15:39:50 +01:00
SomberNight
ed234d3444
rename all TaskGroup() fields to "taskgroup"
for consistency
2020-02-27 19:13:56 +01:00
SomberNight
e65ce96f9d
interface: better error msg for main server re SSL cert issues
(logger.warning is shown even without -v, if there is a terminal)

closes #5884
2020-01-12 04:29:39 +01:00
SomberNight
0b0139c676
network.get_transaction: move some response validation logic from Synchronizer 2020-01-09 19:23:28 +01:00
SomberNight
787ac5fe99
interface: make changing max incoming msg size (1 MB) easier 2019-12-27 17:43:12 +01:00
SomberNight
24ebc77d76
ln chan verifier: fix code rot 2019-12-10 01:14:38 +01:00
SomberNight
68dad21fb4
network: make best_effort_reliable smarter and a bit more lenient
related: #5815
2019-12-01 23:24:43 +01:00
SomberNight
a13344938f
interface: fix connecting to raw IPv6 (as hostname) on Windows
Changed cert pinning filename as on Windows paths cannot contain a colon ':'.
2019-11-27 13:08:22 +01:00
SomberNight
d430ec4bfc
interface.deserialize_server: better ipv6 handling 2019-11-26 00:17:00 +01:00
SomberNight
a10dc04b28
wallet: fix offline hw wallet signing when not specifying --offline
closes #5532
2019-07-29 13:27:37 +02:00
SomberNight
935ab9a12f
interface: check if future already done in handle_disconnect
future could get cancelled in network.py in which case set_result raised
2019-06-28 21:13:33 +02:00
SomberNight
4fc43da344
interface.debug will now also print errors 2019-06-26 01:16:34 +02:00
SomberNight
ab81a09de2
interface: hide some server-induced errors from log 2019-05-28 21:23:06 +02:00
SomberNight
d17e6a1b87
interface: fix for aiorpcx 0.18 2019-05-28 06:14:53 +02:00
SomberNight
41f160dd74
update to aiorpcx 0.18 2019-05-27 19:35:30 +02:00
SomberNight
eaf203dbb5
interface: fix connecting to new servers using self-signed certs
got broken in 6ec1578a90
2019-05-27 19:09:54 +02:00
SomberNight
e1c1a9d6a2
interface: add comment 2019-05-25 05:20:21 +02:00
SomberNight
a591ccf9b1
interface: follow-up 6ec1578a90 2019-05-22 17:43:33 +02:00
SomberNight
6ec1578a90
follow-up prev 2019-05-21 18:43:16 +02:00
SomberNight
fecef91ee0
interface was suppressing storage r/w exceptions 2019-05-21 18:11:49 +02:00
SomberNight
e8bc5bbec4
interface: follow-up 6cc70bc7a2 2019-05-15 19:56:16 +02:00
SomberNight
6cc70bc7a2
interface: when disconnecting due to RPCError, don't dump traceback 2019-05-14 15:58:02 +02:00
SomberNight
104b8804f7
logging: '-V' cli option can blacklist/whitelist classes with short names
for example, '-V ni' will whitelist the 'Network' and 'Interface' classes
'-V ^ni' will blacklist those instead
2019-05-07 21:07:18 +02:00
SomberNight
92ad7ec5c0
interface: use itertools.count 2019-05-07 17:24:00 +02:00
SomberNight
6940c424d1
logging: cli options to filter for modules using -v
old style "-v" still works

filtering examples:
-v=debug,network=error,interface=error      // effectively blacklists network and interface
-v=warning,network=debug,interface=debug    // effectively whitelists network and interface
2019-05-02 15:19:10 +02:00
SomberNight
3385a94753
logging: basics 2019-05-02 15:19:03 +02:00
SomberNight
556fa30ddf
interface: partially fix ipv6 proxy
note that network.deserialize_proxy is still broken for ipv6
2019-05-02 12:04:06 +02:00
SomberNight
51e0672da6
update to aiorpcx 0.17 2019-04-30 21:24:39 +02:00
SomberNight
c49d5f672c
network: fix proxy case
follow-up "healty spread of servers" d8f3ab0917
2019-04-15 10:49:09 +02:00
SomberNight
2dca91d048
interface: better exception handling for _try_saving_ssl_cert_for_first_time 2019-04-12 22:49:34 +02:00
SomberNight
d8f3ab0917
network: do not connect to multiple servers on same /16
maintain a healthy spread of (IP addresses of) connected servers
2019-04-12 22:32:36 +02:00
SomberNight
4f2aa53a76
interface: in server.version, send "electrum/3.3.4" as client name
closes #5246
2019-04-12 19:11:25 +02:00
SomberNight
3b1ece4c70
interface: if iface conn fails early, don't wait for timeout of 'ready'
Network code is waiting for iface.ready with a timeout.
While network.py code is waiting, the already failed iface takes up a slot
in "connecting".
2019-03-18 21:34:01 +01:00
SomberNight
0bf0b1d20b
interface.is_server_ca_signed: don't rely on assert 2019-02-18 18:00:54 +01:00
ghost43
c8562f5362
network: reintroduce network.debug (#5093)
network.debug and interface.debug were removed during the asyncio-aiorpcx
network-rewrite.
2019-02-12 20:23:43 +01:00