Commit Graph

641 Commits

Author SHA1 Message Date
Neil Booth
86f6a148b9 Separate async item processor per session
Improve daemon wait logic

Fixes #100
2017-02-19 19:01:41 +09:00
Neil Booth
f6a60d9b94 Prepare 0.11.4 2017-02-19 10:25:02 +09:00
Neil Booth
0149f2785f A few peer handling improvements
based on suggestions from hsmiths
Set transport to None if a connection is lost
Only subscribe to peers if the peer is verified on same network
2017-02-19 10:21:17 +09:00
Neil Booth
9d6b353eec Fix typo pointed out by hsmiths, thanks 2017-02-18 23:42:24 +09:00
Neil Booth
589f695aaf Prepare 0.11.2 2017-02-18 23:20:07 +09:00
Neil Booth
68a8835db6 Implement script hash subscriptions
Best considered experimental

Closes #124
2017-02-18 23:16:20 +09:00
Neil Booth
eefa86ffbe Remove dead code 2017-02-18 17:03:10 +09:00
Neil Booth
140304460d Remove debug line 2017-02-18 16:23:39 +09:00
Neil Booth
a99e8bf45f Prepare 0.11.1 2017-02-18 16:14:26 +09:00
Neil Booth
f3cdd97ff9 Report unconfirmed parents correctly.
Also, send a notification to the client if the unconfirmed status
of any parent changes.

Fixes #129
2017-02-18 16:10:20 +09:00
Neil Booth
d29c07f0eb Prepare 0.11.0 2017-02-18 13:29:52 +09:00
Neil Booth
790755b630 Reduce upper limit on blocks fetched at once
Testnet is lumpy and 2500 can blow up memory
2017-02-18 13:17:51 +09:00
Neil Booth
3f35bc0298 More PEP8 stuff 2017-02-18 13:05:26 +09:00
Neil Booth
33cdfa4fc8 Merge branch 'nmarley-pep8' into develop 2017-02-18 12:54:01 +09:00
Neil Booth
9bd7b5a9f9 Merge branch 'pep8' of https://github.com/nmarley/electrumx into nmarley-pep8 2017-02-18 12:51:58 +09:00
Neil Booth
151da40d5b Implement peer discovery protocol
Closes #104

