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
b2032b0a66
Fix 2 JSON RPC issues
8 years ago
Neil Booth
292073f2c7
Log large requests and reject them
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
Neil Booth
11ed1c4cae
Don't log decoding errors any more
The can be frequent.
Close connections once they reach 10 errors.
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
57dd4ece9c
Avoid annoying exception on shutdown
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