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