Commit Graph

331 Commits

Author SHA1 Message Date
Neil Booth
5053101cee LOG_SESSIONS should use self.integer 2016-11-29 19:32:11 +09:00
Neil Booth
6713373aa2 Prepare 0.7.13 2016-11-29 08:03:51 +09:00
Neil Booth
c08ade5861 Add session logging facility
Move session logging code to protocol.py from electrum_rpc.py
Use it for periodic logging controlled by envvar LOG_SESSIONS
For each session, track sent transaction stats and show that
per-session instead of errors
2016-11-29 08:00:54 +09:00
Neil Booth
98c4ce3fef Prepare 0.7.12 2016-11-27 22:01:12 +09:00
Neil Booth
b8fc739590 Fix ordering in get_utxos 2016-11-27 21:54:05 +09:00
Neil Booth
f9cc21807f Further optimize the inner loop 2016-11-27 14:20:36 +09:00
Neil Booth
5c0b026158 Tasks queue just has null entries for now 2016-11-27 13:35:09 +09:00
Neil Booth
6aef79461f Don't shut down block processor by cancellation
The block processor needs to be able to close cleanly, and not
mid-block.  In order to be able to yield whilst processing blocks
we cannot forcefully close its coroutine with a cancellation.
2016-11-27 12:20:16 +09:00
Neil Booth
1b95bcd8ac Open DB differently depending on if syncing
If syncing, use a high max_open_files, otherwise lower it.
2016-11-27 07:25:28 +09:00
Neil Booth
0afddb7bc3 Give backing up its own flush function
Remove some excessive log messages
2016-11-26 20:59:59 +09:00
Neil Booth
f5384ccc98 Remove get_tx_hash
Anything in the DB should be on the disk.  Remove misleading
comment.
2016-11-26 20:09:18 +09:00
Neil Booth
4fc5e309ab Prepare 0.7.11 2016-11-26 18:20:40 +09:00
Neil Booth
9eb701f220 Replace $VERSION in the banner file
with the ElectrumX version string
2016-11-26 18:19:53 +09:00
Neil Booth
1aaed2e913 Create just one server connection
I hope this
Fixes #47
2016-11-26 18:10:03 +09:00
Neil Booth
3f743e9630 Distinguish undo_info being empty and not existing
Fixes #46
2016-11-26 16:16:17 +09:00
Neil Booth
af3ae6429e Fix logging bug 2016-11-26 15:35:55 +09:00
Neil Booth
4e26e0fe96 Bump default value of MAX_SEND to 1m bytes.
Otherwise historic large txs could not be served to clients.
2016-11-26 15:22:42 +09:00
Neil Booth
95a2de6dae Move DB undo code to db.py 2016-11-26 13:18:10 +09:00
Neil Booth
8d253c81d3 Move clean_db() to db.py 2016-11-26 13:15:45 +09:00
Neil Booth
db5d0dd6cb Merge branch 'serve_disk_only' into develop 2016-11-26 13:12:57 +09:00
Neil Booth
59244cc24e Move bulk of FS flush code to db.py
More logically belongs there.
Have servers use the flushed DB height not the block processor's height.
Get all headers only from disk.
2016-11-26 13:11:59 +09:00
Neil Booth
df3cb8535a Cleaner handling of touched addresses
Moved to local vars rather than an instance variable
2016-11-26 12:46:11 +09:00
Neil Booth
b97496d4a5 Set max_open_files for LevelDB to 256
On Linux it seems a bit greedy
2016-11-26 10:38:48 +09:00
Neil Booth
9544170c55 Prepare release-0.7.10 2016-11-26 09:53:47 +09:00
Neil Booth
292073f2c7 Log large requests and reject them 2016-11-26 09:32:29 +09:00
Neil Booth
59733e4609 Move bitcoin-specific coin defaults to Bitcoin 2016-11-26 08:32:30 +09:00
TheLazieR Yip
f3ecfe00e2 Remove unused variables 2016-11-25 07:45:45 -05:00
TheLazieR Yip
828727d41a Remove unneccessary local variables 2016-11-25 07:44:19 -05:00
TheLazieR Yip
e987510432 Replace double_sha256 with header_hash from coin 2016-11-25 07:25:57 -05:00
TheLazieR Yip
b3623f5455 replace header_hashes with header_prevhash , header_hash 2016-11-25 07:25:56 -05:00
Neil Booth
9f2bd981f0 Prepare 0.7.9 2016-11-25 21:23:14 +09:00
Neil Booth
42c00d32d2 Rewrite lib/jsonrpc.py to be a useful client too
Use for an improved electrumx_rpc.py, so it now handles responses spread
over several packets.  Also added a timeout of 5 seconds.

