Commit Graph

58 Commits

Author SHA1 Message Date
Neil Booth
dd5a31d0f4 Take a little more care cleaning up connections 2016-11-19 20:56:08 +09:00
Neil Booth
ccf24fdc71 Wait 20 secs for sockets to close
10 seems a little low
2016-11-19 20:00:38 +09:00
Neil Booth
52116539d4 Clean shutdown: wait for transports to close
We give 10 seconds for everything to be cleaned up, then close forcibly.
Fixes #30
2016-11-19 17:05:47 +09:00
Neil Booth
0b52376f23 Add subscription limits 2016-11-19 10:51:16 +09:00
Neil Booth
913d156786 Convert DaemonError to RPCError
To cleanly return errors to clients
getrawtransaction has the ugly API and still does its own thing

Fixes #32
2016-11-19 08:12:13 +09:00
Neil Booth
942d5d6b00 Fix import 2016-11-19 08:07:37 +09:00
Neil Booth
063a5469cc Move mempool to be with BlockServer
BlockProcessor doesn't really need a mempool; mempools are
only useful for servers.
Set first_sync before flushing, so it goes into DB state.
Start servers immediately on catchup; mempool fills asynchronously.

Fixes #31
2016-11-19 08:02:13 +09:00
Neil Booth
3abddf4a51 Simplify sessions call 2016-11-19 00:02:56 +09:00
Neil Booth
88185b0daa Bump log threshold up; tweak log 2016-11-18 22:20:48 +09:00
Neil Booth
beeb60f324 Implement blockchain.address.get_mempool
Fixes #26
2016-11-18 21:41:27 +09:00
Neil Booth
7f3551e435 tx_merkle: catch bad hashes and report properly
Fixes #27
2016-11-18 20:56:53 +09:00
Neil Booth
4c7f72fe68 RPCError is not a global variable 2016-11-17 22:07:37 +09:00
Neil Booth
c5c7b6f438 Have all expensive requests yield. 2016-11-17 06:50:46 +09:00
Neil Booth
f17ad2ddf4 Put notifications on the session queue
This keeps the network in-order and means slow clients get slow
notifications, which seems fairer.

Add some simple logging
2016-11-17 06:04:08 +09:00
Neil Booth
a1eb446af4 Tweak notify handling 2016-11-17 05:37:37 +09:00
Neil Booth
db187540d5 Have task coros handle cancelled exceptions 2016-11-15 20:09:38 +09:00
Neil Booth
a2280bbc93 Clean up futures handling 2016-11-15 20:09:38 +09:00
Neil Booth
8c55f41305 Accept more SSL protocols 2016-11-14 23:13:34 +09:00
Neil Booth
1830cae3de Remove a redundant message 2016-11-14 21:52:25 +09:00
Neil Booth
83674b1b7b Clarify peername() logic 2016-11-14 21:28:42 +09:00
Neil Booth
be45a9e228 Minor improvements to client handling
Don't create a task until ready to execute it
Log expensive tasks
Assume peers are for logging unless explicitly not stated
2016-11-14 21:15:09 +09:00
Neil Booth
14d3d85bd9 Need an array to take its len 2016-11-14 19:52:18 +09:00
Neil Booth
dc74c869a1 Await task after cancelling it. 2016-11-14 19:24:17 +09:00
Neil Booth
984a482590 Merge branch 'master' into develop 2016-11-14 08:11:40 +09:00
Neil Booth
12ed9f7069 Have session_count return a dictionary 2016-11-14 08:01:00 +09:00
Neil Booth
1b8881800d Move the RPC handlers to the manager 2016-11-14 07:56:48 +09:00
Johann Bauer
d45321927e Add optional option to anonymise logs (remove IP addresses) 2016-11-13 23:56:16 +01:00
Neil Booth
57dd4ece9c Avoid annoying exception on shutdown 2016-11-13 17:52:08 +09:00
Neil Booth
831225492e Better RPC sessions stats 2016-11-13 15:28:34 +09:00
Neil Booth
7523735f99 Split out server and session management 2016-11-13 14:43:13 +09:00
Neil Booth
3b6ab77e47 Break out JSONRPC into own file
- improved handling of JSON 2.0 RPC protocol
- permits batched requests (not yet supported by Electrum client)
2016-11-13 13:39:37 +09:00
Neil Booth
14d8ece7c6 Return a version the Electrum client expects
If you don't do this you don't appear in the network dialog box
2016-11-12 23:20:20 +09:00
Neil Booth
751bb2d970 Remove debug code 2016-11-12 21:52:50 +09:00
Neil Booth
c93f6cb920 Final cleanup 2016-11-12 21:48:34 +09:00
Neil Booth
cb7b7dd1fe Move pretty printing of sessions to client
Tweak logging
2016-11-12 21:36:49 +09:00
Neil Booth
501807bf1a Implement IRC support and related queries from clients 2016-11-12 21:06:51 +09:00
Neil Booth
d8bb174f2b Use correct daemon API 2016-11-12 09:42:35 +09:00
Neil Booth
244a0f2fab Update release notes. 2016-11-11 21:18:51 +09:00
Neil Booth
8188f7e909 Catch exceptions when trying to listen
Fixes #11
2016-11-10 22:49:20 +09:00
Johann Bauer
1405057096 Fix getting the number of watched addresses
Resolves #13
2016-11-09 18:07:25 +01:00
Neil Booth
5c5e90d574 Move BlockServer to more appropriate location 2016-11-08 19:20:13 +09:00
Neil Booth
f05a5414c1 Make jobs truly asynchronous.
However we need to rate-limit the daemon...
2016-11-07 22:22:47 +09:00
Neil Booth
7f03b0fa73 Move job handling out of the controller
Controller on its last legs...
2016-11-07 19:57:23 +09:00
Neil Booth
00e9c5a31d Add daemon debugging caught-up facility 2016-11-05 21:37:02 +09:00
Neil Booth
9fbbc8bfdb Clean up daemon interface. 2016-11-05 15:59:42 +09:00
Neil Booth
b5d1f401fd Fix bugs 2016-11-05 12:58:23 +09:00
Neil Booth
48b8b9332e Initial attempt at mempool 2016-11-05 12:27:37 +09:00
Neil Booth
fb43712869 Controller clean up 2016-11-03 19:09:33 +09:00
Neil Booth
892e9524e5 Fix bugs handling client UTXO requests
Allow strings for ints - Electrum command line doesn't convert
Don't blow away hash168s from the DB
2016-11-03 19:09:05 +09:00
Neil Booth
be2475f617 Handle utxo.get_address 2016-11-03 19:08:25 +09:00