333 Commits

Author SHA1 Message Date
ThomasV f5f76e4645 New protocol: (#330)
- add method mempool.get_fee_histogram
- bump protocol version to 1.2
2018-01-20 08:51:38 -04:00
Neil Booth cae0f0549b Update docs about when incoming connections are served 2017-12-05 12:45:32 +09:00
Neil Booth 265119cce8 Add a note about shsmith's banner updater script 2017-11-27 16:42:37 +09:00
Neil Booth 21c8251f75 Remove IRC support 2017-11-27 15:05:42 +09:00
Neil Booth 6c133b5fea Require Python 3.6 2017-10-14 11:51:11 +09:00
Neil Booth 1180e5d4c3 Enhance PEER_DISCOVERY environment variable
It is now tri-state - ON, OFF or SELF.

Fixes #287
2017-10-11 13:54:13 +09:00
SomberNight 5afc0db705 typos in docs/ENVIRONMENT.rst (#278) 2017-10-03 21:45:28 +08:00
Neil Booth 1ff3e4b9d1 Update protocol docs for "height".
Closes #269
2017-09-21 18:27:11 +08:00
Luke Childs e4442c2149 Add ALLOW_ROOT option (#268)
* Add ALLOW_ROOT option

* Document ALLOW_ROOT option

* Update controller.py

* Update ENVIRONMENT.rst
2017-09-20 08:14:06 +08:00
Neil Booth 514f77dbc5 Minor environment variable improvements
- COIN and NET strip surrounding whitespace
- new environment variable RPC_HOST, similar to HOST, but
  for RPC.  Permits fine-grained control of which addresses
  the RPC server listens on.
- HOST and RPC_HOST strip surrounding whitespace from hostnames
  and IP addresses
- tests and documentation updated to match
2017-09-09 22:00:54 +09:00
Justin Turner Arthur c5764c1a1c Minor optimizations to Bitcoin tx processing (#214)
* Construct unpacking functions for byte format up front to save time
wasted on parsing format string every iteration.

* Store length ahead of time as the overhead adds up.

* Reduce object attribute lookups in hash functions.

* Clean up lib pkg API changes. Unit test new "public" API members.
Underscore prefix for internal hash module funcs. Make bytes.fromhex a
public function.

* Document recent performance findings.
2017-09-09 11:06:46 +07:00
Neil Booth 7ed3dae46a Stop persisting peers; resdiscover on restart 2017-09-08 17:39:48 +09:00
Neil Booth 8376005fd0 Remove exception for onion peers
Like clearnet peers, they are only returned in server.peers.subscribe
if there was a successful connection.
2017-09-08 17:31:46 +09:00
Neil Booth b196a1bdb9 Fix doc typos 2017-09-08 10:21:46 +09:00
Neil Booth cd56caa9af Doc updates 2017-09-07 17:00:39 +09:00
Neil Booth c3ce3f36ff Make COIN env variable mandatory.
- make a clean split between the  Cash and Segwit flavours of bitcoin
  by giving them their own COIN names.  They can then both have a NET
  of mainnet.
- The previous Bitcoin COIN names no longer exist, and the env var is
  now mandatory, so everyone will need to set COIN and NET appropriately
  for their flavour of bitcoin and mainnet or testnet.
2017-09-07 13:53:44 +09:00
Neil Booth 2e06250c5b Permit HOST to be a comma-separated list.
Update documentation to match.
2017-09-06 20:19:59 +09:00
Neil Booth f280811202 Update protocol documentation 2017-09-06 17:56:23 +09:00
Neil Booth ed658051f8 Merge remote-tracking branch 'github/master' 2017-09-06 15:29:32 +09:00
EagleTM dde1580b4c Update HOWTO.rst: Add iptables example for running on privileged port (#245) 2017-09-02 16:26:46 +07:00
Neil Booth f534f43c09 Add "hash_function" member to server.features.
Update documentation
2017-08-26 15:37:59 +09:00
Neil Booth 0a51546725 Add EVENT_LOOP_POLICY environment variable
Based on #215 by JustinTArthur.

- Accept EVENT_LOOP_POLICY of uvloop
- Move initilisation from electrumx_server to controller
- SocksProxy now requires a loop
- Update tests
2017-08-26 14:03:02 +09:00
Neil Booth 2ddd3a1451 Add note about new NET assignments. 2017-08-21 20:59:51 +09:00
Neil Booth 06fe5715c0 Merge branch 'master' of github.com:kyuupichan/electrumx into develop 2017-07-23 14:54:38 +09:00
Pavel Zhovner 4d5ffdc7c6 Update HOWTO.rst (#206) 2017-07-23 14:06:51 +09:00
Henry fe311f2f18 HOWTO: fixed paths 2017-07-04 03:37:56 +02:00
Andres G. Aragoneses 61a5d6dec1 HOWTO.rst: fix typo 2017-05-04 15:11:32 +08:00
Neil fbf73c1209 Update ENVIRONMENT.rst 2017-05-04 00:22:53 +09:00
LaoDC 10b932c18c sorry about permissions 2017-05-03 19:27:00 +07:00
LaoDC d8ca1a3690 fixed typo. 2017-05-03 19:26:49 +07:00
LaoDC d80b9200cc Updated docs/ENVIRONMENT.rst to reflect changes in variables 2017-05-03 19:25:14 +07:00
Neil Booth 74f6639489 New feature: force peer discovery via proxy
Set FORCE_PROXY to non-empty to force peer discovery to go
through the proxy.  See docs/ENVIRONMENT.rst

Wait for an attempt at proxy discovery to be made before beginning
peer discovery.
2017-04-02 15:06:29 +09:00
Neil Booth 557fe815d3 REPORT_HOST no longer defaults to HOST
Cleanup of identity handling.  It is now possible to specify
a Tor identity and no clearnet identity.
2017-04-01 12:03:53 +09:00
Neil Booth 897a95e449 Update notes about rocksdb in Python 2017-03-29 17:01:40 +09:00
Neil Booth ba4bd79da4 Update PROTOCOL.rst and PEER_DISCOVERY.rst 2017-03-25 13:28:20 +09:00
John L. Jegutanis 884632b07b Dynamic header support
Block headers can have a dynamic size that is being indexed on a
new meta file "headers_offsets".

The offsets are 64 bits in order to accommodate coins with big
headers that will accumulate GBs of header data after some years.

Closes #128
2017-03-25 11:35:55 +09:00
Neil Booth 69404e2920 Add new RPC method: add_peer 2017-03-25 11:35:54 +09:00
Neil Booth a834e7036c Update protocol docs 2017-03-22 23:45:26 +09:00
shsmith 1b6be20a80 merge samples into contrib 2017-03-12 18:30:44 -07:00
Neil Booth 5e903b8db6 Add new RPC method: add_peer 2017-03-12 12:34:40 +09:00
Neil Booth e0df0b94ad Update ACKNOWLEDGEMENTS 2017-03-11 13:51:51 +09:00
Neil Booth fe7e88593d Prepare 1.0 2017-03-05 13:22:09 +09:00
Neil Booth e93d4edeae Require Python 3.5.3
3.5.2 has various socket and API issues affecting peer discovery

Closes #135
2017-03-01 07:23:11 +09:00
Neil Booth 398e5d7efa Prepare 0.99 2017-02-19 19:42:26 +09:00
Neil Booth 32666ce0dc Add facility to disable peer discovery
and/or self announcement.
2017-02-19 19:02:01 +09:00
Neil Booth 8fa8615ccf Tweak docs 2017-02-19 10:32:28 +09:00
xHire 3357af28ad A note about testnet-segwit NET in docs (#130)
Thanks
2017-02-19 10:32:27 +09:00
Neil Booth 1bb8a9d5a4 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 0b0a3a8f5b Accept IPv6 addresses in DAEMON_URL
Fixes #126
2017-02-16 08:00:08 +09:00
Neil Booth c17dd847bc Update docs 2017-02-12 08:35:47 +09:00