Neil Booth
c46a38f87f
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
Neil Booth
7e3ff4417a
Move peer management to peers.py from irc
...
It's cleaner and will be useful for peer-to-peer comms later
2017-01-22 23:34:44 +09:00
Neil Booth
e93eff43d3
Remove LMDB
...
Performance of history writes was very poor even with
the code rewritten to accommodate the environment concept
(see db_abstraction branch)
2017-01-16 22:03:45 +09:00
Neil Booth
3d8fde48b1
Update docs
2017-01-16 19:32:22 +09:00
Neil Booth
655c875c03
Clean up shutdown logic and logging
...
Add RPC "stop" command, and document it.
Fixes the 2nd part of #100
2017-01-16 19:31:57 +09:00
Neil Booth
d533b00eed
Merge branch 'json-named-args' into develop
2017-01-12 22:41:18 +09:00
Neil Booth
430c2dafb6
Clarify README; no need to resync.
...
Update HOWTO and docs
2017-01-12 22:40:21 +09:00
Neil Booth
64aec8c97c
Update docs
2017-01-11 19:39:36 +09:00
Neil Booth
7a418a5ebc
Update HOWTO
2017-01-11 19:39:35 +09:00
Neil Booth
c38d33ac4c
Add an RPC call to force a reorg at run-time
...
This required a large rework block processor and prefetcher
interaction, and led to various cleanups
Closes #103
2017-01-09 17:14:06 +09:00
Neil Booth
2c1ae050cc
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
ef09936cdc
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
b704f12c5b
Split out history into its own DB.
2017-01-07 11:51:12 +09:00
Neil Booth
6ff69cf60c
Fix log message
2017-01-07 11:51:00 +09:00
Neil Booth
2c6d79989e
Tweak documentation for clarity
2017-01-07 11:51:00 +09:00
Neil Booth
badd68b5f5
Update the ARCHITECTURE document
...
Also has a pretty line diagram
2017-01-03 17:05:39 +09:00
Neil Booth
8a07e66265
Move ENV-NOTES to ENVIRONMENT.rst
...
Improve environment documentation
2017-01-03 14:18:59 +09:00
Neil Booth
81f6e9ee18
Explain what logging a session means
2017-01-03 09:18:30 +09:00
Neil Booth
11061bb6e4
Add documentation of the RPC interface
2017-01-02 19:29:19 +09:00
Neil Booth
1eb245f74c
New env var MAX_SESSIONS
...
When the number of sessions reaches MAX_SESSIONS, which defaults
to 1,000, turn off TCP and SSL listening sockets to prevent new
connections. When the session count falls below a low watermark,
currently 90% of MAX_SESSIONS, the listening sockets will be re-opened.
Helps prevent DoS and limit open file usage.
Bug fix: do not start serving paused connections until the buffer
socket is sufficiently drained. Also, loop.
2016-12-13 22:47:03 +09:00
Neil Booth
aa8a146668
Fix cut-n-pasteo
2016-12-10 09:07:08 +09:00
Neil Booth
dddc4d9a77
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
a2a98e3428
Revert "Add feature to rate limit connections"
...
This reverts commit a82ab0b07577c624031e725ce780d4bcb77c30b9.
2016-12-05 23:27:36 +09:00
Neil Booth
61917c2686
Add feature to rate limit connections
2016-12-04 21:14:45 +09:00
Neil Booth
08928ca6d2
Prepare 0.8.1
2016-12-03 20:24:53 +09:00
Neil Booth
36b71afb84
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
Shane Moore
19715818ba
Add Tor-specific port options for IRC
2016-12-01 03:21:52 -08:00
Shane Moore
39bc03dc72
Add IRC option to publish Tor address
2016-11-30 23:50:20 -08:00
Neil Booth
6e70672961
Prepare 0.7.14
2016-11-29 22:22:07 +09:00
Neil Booth
68b267a9d1
Add session logging facility
...
Move session logging code to protocol.py from electrum_rpc.py
Use it for periodic logging controlled by envvar LOG_SESSIONS
For each session, track sent transaction stats and show that
per-session instead of errors
2016-11-29 08:00:54 +09:00
Neil Booth
bf4dea7fd7
Replace $VERSION in the banner file
...
with the ElectrumX version string
2016-11-26 18:19:53 +09:00
Neil Booth
569aafe59b
Bump default value of MAX_SEND to 1m bytes.
...
Otherwise historic large txs could not be served to clients.
2016-11-26 15:22:42 +09:00
Neil Booth
232575f906
Tweak ENV-NOTES
2016-11-26 10:13:19 +09:00
Neil Booth
d8e96730ea
Prepare release-0.7.10
2016-11-26 09:53:47 +09:00
Neil Booth
ce642c7b83
Log large requests and reject them
2016-11-26 09:32:29 +09:00
Neil Booth
e53f9d7d1f
Prepare 0.7.9
2016-11-25 21:23:14 +09:00
Neil Booth
2d5bb6b981
Prepare release 0.7.8
2016-11-25 08:10:53 +09:00
Neil Booth
9d32506477
Prepare 0.7.7
2016-11-24 23:42:49 +09:00
Neil Booth
ce569a3aa7
Introduce MAX_HIST environment variable.
2016-11-24 23:30:40 +09:00
Neil Booth
4629aa2c1e
Prepare 0.7.6
2016-11-23 22:52:23 +09:00
Neil Booth
6372e93bc1
Prepare 0.7.5
2016-11-23 17:59:18 +09:00
Neil Booth
7de6a10bdb
Merge branch 'release-0.7.4'
2016-11-23 09:56:15 +09:00
Neil Booth
405d9f36e7
Prepare 0.7.4
2016-11-23 09:55:54 +09:00
Neil Booth
fdfdd850f1
Add feature to simulate reorgs for debugging
2016-11-23 09:52:30 +09:00
Neil Booth
42ad7ebfb7
Merge branch 'release-0.7.3'
2016-11-22 08:11:59 +09:00
Neil Booth
597520bfcb
Prepare 0.7.3
2016-11-22 08:11:05 +09:00
Neil Booth
eb09fe29ca
Update REL-NOTES
2016-11-22 07:06:40 +09:00
Neil Booth
5030c24fac
Update REL-NOTES
2016-11-22 07:06:00 +09:00
cluelessperson
657d496919
Reorganization of init systems files, adding systemd sample config
2016-11-20 08:51:27 -06:00
Neil Booth
90fd610771
Prepare 0.7.1
2016-11-20 22:03:04 +09:00