DEFAULT_PORTS now a coin property
A Peer object maintains peer information
Revamp LocalRPC "peers" call to show a lot more information
Have lib/jsonrpc.py take care of handling request timeouts
Save and restore peers to a file
Loosen JSON RPC rules so we work with electrum-server and beancurd which don't follow the spec.
Handle incoming server.add_peer requests
Send server.add_peer registrations if peer doesn't have us or correct ports
Verify peers at regular intervals, forget stale peers, verify new peers or those with updated ports
If connecting via one port fails, try the other
Add socks.py for SOCKS4 and SOCKS5 proxying, so Tor servers can now be reached by TCP and SSL
Put full licence boilerplate in lib/ files
Disable IRC advertising on testnet
Serve a Tor banner file if it seems like a connection came from your tor proxy (see ENVIONMENT.rst)
Retry tor proxy hourly, and peers that are about to turn stale
Report more onion peers to a connection that seems to be combing from your tor proxy
Only report good peers to server.peers.subscribe; always report self if valid
Handle peers on the wrong network robustly
Default to 127.0.0.1 rather than localhost for Python <= 3.5.2 compatibility
Put peer name in logs of connections to it
Update docs
2017-02-18 12:43:45 +09:00
Neil Booth
09b2df1179 Prepare 0.10.19 2017-02-16 08:01:45 +09:00
Nathan Marley
a03665696c recommendations from pycodestyle (pep8 style) 2017-02-07 20:12:50 -08:00
Neil Booth
09c4bdc5c3 Prepare 0.10.18 2017-02-06 19:48:54 +09:00
Neil Booth
6db9cb967c Require attributes to be specified for a coin 2017-02-06 19:48:30 +09:00
Neil Booth
13cf80a326 Re-enable bandwidth throttling 2017-02-06 19:29:20 +09:00
Neil Booth
ba45e001fa Prepare 0.10.17 2017-02-05 09:49:46 +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
Neil Booth
184fc615bd Improve clarity about current daemon URL 2017-02-04 10:35:35 +09:00
Neil Booth
2d126f7436 Prepare 0.10.16 2017-01-31 20:09:57 +09:00
Neil Booth
60711956d5 Prepare 0.10.15 2017-01-31 08:17:10 +09:00
Neil Booth
616bcf6bfd Add daemon_url RPC call and document it.
Closes #111
2017-01-31 08:13:25 +09:00
Neil Booth
b23b19473c Sanity check on basic IRC reported settings
Closes #110
2017-01-31 07:58:19 +09:00
Neil Booth
eff5d3d7e4 Force JSONRPCv2
Temporary backwards compat hack for old Coinomi wallets
2017-01-31 07:48:18 +09:00
John L. Jegutanis
fd19bddeb1 fix crash due to a missing env variable in irc.py and a typo fix (#112)
Thank you!
2017-01-30 23:52:56 +09:00
Neil Booth
4a8cec9988 Prepare 0.10.14 2017-01-29 08:29:41 +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
8bc9abf9c1 Prepare 0.10.13 2017-01-25 20:30:02 +09:00
Neil Booth
e56f188816 Implement peer subscriptions
Incremental updates are passed.
Also implement a server.features RPC
2017-01-25 20:28:19 +09:00
Neil Booth
551c04a3bc Remove all uses of "except:" 2017-01-25 20:28:19 +09:00
Neil Booth
76b6899cf2 Try to avoid asyncio log spew on shutdown
Closes #106.
This is a hacky workaround to an issue that needs to be
fixed in Python's asyncio library (where I filed issue 487
on github)
2017-01-25 20:27:33 +09:00
Neil Booth
cb0160901f Unify executor and futures logic 2017-01-24 21:25:37 +09:00
Neil Booth
9b5cb105d5 Prepare 0.10.12 2017-01-24 07:57:29 +09:00
Neil Booth
0ac36aeca0 Make a copy of sessions to loop over 2017-01-24 07:55:52 +09:00
Neil Booth
1a48ad136c Prepare 0.10.11 2017-01-23 23:39:49 +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
Neil Booth
d0d4c0d75f Prepare 0.10.10 2017-01-23 07:28:13 +09:00
Neil Booth
05a6da1920 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
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
112e0a12a9 Prepare 0.10.9 2017-01-18 20:35:24 +09:00
Neil Booth
4729ba2e21 Tweak the shutdown process
Clean it up a bit and make it harder to do wrongly.
2017-01-18 20:28:57 +09:00
Neil Booth
9a8c598fa8 The session needs to handle the version command. 2017-01-18 19:50:26 +09:00
Neil Booth
b03a44ca5a Prepare 0.10.8 2017-01-18 08:04:14 +09:00
Neil Booth
23c4616711 Fix testcase 2017-01-18 08:02:45 +09:00
Neil Booth
0dfdfaba7e Prepare 0.10.7 2017-01-17 08:13:57 +09:00
Neil Booth
f05dd6c2a3 Use snappy compression
Seems to make ~4.5% faster (5281 tx/s -> 5516 tx/s)
Shrinks UTXO DB by ~15% and hist DB by ~5%
2017-01-17 07:59:50 +09:00
Neil Booth
5f9e337457 Improve RocksDB iterator 2017-01-17 07:43:06 +09:00
Neil Booth
5abe4faa8d JSON results are returned with HTTP status 500 2017-01-17 07:23:58 +09:00
Neil Booth
c958b3af49 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
ffb4d4f158 Don't print response; might have auth info 2017-01-16 21:27:30 +09:00
Neil Booth
1a9ac22fa0 Prepare 0.10.6 2017-01-16 21:24:59 +09:00
Neil Booth
65f927122b daemon: properly check for HTTP status codes 2017-01-16 21:22:41 +09:00
Neil Booth
131601a7b2 Rework clean shutdown logic
So that the main block processor future is cancellable.
We wait for the executor and then flush anything unflushed.
Resolves the rest of the second part of #100
2017-01-16 21:22:24 +09:00
Neil Booth
73945c51d1 Prepare 0.10.5 2017-01-16 19:34:17 +09:00
Neil Booth
b01933913f Add traceback for daemon errors 2017-01-16 19:32:22 +09:00
Neil Booth
8d58d2a0e7 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
0845f26ec2 Prepare 0.10.4 2017-01-12 22:45:28 +09:00
Neil Booth
9e6de7a554 Merge branch 'json-named-args' into develop 2017-01-12 22:41:18 +09:00
Neil Booth
d2da494120 Clarify README; no need to resync.
Update HOWTO and docs
2017-01-12 22:40:21 +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
5784412393 Write out undo info with the UTXO flushes
Cleaner and slightly more efficient.
Closes #101
2017-01-09 18:58:39 +09:00
Neil Booth
a8a82224e7 Prepare 0.10.3 2017-01-09 17:19:15 +09:00
Neil Booth
2ad64f6243 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
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
89209632ae Clean up daemon.py 2017-01-08 18:48:32 +09:00
Neil Booth
4bd474bf57 Prepare 0.10.2 2017-01-08 10:07:58 +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
7392306e68 Prepare 0.10.1 2017-01-07 15:25:22 +09:00
Neil Booth
18af57059f Improve group handling.
I believe this fixes #94
2017-01-07 15:21:45 +09:00
Neil Booth
fe70a6db30 Prepare 0.10.0 2017-01-07 11:54:52 +09:00
Neil Booth
91ca5fc14a Split out history into its own DB. 2017-01-07 11:51:12 +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
427183ae01 Place metadata files in meta/, db in db/ 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
0f43ce564a Fix log message 2017-01-07 11:51:00 +09:00
Neil Booth
4b0ba2fcd3 Prepare 0.9.22
Documentation updates only
2017-01-03 17:08:55 +09:00
Neil Booth
7d899e07ae Fix version 2017-01-02 20:12:08 +09:00
Neil Booth
533c97a575 Clean up DB open handling
Closes #89
2017-01-02 18:11:17 +09:00
Neil Booth
ddfefd7f36 Prepare 0.9.20 2017-01-02 17:38:01 +09:00
Neil Booth
517f78858c Fix IRC flood issues
Tweaked version of suggestions from Valesi, petrkr, and bauerj.
Fixes #93
2017-01-02 17:30:32 +09:00
Neil Booth
5cbe878cb8 Move ServerManager to controller.py
rename Controller
2017-01-02 17:30:32 +09:00
Neil Booth
67908b3541 Slightly cleaner semaphore fix 2017-01-02 17:30:32 +09:00
shsmith
62eded55bb move sleep outside semaphore (issue 88) 2016-12-26 09:15:22 -08:00
Neil Booth
b1e8012b56 Prepare 0.9.18 2016-12-22 06:37:04 +09:00
Neil Booth
a81b8917d8 Logging tweaks 2016-12-21 21:15:48 +09:00
Neil Booth
d45e174e03 Prepare 0.9.17 2016-12-21 20:33:09 +09:00
Neil Booth
4c4cd92c54 Banner: add $DONATION_ADDRESS meta variable
Replaced with the DONATION_ADDRESS environment variable
2016-12-21 20:31:42 +09:00
Neil Booth
7a3b0830e1 Make all storage use fsync
Hopefully costs little and increases robustness.
Closes #75
2016-12-21 20:30:56 +09:00
Neil Booth
99d8cbfbf6 Permit RPC requests up to 1MB
Fixes #85

