Neil Booth
bef04750d7
Handle the case there are no blocks
2018-07-26 06:05:00 +08:00
Neil Booth
9b23fbc747
Prepare 1.7
2018-07-25 23:16:32 +08:00
Neil Booth
7a3938be23
Make mempool histogram refresh frequency coin-specific
2018-07-25 23:16:32 +08:00
Neil Booth
5e4586ce54
Create a task to start_servers()
...
That way we start waiting on the shutdown event no matter what
so we can always be shut down
2018-07-25 22:02:00 +08:00
Neil Booth
365c217031
header_mc might be None
2018-07-25 21:36:23 +08:00
Neil Booth
68dbf9fad2
Tweak task handling so all errors are logged
2018-07-25 21:35:05 +08:00
Neil Booth
3fbd4992ce
Rework prefetch logic
...
This also fixes a recent reorg bug...
2018-07-25 20:40:25 +08:00
Neil Booth
d008707330
Fix bug recently introduced in reorgs
...
Fixes #532
2018-07-25 15:25:40 +08:00
Neil Booth
5a42f79bb8
Require an exact aiorpcX version
...
The interface is changing; best to target a single codebase
2018-07-25 11:07:14 +08:00
Neil Booth
ae143703ae
Travis: test Python 3.7
2018-07-25 11:00:11 +08:00
Neil Booth
db8ee48c2e
await on send_request directly
2018-07-25 10:40:50 +08:00
Neil Booth
8d3f98d3fd
Don't check task exceptions ourselves
2018-07-25 10:40:50 +08:00
Neil Booth
fa84b0f54b
Use asyncio.gather to propogate exceptions
2018-07-25 10:37:13 +08:00
Neil Booth
918592fbff
Remove RequestError; clean up a bit
2018-07-25 09:47:07 +08:00
Neil Booth
e1309836ca
Fix typo in prior
2018-07-24 21:38:50 +08:00
Neil Booth
eac214e508
Rework peer discovery
...
Make it more naturally async
2018-07-24 21:22:07 +08:00
Neil Booth
ba607544b9
Avoid callback in peer manager
...
Spawn separate tasks for each peer we test
2018-07-24 14:26:14 +08:00
Neil Booth
12c024f3ac
Log proxy detection failure
2018-07-24 14:02:31 +08:00
Neil Booth
79b98b2b54
Distinguish private and public methods of peer mgr
...
Give private methods a leading _
Remove dead code
2018-07-24 13:52:40 +08:00
Neil Booth
92ddb52f63
Update various comments
2018-07-24 11:41:29 +08:00
joesixpack
83732af4fe
Support for Minexcoin ( #529 )
2018-07-24 09:41:03 +08:00
Neil Booth
221f1222a6
Defer peer discovery
2018-07-24 09:20:45 +08:00
Neil Booth
316f642a08
Reduce memory footprint
...
- Use tuples in preference to lists
They are always at least 11% smaller memory
footprint, rising to 35% for short arrays
2018-07-24 09:15:35 +08:00
Neil Booth
7485d0aaf0
Retain the prevouts with each MemPoolTx
2018-07-24 08:21:58 +08:00
ghost43
45ccf8a64e
fix mempool tx fee calculation typo ( #531 )
2018-07-23 20:31:52 +08:00
Neil Booth
7c01acdbf2
Remove comment
2018-07-23 17:26:51 +08:00
Neil Booth
b05cc4e78b
Clean up fee histogram implementation
...
Much more efficient to just calculate it outright than try
and maintain datastructures
2018-07-23 17:26:42 +08:00
Neil Booth
3e535e47f4
Start peer discovery whilst syncing the mempool
2018-07-23 15:18:49 +08:00
Neil Booth
0963ce5230
Completely overhaul mempool sync logic
...
- highly concurrent and a lot more efficient than previously
- initial mempool sync should be much faster (feedback please)
- mempool processing no longer blocks client session handling
- uses less memory to store the mempool
- fixes an obscure bug where sometimes txs were dropped
- more robust, clean and easy to understand
Fixes #433
2018-07-23 15:18:04 +08:00
Neil Booth
21604cad15
Create a MemPoolTx object and use it
2018-07-22 23:19:35 +08:00
Neil Booth
4b3ceff0d2
Deserialize mempool txs in a thread
2018-07-22 22:18:54 +08:00
Neil Booth
9bd9476a54
Make mempool processing more properly asynchronous
2018-07-22 21:56:22 +08:00
Neil Booth
4da95dd853
Simplify refresh hashes loop
2018-07-22 16:57:30 +08:00
Neil Booth
821f907971
Put stats logging into its own task
2018-07-22 16:54:32 +08:00
Neil Booth
2c51b127de
Clarify mempool's exported interface
2018-07-22 13:25:13 +08:00
Neil Booth
a9a69acaf3
Pass the daemon not chain_state to mempool constructor
...
The mempool as its own process would maintain its own daemon
2018-07-22 12:04:48 +08:00
Neil Booth
35506f6054
Make notifications properly async
2018-07-22 10:38:37 +08:00
Neil Booth
277e2447c0
Fix the package versions in setup.py
2018-07-21 20:53:05 +08:00
Neil Booth
e568ee2488
Improve comments
2018-07-21 20:51:42 +08:00
Neil Booth
c715ae6249
Rework mempool and notification code
...
Clarifies the mempool interface to look more like what it
would in its own process
2018-07-21 20:45:27 +08:00
Neil Booth
3e8c413b77
In ChainState prepend private members with an underscore
2018-07-21 20:45:27 +08:00
Neil Booth
6cf7b049fa
Require aiohttp >= 2.0
2018-07-21 20:45:27 +08:00
Neil Booth
74c5c3f817
Don't accept onion peers if we have no proxy
2018-07-20 19:03:34 +08:00
Neil Booth
f7c95986bf
Fix failing test
2018-07-20 17:14:47 +08:00
Neil Booth
0c28136739
Remove dead code
2018-07-20 17:05:30 +08:00
Neil Booth
8e99d076b6
Logging tweaks
2018-07-20 16:43:15 +08:00
Neil Booth
ca3ba2b2d8
Rework mempool and BP<->prefretcher communication
2018-07-20 16:43:15 +08:00
Neil Booth
431989f0ea
Label 1.6a
2018-07-20 15:07:23 +08:00
Neil Booth
530c7cac6f
Clean up shutdown process of the block processor
...
- enables removal of executor code
- clarify flush guarantees
2018-07-20 15:06:28 +08:00
Neil Booth
41e734caeb
Clean up controller interface with other parts
2018-07-20 12:40:57 +08:00