Commit Graph

57 Commits

Author SHA1 Message Date
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
2016-12-03 14:32:09 +09:00
Neil Booth
3d2824218b Close stale sessions
New envvar SESSION_TIMEOUT
A session with no activity is cut off after this time
Fixes #56
2016-12-03 13:06:20 +09:00
Neil Booth
625508f5c6 Send no ID for batch request errors
Fixes #54
2016-12-03 10:56:55 +09:00
Neil Booth
a412531ccb Fix typos in docs 2016-11-30 21:06:25 +09:00
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.
2016-11-30 07:26:34 +09:00
Neil Booth
b65bcda504 Add per-session bandwidth limits 2016-11-29 22:19:12 +09:00
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
2016-11-29 20:24:58 +09:00
Neil Booth
c6be118bab Tweak Litecoin settings 2016-11-29 07:28:09 +09:00
Santzi
f1911140ef Updated Litecoin mainnet parameters 2016-11-27 19:13:38 +02:00
Neil Booth
b2032b0a66 Fix 2 JSON RPC issues 2016-11-27 21:54:05 +09:00
Neil Booth
292073f2c7 Log large requests and reject them 2016-11-26 09:32:29 +09:00
Neil Booth
59733e4609 Move bitcoin-specific coin defaults to Bitcoin 2016-11-26 08:32:30 +09:00
TheLazieR Yip
dfaf36ae16 Remove header_hashes 2016-11-25 07:25:57 -05:00
TheLazieR Yip
6b63ecb439 Add header_hash and header_prevhash class methods 2016-11-25 07:25:56 -05:00
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
2016-11-25 21:19:43 +09:00
Neil Booth
cebf93cdc3 Handle abuse better
- close connections on any encoding error
- if the connection is closing do not process buffered requests
2016-11-23 11:52:17 +09:00
TheLazieR Yip
f075f0bb5f Add coin's IRC parameters 2016-11-23 08:15:03 +07:00
Neil Booth
11ed1c4cae Don't log decoding errors any more
The can be frequent.
Close connections once they reach 10 errors.
2016-11-22 06:45:22 +09:00
TheLazieR Yip
5aae539476 Add DEFAULT_RPC_PORT for DASH 2016-11-20 19:11:22 +07:00
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
2016-11-20 20:52:54 +09:00
Neil Booth
3d87e299ea Move formatted_time to library 2016-11-19 15:42:06 +09:00
Neil Booth
66c493dbf4 Make the default reorg_limit a coin property 2016-11-18 19:21:38 +09:00
Neil Booth
95bb1588ab Add missing await 2016-11-14 19:15:36 +09:00
Neil Booth
41fb143947 Fix typo 2016-11-13 23:18:04 +09:00
Neil Booth
0c2b4afbdc Remove a debug log 2016-11-13 22:40:26 +09:00
Neil Booth
9ac4718218 OP_RETURN can be spent inside false conditions
See tx 928ed84cd4c48beb0d3494ccc17cc1e06b1473f9dc118db9bb56972395ede461
2016-11-13 21:55:18 +09:00
Neil Booth
85786b87a2 Save all UTXOs
Change the DB version
2016-11-13 20:35:03 +09:00
Neil Booth
57dd4ece9c Avoid annoying exception on shutdown 2016-11-13 17:52:08 +09:00
Neil Booth
fdb5b33fba Prepare 0.4.2 2016-11-13 15:37:51 +09:00
Neil Booth
ecb70fcef9 Merge remote-tracking branch 'github/master' into release-0.4.2 2016-11-13 15:31:54 +09:00
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)
2016-11-13 13:39:37 +09:00
TheLazieR Yip
66bf2570e5 Move dash stuff into Dash class
Modify DashTestnet class to use Dash class
2016-11-13 08:56:26 +07:00
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
2016-11-13 00:51:53 +07:00
Neil Booth
8e6e8329ac Remove dead code.
Also use native python3 functions to speed up 2 lib functions
2016-11-08 19:14:52 +09:00
Neil Booth
9acd91615c Merge remote-tracking branch 'github/master' into release-0.2.1
Include's bauerj's storage.py improvements.
2016-11-07 23:11:34 +09:00
Johann Bauer
f6f674577f Fix RocksDB and LMDB 2016-11-06 18:16:43 +01:00
Neil Booth
e7a516c46e Need to catch script errors 2016-11-06 16:01:02 +09:00
Neil Booth
e2ef9dceaf Rework assertion logic in coins.py 2016-11-06 15:34:20 +09:00
Neil Booth
3ab07c1fb6 Speed up script parsing for ~3% faster throughput
Also improves the coin abstraction
2016-11-06 14:32:27 +09:00
Neil Booth
0ff579604c Speed up tx.py; giving ~ 5% higher tx/s in memory 2016-11-06 12:07:53 +09:00
Neil Booth
6946863879 Add setup.py
Fix electrum_rpc.py
Rename server_main.py to electrumx_server.py
2016-11-05 18:00:03 +09:00
Neil Booth
c0568daec3 Rework the DB API a bit 2016-11-03 19:09:21 +09:00
Neil Booth
be2475f617 Handle utxo.get_address 2016-11-03 19:08:25 +09:00
Neil Booth
ceecdc54ac Server work
Avoid touching the block preprocessor hot loop for now
2016-11-03 17:26:50 +09:00
Neil Booth
d2ebb80fac Extend copyright notice; improve comments 2016-11-03 16:45:06 +09:00
Neil Booth
2b45698962 Remove Outpoint as a separate object
Hopefully this is a little more efficient
2016-10-28 07:35:18 +09:00
Neil Booth
30d1b7f77c Add proper block chaining check 2016-10-27 07:38:39 +09:00
Neil Booth
6ad8c16c47 Handle a couple more requests. 2016-10-27 07:25:34 +09:00
Neil Booth
334ffdaa4f Begin work on proper server 2016-10-17 20:02:42 +09:00
Neil Booth
965b15023e Update notes / comments 2016-10-15 14:45:32 +09:00