Prepare 0.9.16
2016-12-21 19:47:27 +09:00
Neil Booth
622f61e943 Don't do an initial sessions log 2016-12-21 19:47:26 +09:00
Neil Booth
50f02747de Throttle abusive logging 2016-12-21 19:47:25 +09:00
Neil Booth
01c2fad534 Log paused or low-priority sessions on exit 2016-12-21 07:28:32 +09:00
Neil Booth
6a6bbaa07b Tweak mempool logging 2016-12-21 07:28:32 +09:00
Neil Booth
a9b1bc16dd Prepare 0.9.15 2016-12-20 06:54:06 +09:00
Neil Booth
efe3ebd9ee Remove None from touched when backing up.
Fixes #84
2016-12-20 06:50:55 +09:00
Neil Booth
8b87a837b8 Prepare 0.9.14 2016-12-19 23:28:14 +09:00
Neil Booth
e91f49101b Don't start processing mempool until caught up
Print server manager settings once servers start
2016-12-19 23:25:37 +09:00
Neil Booth
7b8119d787 Prepare 0.9.13 2016-12-18 23:21:22 +09:00
Neil Booth
813d8ee7e3 Reduce logging verbosity for delayed requests
Only log when the delay changes
2016-12-18 23:17:03 +09:00
Neil Booth
6c7cf34bcd Prepare 0.9.12 2016-12-18 08:15:53 +09:00
Neil Booth
0dccb795dc Add pid to RPC getinfo
Closes #77
2016-12-18 08:13:17 +09:00
Neil Booth
3cf23c88bd Start up RPC server immediately
Don't wait for catch-up
Closes #78
2016-12-18 08:10:20 +09:00
Neil Booth
6679eea04c getinfo RPC: change height reporting
Also rename watched to subs
Closes #80
2016-12-18 07:57:48 +09:00
Neil Booth
ef54413054 Prepare 0.9.11 2016-12-18 00:02:16 +09:00
Neil Booth
645e60eaee Put peer at RHS of sessions log.
Then IPv6 addresses don't mess up the formatting.
2016-12-18 00:02:16 +09:00
Neil Booth
0665e1ac5c Clear the touched addresses if not caught up 2016-12-18 00:02:16 +09:00
Neil Booth
39af7a7463 Rework main block processor loop
It's less awkward and more explicit.
This brings back the efficiency lost in the 0.9.x series.
It also removes the special case hack: both when syncing and
caught up, block processing is done in the executor.

