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
Neil Booth
bd636a75ad
Clean up the process of opening the DBs, make asynchronous
2018-07-20 12:26:59 +08:00
Neil Booth
a019656a5e
Make it clear where BlockProcessor is instantiated
2018-07-20 12:26:49 +08:00
Omar Cruz
227696636d
Added Motion Coin mainnet ( #528 )
...
* Motion added
2018-07-19 17:41:20 +08:00
Neil Booth
023e463748
Prepare 1.6
2018-07-19 11:07:02 +08:00
Neil Booth
049017aa8c
Fix doc linkage
2018-07-18 19:21:39 +08:00
Neil Booth
94d1f7a651
Save raw blocks to disk for reorg purposes
...
We used to rely on the daemon being able to return the
orphaned blocks, but some old daemon codebases are buggy
and fail to do so.
Fixes #258 #315 #479
2018-07-18 16:09:19 +08:00
Neil Booth
813fc09d64
Use JSON RPC terms in docs, not Python
2018-07-18 14:28:44 +08:00
Neil Booth
7ce91b1a43
Minor tweaks
2018-07-18 14:22:40 +08:00
Neil Booth
f5926cf865
Label as 1.6pre3
2018-07-18 14:07:08 +08:00
Neil Booth
391e69b66c
Introduce ChainState object
...
- reduces the tangle of object dependencies
- rationalizes responsibilities
2018-07-18 14:05:39 +08:00
Neil Booth
53425ce585
Move task logic to Tasks object
...
This helps to rationalize the inter-object
dependencies.
2018-07-18 11:30:33 +08:00
Neil Booth
22b01d4dfb
Move masternode cache.
...
It was mistakenly made a pylru cache...
Don't force non-Dash coins to carry the cache.
2018-07-18 11:30:33 +08:00
Neil Booth
9cf3b5358f
Move raw_header to session manager
...
Ultimately this stuff belongs in a ChainState object.
2018-07-18 11:30:33 +08:00
Neil Booth
b7572ce9c0
More refactoring of controller
...
- remove the header cache - not needed for higher protocol versions
- simplify session notification; move to session manager
- move history cache to session manager
2018-07-18 09:20:14 +08:00
Neil Booth
c8c896a14c
Minor tweaks.
2018-07-18 08:46:37 +08:00
ghost43
c7f3f7ac6d
new protocol method: blockchain.transaction.id_from_pos ( #524 )
2018-07-18 08:35:34 +08:00
Neil Booth
60435c0c06
Fix peer discovery for protocol >= 1.4
2018-07-17 22:45:50 +08:00
Neil Booth
c7f6f3ede6
Move get_utxos to session
2018-07-17 22:12:41 +08:00
Neil Booth
c712d4be32
Fix session_count invocation
...
(thanks to nijel)
2018-07-17 20:29:14 +08:00
Neil Booth
a3d3bbe9a7
Move more code out of controller to sessions
...
Disable a test that will require significant work
2018-07-17 20:20:28 +08:00
Neil Booth
0b55a3f7f2
Mark as pre2
2018-07-17 18:23:53 +08:00
Neil Booth
e41d1db25c
Create SessionManager class
...
Break out controller functionality for session management.
2018-07-17 18:14:55 +08:00
Neil Booth
c35c062780
Move more code to session class from controller
2018-07-17 16:47:00 +08:00
Neil Booth
063f1b2eff
Move block_get_header and estimate_fee to session
2018-07-17 14:45:55 +08:00
Neil Booth
ca777ed427
Move three more methods from the controller to session
2018-07-17 11:56:26 +08:00