Neil Booth
251dca4da9
Update match groups
2017-02-17 21:42:34 +09:00
Neil Booth
4dcd7f25a5
Further fix regex for hex chars
2017-02-17 07:59:49 +09:00
Neil Booth
82d57dc90f
Accept IPv6 addresses in DAEMON_URL
...
Fixes #126
2017-02-16 08:00:08 +09:00
Neil Booth
6db9cb967c
Require attributes to be specified for a coin
2017-02-06 19:48:30 +09:00
shsmith
169f5df91f
update hostnames ( #120 )
2017-02-06 07:28:52 +09:00
Neil Booth
f1251766b6
Merge branch 'master' of github.com:kyuupichan/electrumx
2017-02-05 09:50:29 +09:00
Neil Booth
1856cbe6c0
Coin fixes/cleanup (erasmospunk)
...
2 out of 3 from #118
2017-02-05 09:41:27 +09:00
Neil Booth
a019fde853
Show uptime in RPC getinfo result
2017-02-04 10:35:36 +09:00
TheLazieR Yip
0e51c80156
Add PEERS for DASH ( #117 )
...
* Add PEERS for DASH
* Update PEER_DEFAULT_PORTS for DASH Testnet
2017-02-02 11:32:38 +09:00
Neil Booth
97557fa437
Don't send batches for now
2017-01-31 20:05:40 +09:00
Neil Booth
06c8eda161
Preparations for peer discovery
...
DEFAULT_PORTS is a now a coin property.
Other miscellaneous updates to get things closer
2017-01-29 06:47:43 +09:00
Neil Booth
f43c08d979
Log fatal messages once only
2017-01-29 06:08:29 +09:00
Neil Booth
e4c206e123
Namespace fix
2017-01-25 20:38:28 +09:00
Neil Booth
551c04a3bc
Remove all uses of "except:"
2017-01-25 20:28:19 +09:00
Neil Booth
a7462a6ea3
Complete rewrite of JSON RPC infrastructure
...
Aim to be easier for clients to use, because to do peer
discovery we must act as a client to other servers.
Split out JSON session concept from the asyncio protocol
concept. This makes the JSON RPC support more easily
testable and usable as a stand-alone library.
In addition, support JSON RPC v1 and v2, and auto-detection
of peer's version.
2017-01-23 23:36:02 +09:00
Petr Kracík
5343c1a286
Changed litecoin genesis block hash ( #109 )
2017-01-22 23:41:45 +09:00
Neil Booth
ed0646efbf
Tidy up request and notification sending
2017-01-20 20:04:56 +09:00
Neil Booth
766da5ed79
Don't maintain a sub_count in controller
...
Just do a tally occasionally.
It's too tricky to keep it accurate as it double-counts resubscribing to
the same address, for example
2017-01-20 08:09:33 +09:00
Neil Booth
5f9e337457
Improve RocksDB iterator
2017-01-17 07:43:06 +09:00
Neil Booth
4eed43accb
Add named-argument handling as per JSON RPC 2.0
...
This involved a rewrite of the JSON RPC layer.
I took the opportunity to clean up the handling of requests
in general. It should now be easy to return nice help from
the docstrings.
Closes issue #99
2017-01-12 07:59:21 +09:00
Neil Booth
15051124af
Make flushes and reorgs async
...
Apart from the flush on shutdown and the flush when caught up,
neither of which matter, this makes flushes asynchronous.
Also, block processing for reorgs is now asynchronous.
This also removes the FORCE_REORG debug envvar; I want to
put that into the RPC interface.
Closes #102
2017-01-09 16:15:17 +09:00
Neil Booth
540479ad23
Tweaks for prior; update README.
2017-01-08 12:10:56 +09:00
protonn
1aa55f2976
add digibyte and argentum ( #96 )
...
* add DigiByte and Argentum
2017-01-08 12:00:41 +09:00
Neil Booth
dcc2c92bd6
Rename NETWORK envvar to NET
...
For consistency with lib/coins.py
SegWit testnet needs its own NET
2017-01-08 10:07:58 +09:00
Neil Booth
4d62019b07
Check Genesis hash
...
Testnet RPC_PORT is 18332
2017-01-08 10:07:57 +09:00
Neil Booth
852753cb94
Implement deserialization of SegWit transactions
...
tx_hash needs to be that of the prior serialization, so
need to change internal read_block API.
Bitcoin core 0.13.1 broke backwards compat of the RPC interface.
Closes #92
2017-01-08 10:07:57 +09:00
Neil Booth
7f9cb9cd9d
Generic header length
...
If header lengths change in the future, only one function needs
to change in coins.py.
2017-01-07 11:51:12 +09:00
Neil Booth
c8c4199503
New VirtualFile abstraction
...
Use for headers, tx counts and tx hashes.
2017-01-07 11:51:11 +09:00
Neil Booth
2b2909f1c4
Move to hashX
...
The hashX of a script is the first 11 bytes of its sha256 hash.
Closes #72 .
2017-01-07 11:51:01 +09:00
Neil Booth
de201a247f
Double fetch size of mempool.
...
Set testnet genesis hash.
2017-01-07 11:51:01 +09:00
Neil Booth
8bd2e7ee06
Add constants for bitcoin testnet
2017-01-07 11:51:01 +09:00
Neil Booth
50f02747de
Throttle abusive logging
2016-12-21 19:47:25 +09:00
Neil Booth
378372e666
Logs: show IPv6 address + port correctly
...
Closes #79
2016-12-18 08:07:28 +09:00
Neil Booth
1ebebf08d9
Improve logging
2016-12-17 15:26:17 +09:00
Neil Booth
f600d3bd87
Fix a couple of issues with 0.9.0
...
Fixes #69
2016-12-12 07:24:00 +09:00
Neil Booth
1ef6a4d785
Split mempool out into new file.
...
Rework mempool handling
2016-12-12 00:05:42 +09:00
Neil Booth
263e88ad57
Tweak request handling
...
Pause serving sessions whose socket buffer is full (anti-DoS)
Serve requests in batches of 8
Don't store the session in the request
RPC has priority 0; every other session at least 1
Periodically consolidate small session groups into 1
2016-12-10 18:06:13 +09:00
Neil Booth
cfb92a139f
Prefer transport.abort()
2016-12-10 13:52:05 +09:00
Neil Booth
c6093639b5
Don't set socket timeout
2016-12-10 13:39:46 +09:00
Neil Booth
99d7e65de8
Give sockets a grace period to close
...
Defaults to 15 seconds for now.
Update docs on systemd and process limits.
Fixes #62
2016-12-10 08:52:24 +09:00
Neil Booth
2a461bd98c
Serve sessions in a priority queue.
...
Add new RPC command requests.
Adjust sessions RPC command to show pending requests.
Only keep first 15 chars in version string.
Set socket timeout
Try more forceful closing of socket
Fixes #67
2016-12-09 22:06:04 +09:00
Neil Booth
1a9e8cdcd4
More work
2016-12-09 08:06:03 +09:00
Neil Booth
cbb1e504cc
Cache headers.
2016-12-08 06:31:15 +09:00
Neil Booth
e40db63beb
Queue requests, which have a process method.
2016-12-08 00:29:46 +09:00
Neil Booth
4e512343be
Fix other JSON bugs introduced in 0.8.5
...
Further clean up the JSON code.
2016-12-07 19:44:36 +09:00
Shane Moore
e17a9ee2c7
Update RPC client for JSON rework and add missing arg in json_request_text
...
Fixes #60
2016-12-07 00:25:43 -08:00
Neil Booth
f904ce2f5d
Rework the JSON layer
...
Batch requests are now processed and encoded incrementally.
Their bandwidth usage is also incrementally added, and so overlarge
responses are rejected as soon as they become too large.
JSON text is also more memory efficient than the python data
structures they represent.
2016-12-07 08:11:30 +09:00
Neil Booth
b116040365
Clean up param verification code
2016-12-07 08:11:29 +09:00
Neil Booth
be8adbbcd5
Fix some typos.
2016-12-04 23:41:07 +09:00
Neil Booth
ab9d9f7c07
Reduce bandwith usage over the bandwith interval
...
So if e.g. your limit is 10MB per hour, then every minute
your cumulative usage will be reduced by 1/6MB.
2016-12-03 23:32:20 +09:00