Fixes #58
2016-12-17 21:45:44 +09:00
Neil Booth
3f64a8dd6e Log block processing time only if not syncing
Prepare 0.9.10
2016-12-17 15:31:30 +09:00
Neil Booth
1ebebf08d9 Improve logging 2016-12-17 15:26:17 +09:00
Neil Booth
a30932fc86 Fix namespace of RPCError
Fixes #76
2016-12-17 14:43:27 +09:00
Neil Booth
35f07bd01e Prepare 0.9.9 2016-12-15 17:24:16 +09:00
Neil Booth
49714a45e6 Mempool tx processing to handle DBError
Fixes #74
2016-12-15 17:22:20 +09:00
Neil Booth
5c80b96d0f Prioritize mempool processing of sent txs
Closes #73
2016-12-15 17:22:19 +09:00
Neil Booth
ac48695db8 daemon: getting height optionally gets mempool
Improve daemon startup log message
2016-12-15 15:38:22 +09:00
Neil Booth
5fe49bb261 Synchronize daemon height and mempool fetching
Cleanup and simplify touched handling and its event, which is
now controlled and owned by the mempool.
The daemon object owns the set of current mempool hashes.
Clean up and simplify the mempool main loop.

Fixes #70.
2016-12-15 12:08:14 +09:00
Neil Booth
e88ea91e89 Defer address notifications whilst processing a block
Partial fix of #70
2016-12-15 12:08:14 +09:00
Neil Booth
1b2a0bd761 Append first. 2016-12-15 12:08:14 +09:00
Neil Booth
bffdfcc47f Prepare 0.9.7 2016-12-15 08:28:57 +09:00
Neil Booth
9972379533 Get history and UTXOs in executor for minimal latency. 2016-12-14 19:28:43 +09:00
Neil Booth
1c79a2d47e Fix delayed sessions issue for good 2016-12-14 06:07:37 +09:00
Neil Booth
ba862343b4 Fix issue for paused connections
Prepare 0.9.5
2016-12-14 00:07:26 +09:00
Neil Booth
ef65f9f281 Prepare 0.9.4 2016-12-13 22:52:00 +09:00
Neil Booth
e2f4847632 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
067814e7d9 Remove numpeers and numsessions RPC calls
getinfo has that information and more.
2016-12-13 21:38:02 +09:00
Neil Booth
aaaa914cfa Tweak some constants to reduce group count 2016-12-13 20:09:40 +09:00
Neil Booth
444122122e Fix unconfirmed flag
Prepare 0.9.3
2016-12-12 08:21:55 +09:00
Neil Booth
bb17af1906 Fix mempool busy waiting
Prepare 0.9.2
2016-12-12 07:38:40 +09:00
Neil Booth
7037769598 Prepare 0.9.1 2016-12-12 07:25:22 +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
d36925d459 Prepare 0.9.0a 2016-12-12 00:44:04 +09:00
Neil Booth
f1ea36126c Fix typo 2016-12-12 00:42:57 +09:00
Neil Booth
72ae3eabfc Prepare 0.9.0 2016-12-12 00:11:48 +09:00
Neil Booth
1ef6a4d785 Split mempool out into new file.
Rework mempool handling
2016-12-12 00:05:42 +09:00
Neil Booth
ed3db731c2 Prepare 0.8.12 2016-12-10 18:06:14 +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
b3b3f047c2 Better columns 2016-12-10 18:06:13 +09:00
Neil Booth
cfb92a139f Prefer transport.abort() 2016-12-10 13:52:05 +09:00
Neil Booth
89d83349e1 Prepare 0.8.11 2016-12-10 11:08:44 +09:00
Neil Booth
d1e314a48b Show group session count in the groups RPC call 2016-12-10 11:05:57 +09:00
Neil Booth
c181f8df82 Put a try/except around socket.shutdown 2016-12-10 10:43:01 +09:00
Neil Booth
97d1397f2c Prepare 0.8.10 2016-12-10 09:08:28 +09:00
Neil Booth
6fcb8b0574 Fix cut-n-pasteo 2016-12-10 09:07:08 +09:00
Neil Booth
c9035795c7 Prepare 0.8.9 2016-12-10 08:56:05 +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
b8239c54d9 Catch UnicodeError in IRC gethostbyname
Fixes #68
2016-12-10 08:52:24 +09:00
Neil Booth
c523064632 Improve RPC groups call
Show columns correctly for RPC sessions call
2016-12-10 08:52:23 +09:00
Neil Booth
e5bda647df Update version 2016-12-09 22:41:26 +09:00
Neil Booth
9bdad7ad66 Fix column ordering. 2016-12-09 22:40:36 +09:00
Neil Booth
5f73fa02a3 Prepare 0.8.8 2016-12-09 22:10:59 +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
21d1825f09 Prepare 0.8.7 2016-12-09 07:41:24 +09:00
Neil Booth
7399452294 Temporary hack to fix initial sync slowdown 2016-12-08 22:47:29 +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
2d411ab20a Prepare 0.8.6 2016-12-07 19:46:45 +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
Neil Booth
b9f28ba9dc Prepare 0.8.5 2016-12-07 08:16:23 +09:00
Neil Booth
b2e4d32de6 Remove special-casing of all_seeing_eye 2016-12-07 08:11:30 +09: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
36a06ea2c2 Prepare 0.8.4 2016-12-06 06:40:19 +09:00
Neil Booth
1f1f0f42f8 Remove invalidated history cache on notifications 2016-12-06 06:36:11 +09:00
Neil Booth
643c990684 Revert "Add feature to rate limit connections"
This reverts commit a82ab0b075.
2016-12-05 23:27:36 +09:00
Neil Booth
be8adbbcd5 Fix some typos. 2016-12-04 23:41:07 +09:00
Neil Booth
a82ab0b075 Add feature to rate limit connections 2016-12-04 21:14:45 +09:00
Neil Booth
3f88bc1ab9 Prepare 0.8.3 2016-12-04 12:04:38 +09:00
Neil Booth
79a9e91994 Handle closing sessions a little differently
Move connection type to first flag letter.