Fixes #43
2016-11-25 21:19:43 +09:00
Neil Booth
2dbb9f44f6 Prepare release 0.7.8 2016-11-25 08:10:53 +09:00
Neil Booth
ef2703177e Fix another assertion error during reorgs
Fixes #44
2016-11-25 08:10:11 +09:00
Neil Booth
86b0f7fa72 Prepare 0.7.7 2016-11-24 23:42:49 +09:00
Neil Booth
de4930b96d Introduce MAX_HIST environment variable. 2016-11-24 23:30:40 +09:00
Neil Booth
70ee7eebd8 Prepare 0.7.6 2016-11-23 22:52:23 +09:00
Neil Booth
956d1b8039 Fix IRC regression 2016-11-23 22:49:37 +09:00
Neil Booth
86086cac63 Prepare 0.7.5 2016-11-23 17:59:18 +09:00
Neil Booth
9e220820aa Rework futures and event handling 2016-11-23 17:52:09 +09:00
Neil Booth
bab0d162de Merge ServerManager and BlockServer 2016-11-23 17:52:08 +09:00
Neil Booth
d7887b62be Merge branch 'irc_vars' of https://github.com/thelazier/electrumx into thelazier-irc_vars 2016-11-23 10:21:16 +09:00
TheLazieR Yip
f075f0bb5f Add coin's IRC parameters 2016-11-23 08:15:03 +07:00
Neil Booth
f20859a8a6 Prepare 0.7.4 2016-11-23 09:55:54 +09:00
Neil Booth
640360c809 Add feature to simulate reorgs for debugging 2016-11-23 09:52:30 +09:00
Neil Booth
8970205e6c Remove obsolete debugging feature 2016-11-23 09:16:41 +09:00
Neil Booth
2df5aa746f Pop one from tx_counts for each block we back up.
Fixes #40
2016-11-23 09:11:49 +09:00
Neil Booth
26221e751e Remove dead code 2016-11-23 09:02:01 +09:00
Neil Booth
39021792ca Prepare 0.7.3 2016-11-22 08:11:05 +09:00
Neil Booth
d1ba4b1a76 Reset fs_height when backing up 2016-11-22 08:09:43 +09:00
Neil Booth
67bb01bf2c Fix reorgs with unspendable TXOs 2016-11-22 07:50:01 +09:00
Neil Booth
e5c4bb9743 Prepare 0.7.2 release 2016-11-22 07:03:37 +09:00
Neil Booth
aa9f106865 Add missing self; use max_secs where intended. 2016-11-20 23:11:35 +09:00
Neil Booth
285a66fceb Prepare 0.7.1 2016-11-20 22:03:04 +09:00
Neil Booth
fa30c5529b Fix missing qualifier 2016-11-20 22:01:44 +09:00
Neil Booth
dd0cd0156f Remove debug log 2016-11-20 20:56:12 +09:00
Neil Booth
87cdd2709d Implement daemon failover
Daemon URLs can be comma-separated in the DAEMON_URL env var.
Surrounding whitespace is stripped.
http:// is preprended if missing.
The coin's default port is supplied if missing.
A trailing / is supplied if missing.
Closes #33
2016-11-20 20:52:54 +09:00
Neil Booth
11558fd9d2 Add debug log 2016-11-20 20:52:54 +09:00
Neil Booth
1dc43b3020 Show connection total in connection log
Fix typo resulting in no mempool notifications
2016-11-20 19:29:58 +09:00
Neil Booth
009750bacb Merge branch 'async_mempool' into develop 2016-11-20 18:25:40 +09:00
Neil Booth
5eb92007ae Remove redundant log; IRC will emit one 2016-11-20 18:18:30 +09:00
Neil Booth
98fd178c62 Make mempool truly asynchronous
Mempool updates happen in parallel asynchronously to processing of
new blocks once caught up.  This means that, e.g., during the initial
slow mempool download incoming blocks can be processed and communicated
to clients without waiting for the downloaded mempool transaction
analysis to complete.  From a client's point of view the server won't
be seen as lagging.
2016-11-20 18:17:55 +09:00
Neil Booth
8b34d1c134 Log IRC errors, typically missing package 2016-11-20 18:09:32 +09:00
Neil Booth
dd5a31d0f4 Take a little more care cleaning up connections 2016-11-19 20:56:08 +09:00
Neil Booth
8617c82ec2 Floor disk_count at zero. 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
d856cbab90 Prepare 0.6.3 2016-11-19 17:10:58 +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
3d87e299ea Move formatted_time to library 2016-11-19 15:42:06 +09:00
Neil Booth
0b52376f23 Add subscription limits 2016-11-19 10:51:16 +09:00
Neil Booth
4a4d11ad7c Prepare release 0.6.2 2016-11-19 08:21:17 +09:00
Neil Booth
ffd6cd63b0 Fix thinko 2016-11-19 08:16:20 +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
d6fa4a1564 More logging improvements
- log software and DB version at startup
- log more DB info at startup
- log software and DB version when first synced

