Commit Graph

1391 Commits

Author SHA1 Message Date
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
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