All seeing eye is not stale.
2016-12-04 11:57:25 +09:00
Neil Booth
fcf696d3f3 Don't require 2 params for version requests 2016-12-04 10:54:22 +09:00
Neil Booth
9456b75a91 Prepare 0.8.2 2016-12-03 23:39:46 +09:00
Neil Booth
238b9e0285 Process blocks in the executor
This should eliminate latency when new blocks come in
and prevent sessions being dropped whilst they are processed.
2016-12-03 23:32:20 +09:00
Neil Booth
26de3f0261 Prepare 0.8.1 2016-12-03 20:24:53 +09:00
Neil Booth
656f749c70 Add LRU cache for history 2016-12-03 20:20:28 +09:00
Neil Booth
556574640f IRC encoding fix 2016-12-03 20:19:58 +09:00
Neil Booth
04369dd228 Forcefully drop stale sessions or if shutting down
Don't wait for the socket
2016-12-03 18:33:23 +09:00
Neil Booth
aaf0592f52 Fix typo 2016-12-03 15:10:57 +09:00
Neil Booth
33b1ce8f6d Prepare 0.8.0 2016-12-03 14:39:36 +09:00
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
7e3ca6926d Prepare 0.7.20 2016-12-03 11:06:52 +09:00
Neil Booth
c16792fb89 Only wait 30 secsonds on shutdown 2016-12-03 11:03:27 +09:00
Neil Booth
f1e0676a47 Prepare 0.7.19 2016-12-02 18:44:36 +09:00
Neil Booth
62a531b1d0 Revert "Fix ref leak in mempool updates"
This reverts commit 6c95644ae0.
2016-12-02 18:43:15 +09:00
Neil Booth
35f118edc6 Prepare 0.7.18 2016-12-02 07:49:35 +09:00
Neil Booth
7a9e8c7fef Small tweaks to IRC code 2016-12-02 07:45:51 +09:00
Neil
9f90ae049e Merge pull request #53 from valesi/tor
Add IRC option to publish Tor address
2016-12-02 07:33:29 +09:00
Neil Booth
6c95644ae0 Fix ref leak in mempool updates 2016-12-02 07:22:30 +09:00
Shane Moore
0edff0056d Add Tor-specific port options for IRC 2016-12-01 03:21:52 -08:00
Shane Moore
33c5bd65aa Fix IRC port bug, more readable 2016-12-01 02:25:21 -08:00