Fixes #29
2016-11-19 07:29:17 +09:00
Neil Booth
3abddf4a51 Simplify sessions call 2016-11-19 00:02:56 +09:00
Neil Booth
6d7bc7595f Prepare release 0.6.1 2016-11-18 22:28:42 +09:00
Neil Booth
88185b0daa Bump log threshold up; tweak log 2016-11-18 22:20:48 +09:00
Neil Booth
24d9e5a95e Tweak flush logic
Aim to not check cache size if caught up; also reduces logs
2016-11-18 22:17:34 +09:00
Neil Booth
beeb60f324 Implement blockchain.address.get_mempool
Fixes #26
2016-11-18 21:41:27 +09:00
Neil Booth
e6058c3fd3 hex_hash is already hex 2016-11-18 21:16:34 +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
4fe7e7dab2 Merge branch 'better_logs' into develop 2016-11-18 20:19:27 +09:00
Neil Booth
d2c575a24b Better, more concise logs, particularly when caught up. 2016-11-18 20:08:43 +09:00
Neil Booth
3f8b26291a At startup only log some things during initial sync 2016-11-18 19:21:45 +09:00
Neil Booth
66c493dbf4 Make the default reorg_limit a coin property 2016-11-18 19:21:38 +09:00
Neil Booth
022a919701 Prepare release 0.6 2016-11-17 23:08:19 +09:00
Neil Booth
4c7f72fe68 RPCError is not a global variable 2016-11-17 22:07:37 +09:00
Neil Booth
f4651c0ca4 Store tx_num in 'h' table key so keys are unique 2016-11-17 07:59:40 +09:00
Neil Booth
3c98053f5d Remove some dead code 2016-11-17 07:44:42 +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
cc2db4a62c Bump HIST_MB default to 300MB 2016-11-16 06:39:39 +09:00
Neil Booth
b60eb5ca17 Prepare 0.5.1 2016-11-15 21:34:08 +09:00
Neil Booth
d85034353f Remove useless re-raise of cancellation 2016-11-15 20:13:50 +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
8671e57183 Move fs flushes to same time as history flushes 2016-11-15 06:28:52 +09:00