Commit Graph

310 Commits

Author SHA1 Message Date
ThomasV bf7deaa1fb remove blockchain fork detection threshold 2017-07-13 16:23:41 +02:00
ThomasV e6116db565 network: minor fix 2017-07-13 09:31:27 +02:00
ThomasV 73b023e967 update network settings dialog of the kivy GUI 2017-07-11 18:04:33 +02:00
ThomasV 9b7102aed1 make fork_threshold configurable, fix backward mode 2017-07-08 16:45:09 +02:00
ThomasV 680e9a5552 network: go back if cannot connect during catch_up 2017-07-08 16:18:37 +02:00
ThomasV 568c14ca78 Refactor Network and Blockchain dialogs in qt and kivy 2017-07-08 11:38:32 +02:00
ThomasV 6b872b68bd hardcode another testnet server 2017-07-04 13:03:31 +02:00
ThomasV 2055fce087 network dialog: add menu actions to blockchains list 2017-07-04 11:35:04 +02:00
ThomasV a7679debd1 fix #2533 2017-06-30 13:00:06 +02:00
ThomasV 8285bc458f network dialog: show servers in blockchain tab 2017-06-23 10:36:49 +02:00
ThomasV 6931ffada5 fix callbacks when switching to another server 2017-06-22 14:47:05 +02:00
ThomasV ca220d8dbb Detect blockchain splits and validate multiple chains 2017-06-21 09:48:31 +02:00
ThomasV 1ee70f798e fix: reorgs 2017-05-23 14:51:44 +02:00
ThomasV 63f14f6ab2 fix: request chunk at next_height 2017-05-23 07:58:40 +02:00
ThomasV ac77c9b9bd catch-up block headers from a single interface at a time 2017-05-19 12:16:21 +02:00
ThomasV 6321b14f9f Locate blockchain connection point with binary search 2017-05-13 11:19:36 +02:00
ThomasV 6afc11208d spv: keep track of header requests made by each interface 2017-04-20 10:59:30 +02:00
ThomasV db13cf965c fix #2347 and return indentation 2017-04-02 04:36:05 +02:00
ThomasV 31fc9b78af keep connection open with a manually selected server, even if they fail passing the checkpoint 2017-03-31 12:04:29 +02:00
ThomasV d371e1c807 network: request checkpoint when opening a new connection 2017-03-29 17:21:18 +02:00
ThomasV 59b0b51f24 add proxy settings to kivy GUI 2017-03-27 18:59:48 +02:00
ThomasV 59bc220856 fix auto-connect: do not use a random interface 2017-03-26 20:22:30 +02:00
ThomasV dd0b018a35 add configurable checkpoint to blockchain verification; use genesis as default 2017-03-23 11:58:56 +01:00
Eagle[TM] f9bb74077e Update and add servers to default list; add schedule for phase-out of e-s 2017-03-20 00:56:27 +01:00
ThomasV 8e90d6a4e5 fix #2292 2017-03-15 12:21:26 +01:00
ThomasV e78531d913 follow up 8babd3e986 2017-03-12 19:25:49 +01:00
Eagle[TM] 8babd3e986 Update default server list - make more use of DEFAULT_PORTS 2017-03-12 17:01:25 +01:00
shsmith 7ff5681010 fix #2204
avoid exception in close_interface when interface.server is not in
self.interfaces
2017-03-06 07:53:43 -08:00
ThomasV ed2db4be80 Merge pull request #2239 from shsmith/master
fix #2204
2017-03-06 12:30:27 +01:00
shsmith 4109fd9eb2 request fees, peers and banner before address subscriptions
a wallet with many address subscriptions may time out on address
subscriptions before fees are received because fees were requested last
2017-03-04 08:42:46 -08:00
shsmith 1e25af7f0d fix https://github.com/spesmilo/electrum/issues/2204 2017-03-04 08:38:14 -08:00
Neil Booth 8888a50549 Add support for BU's nolnet
Also update testnet servers
Add missing self. in print_error call
2017-03-04 11:01:32 +09:00
shsmith 849a14554b report fee_estimates to verbose log
similar to how relayfee is logged
2017-03-01 15:10:03 -08:00
ThomasV 9c2d12923a fix: interface.close 2017-02-28 11:25:05 +01:00
Johann Bauer 9318b410bd Allow using a SOCKS5 proxy with authentication 2017-02-23 22:35:41 +01:00
Johann Bauer 2c7ab64e83 Always include default servers in the server list 2017-02-17 15:41:50 +01:00
ThomasV 3a64ec0f2e Initial segwit support (testnet only) 2017-01-25 21:42:15 +01:00
ThomasV 29e2570d3d prevent busy looping 2017-01-09 16:36:05 +01:00
ThomasV a2e7fc32ef Add fee slider class with network callback. 2017-01-09 12:36:15 +01:00
ThomasV 1358bebd37 network: do not wait for headers file on startup 2017-01-07 23:44:06 +01:00
ThomasV d042d6e970 initial testnet support (petrkr) 2017-01-07 16:58:59 +01:00
ThomasV 9138cf3cb8 remove deprecated protocols from DEFAULT_PORTS 2017-01-07 15:59:09 +01:00
Eagle[TM] a5dad77675 Update default servers 2016-12-26 23:07:52 +01:00
ThomasV 8249f5ab67 init_headers in daemon thread, and fix #1996 2016-10-24 14:57:02 +02:00
Eagle[TM] 7933448ec7 network: Update default server list 2016-09-04 14:36:11 +02:00
ThomasV b6393cbdf2 display 'low fee' in tx dialog 2016-06-15 13:31:24 +02:00
ThomasV f2d2d61894 add expected confirmation time to tx dialog 2016-06-07 17:12:31 +02:00
ThomasV bbe7b277d2 call jnius.detach on thread stop 2016-06-04 12:59:01 +02:00
ThomasV 2cf4795250 dynamic fees: define fee levels using expected confirmation times 2016-05-31 20:26:09 +02:00
ThomasV 753a28b452 set timeout to 30s for synchronous operations 2016-03-20 13:25:24 +01:00
ThomasV af780e7519 Default auto_connect to True. In Qt, the question is asked by the wizard 2016-03-08 10:00:47 +01:00
ThomasV 54df0b2845 follow up previous commit 2016-02-25 08:59:02 +01:00
ThomasV 96f144eb03 make sure the broadcast tx thread always times out 2016-02-25 08:55:06 +01:00
ThomasV 305843999e Relicensing 2016-02-24 10:20:30 +01:00
ThomasV bd5effb1b8 follow up 6f72fa4 2016-02-21 17:46:56 +01:00
ThomasV 6f72fa4e94 try to fix issue #1682 2016-02-21 17:42:33 +01:00
ThomasV 04c7d2b455 add 'donate to server' menu item 2016-02-15 16:17:07 +01:00
ThomasV 4dd479cf59 server_is_lagging: return True if no height 2016-02-15 15:58:08 +01:00
Neil Booth 371f8d6dc3 network: gracefully handle EINTR in select syscall 2016-01-16 21:14:14 +09:00
ThomasV da8fce1914 if available, use relayfee from server instead of hard coded value 2016-01-14 16:06:22 +01:00
Eagle[TM] 2c797cd75b Update default server list 2015-12-30 14:47:40 +01:00
ThomasV 9ec4cbeed1 fix issue #1572 2015-12-06 13:32:50 +01:00
ThomasV 74a9e2296c separate Network and Plugins 2015-12-03 11:18:10 +01:00
ThomasV 90a2a049f4 network fix: callbacks were not called 2015-11-27 11:30:14 +01:00
ThomasV 042f8ef832 network: cache subscription responses 2015-11-26 11:26:01 +01:00
ThomasV 43df795b1f network: separate callbacks from unanswered_requests 2015-11-26 10:57:43 +01:00
ThomasV 2934fd17be fix websockets 2015-11-25 10:32:46 +01:00
Neil Booth ae4cfc9f0b Unregister network callbacks from QT gui
Rework the callback system in QT to make this easy, and avoid
leaking window references that prevent the window from being
GC-ed on close
2015-11-13 23:36:29 +09:00
Neil Booth 206e38fb7c Make use of trigger_callback easier to understand 2015-11-12 16:08:37 +09:00
Neil Booth 8cc3b58364 Allow syncronizer to be GC-ed
Proper fix for #1525.
Using python's GC module, I've verified that the daemon, when running,
now releases all verifiers, synchronizers and wallets - all the resources
we care about releasing.
2015-11-12 08:40:58 +09:00
ThomasV 6aefaf7b3e populate network.connecting before the thread is started (fixes KeyError in self.connecting.pop) 2015-10-17 07:07:10 +02:00
Neil Booth 58bd655f1d In debug mode, show every queued request 2015-09-12 12:13:42 +09:00
Neil Booth fb5e8068ce Simplify following on from prior dead code removal 2015-09-12 11:25:14 +09:00
Neil Booth f9547a194e Remove more dead code
As everything is in-process now, nothing sends
"network.*" messages.
2015-09-12 11:18:11 +09:00
Neil Booth fe2e731a70 Remove dead code 2015-09-12 10:54:20 +09:00
Neil Booth 3746050fe6 Subscribed address fix
Add an addr to the subcribed address set on receiving a response,
not on sending a request.
2015-09-10 13:32:00 +09:00
Neil Booth cbf9052dae Remove address caching 2015-09-10 12:57:04 +09:00
Neil Booth b14aae5ebc Clear self.interface when switching
When switching and the interface isn't immediately available,
we should clear self.Interface as otherwise requests will
still be going to it.
2015-09-09 22:13:09 +09:00
Neil Booth 6f1367fea6 Unify message IDs between network and interfaces
Previously network.py had its own idea of request IDs,
and each interface had its own which was sent on the wire.
The interface would jump through hoops to translate one
to the other.

