Neil Booth
cbb1e504cc
Cache headers.
8 years ago
Neil Booth
e40db63beb
Queue requests, which have a process method.
8 years ago
Neil Booth
4e512343be
Fix other JSON bugs introduced in 0.8.5
Further clean up the JSON code.
8 years ago
Shane Moore
e17a9ee2c7
Update RPC client for JSON rework and add missing arg in json_request_text
Fixes #60
8 years ago
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.
8 years ago
Neil Booth
b116040365
Clean up param verification code
8 years ago
Neil Booth
be8adbbcd5
Fix some typos.
8 years ago
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.
8 years ago
Neil Booth
c4e7878407
Add session ID for each session
Show it in the logs with each session-specific message.
Show the sessions ID in the sessions list with an L suffix if logging.
Add RPC commands to toggle logging of, and disconnect, a session.
Closes #55
8 years ago
Neil Booth
3d2824218b
Close stale sessions
New envvar SESSION_TIMEOUT
A session with no activity is cut off after this time
Fixes #56
8 years ago
Neil Booth
625508f5c6
Send no ID for batch request errors
Fixes #54
8 years ago
Neil Booth
a412531ccb
Fix typos in docs
8 years ago
Neil Booth
15a88600eb
Upped read buffer limit to 1m bytes
This accomodates large tx sends of up to 500k bytes.
However they are unlikely to be propogated by your daemon as the
default relay limit it imposes is 100K.
8 years ago
Neil Booth
b65bcda504
Add per-session bandwidth limits
8 years ago
Neil Booth
c9a10be5ba
Introduce incoming buffer size limit
- incoming buffered network requests limited to 150,000 bytes
which I believe is ample for a genuine client
- if exceeded, the connection is dropped
- raise outgoing data limit for RPC connections to 5 MB - expect
sessions calls can be long and connection is implicitly trusted
- similarly raise incoming buffered data limit to 5 MB for RPC
connections
8 years ago
Neil Booth
c6be118bab
Tweak Litecoin settings
8 years ago
Santzi
f1911140ef
Updated Litecoin mainnet parameters
8 years ago
Neil Booth
b2032b0a66
Fix 2 JSON RPC issues
8 years ago
Neil Booth
292073f2c7
Log large requests and reject them
8 years ago
Neil Booth
59733e4609
Move bitcoin-specific coin defaults to Bitcoin
8 years ago
TheLazieR Yip
dfaf36ae16
Remove header_hashes
8 years ago
TheLazieR Yip
6b63ecb439
Add header_hash and header_prevhash class methods
8 years ago
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
8 years ago
Neil Booth
cebf93cdc3
Handle abuse better
- close connections on any encoding error
- if the connection is closing do not process buffered requests
8 years ago
TheLazieR Yip
f075f0bb5f
Add coin's IRC parameters
8 years ago
Neil Booth
11ed1c4cae
Don't log decoding errors any more
The can be frequent.
Close connections once they reach 10 errors.
8 years ago
TheLazieR Yip
5aae539476
Add DEFAULT_RPC_PORT for DASH
8 years ago
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
8 years ago
Neil Booth
3d87e299ea
Move formatted_time to library
8 years ago
Neil Booth
66c493dbf4
Make the default reorg_limit a coin property
8 years ago
Neil Booth
95bb1588ab
Add missing await
8 years ago
Neil Booth
41fb143947
Fix typo
8 years ago
Neil Booth
0c2b4afbdc
Remove a debug log
8 years ago
Neil Booth
9ac4718218
OP_RETURN can be spent inside false conditions
See tx 928ed84cd4c48beb0d3494ccc17cc1e06b1473f9dc118db9bb56972395ede461
8 years ago
Neil Booth
85786b87a2
Save all UTXOs
Change the DB version
8 years ago
Neil Booth
57dd4ece9c
Avoid annoying exception on shutdown
8 years ago
Neil Booth
fdb5b33fba
Prepare 0.4.2
8 years ago
Neil Booth
3b6ab77e47
Break out JSONRPC into own file
- improved handling of JSON 2.0 RPC protocol
- permits batched requests (not yet supported by Electrum client)
8 years ago
TheLazieR Yip
66bf2570e5
Move dash stuff into Dash class
Modify DashTestnet class to use Dash class
8 years ago
TheLazieR Yip
ff834519aa
Update for DASH
- Update information for both mainnet and testnet
- Use x11_hash module when network name is Dash to process header_hashes
8 years ago
Neil Booth
8e6e8329ac
Remove dead code.
Also use native python3 functions to speed up 2 lib functions
8 years ago
Johann Bauer
f6f674577f
Fix RocksDB and LMDB
8 years ago
Neil Booth
e7a516c46e
Need to catch script errors
8 years ago
Neil Booth
e2ef9dceaf
Rework assertion logic in coins.py
8 years ago
Neil Booth
3ab07c1fb6
Speed up script parsing for ~3% faster throughput
Also improves the coin abstraction
8 years ago
Neil Booth
0ff579604c
Speed up tx.py; giving ~ 5% higher tx/s in memory
8 years ago
Neil Booth
6946863879
Add setup.py
Fix electrum_rpc.py
Rename server_main.py to electrumx_server.py
8 years ago
Neil Booth
c0568daec3
Rework the DB API a bit
8 years ago
Neil Booth
be2475f617
Handle utxo.get_address
8 years ago
Neil Booth
ceecdc54ac
Server work
Avoid touching the block preprocessor hot loop for now
8 years ago