This unifies them so that a message ID is passed when
queueing a request, in addition to the method and params.
network.py is now solely responsible for message ID management.

Apart from being simpler and clearer, this also should be faster
as there is much less data structure manipulation and rebuilding
happening.
2015-09-09 21:00:25 +09:00
Neil Booth abee263710 Remove obsolete server from DEFAULT_SERVERS 2015-09-07 10:39:55 +09:00
Neil Booth da5c18b2f9 Be patient whilst connecting
On startup we make several connections simultaneously.  Socket
maintenance code checks if we're not connected, and if not
switches to a connected interface if auto_connect.
Unfortunately this meant that we frequently didn't reconnect to
the prior good server on startup, because some other connection
would happen first and this code would decide to switch to it.

Instead, only switch if a connection attempt is not in progress.
If that times out at the O/S level the switch will happen.
2015-09-06 20:03:43 +09:00
Neil Booth b5f986ee56 Torwards sane signalling for exchange_rate plugin 2015-09-05 21:47:35 +09:00
Neil Booth 6c69849be9 Fix uninitialized var from select merge 2015-09-02 13:50:25 +09:00
Neil Booth cdcd4d7215 Fix 'tuple' object has no attribute 'copy'
Occurred when switching interfaces and there were unanswered
requests that need resending.  This bug isn't new; it's been
there since at least 3rd June.
2015-09-02 11:56:53 +09:00
Neil Booth 119aa5bf2e Move message so it doesn't repeat when connecting 2015-09-01 17:30:22 +09:00
Neil Booth 72f429c353 Remove unused callback 2015-09-01 14:41:06 +09:00
Neil Booth a5e0265010 Make exchange rate plugin a network thread job
This fixes a lot of thread error noise when closing down electrum.
2015-08-31 20:33:39 +09:00
Neil Booth 2ee506ac03 Fix typo. 2015-08-31 14:05:38 +09:00
Neil Booth 2d05e7d891 Merge the network and network_proxy 2015-08-31 12:00:38 +09:00
Neil Booth a056f9804b Notify when a chunk of headers is validated
And a couple of cosmetic changes.
This should fix #1379.
2015-08-25 14:27:53 +09:00
Neil Booth 49a48d52ac Use select. 2015-08-22 14:03:08 +02:00
ThomasV 713fa00d86 fix estimatefee for daemon 2015-08-07 10:54:32 +02:00
ThomasV 43880d452e dynamic fees 2015-08-05 15:45:28 +02:00
Eagle[TM] 4578777c29 network: Update default servers 2015-07-10 19:35:02 +02:00
Neil Booth 5acbe00cbf Suggested auto_connect daemon mode fix for #1336 2015-07-03 11:50:53 +09:00
ThomasV 604d5d432c sanitize server at the interface level (follow up to issue #1330) 2015-07-01 09:09:00 +02:00
ThomasV 0ac3aebb88 fix proxy setting issue #1330 2015-07-01 08:45:47 +02:00
ThomasV 118052d815 v2.4 will require protocol v0.10 2015-06-27 15:22:34 +02:00
ThomasV fdd43bd5ad fix issue in f307b18546 2015-06-24 09:35:54 +02:00
ThomasV f307b18546 Merge pull request #1268 from kyuupichan/blockchain_nothread
Make the blockchain class not a thread
2015-06-24 09:00:52 +02:00