Commit Graph

613 Commits

Author SHA1 Message Date
Neil Booth
c1c4906fba Prepare 1.1pre1 2017-09-07 14:16:22 +09:00
Neil Booth
3cc5b5ea43 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
2684f3b888 Require protocol_version to be given if >= 1.1 2017-09-07 13:20:39 +09:00
Neil Booth
09783aeacc Accept protocols down to 0.9 for Electrum 1.x clients
Fixes #248
2017-09-07 13:13:47 +09:00
Neil Booth
2a955a922a Improved handler handling
- move server.donation_address to the session from controller
- session controls handler map, no longer lives partly on controller
2017-09-07 13:13:34 +09:00
Neil Booth
a978ca6df7 Permit HOST to be a comma-separated list.
Update documentation to match.
2017-09-06 20:19:59 +09:00
Neil Booth
37c15f7018 Show protocol version in sessions RPC call 2017-09-06 18:14:52 +09:00
Neil Booth
f2f2b1e7b6 Update protocol documentation 2017-09-06 17:56:23 +09:00
Neil Booth
9c25685eb9 Handle client protocol range requests.
Add more tests.
2017-09-06 17:11:18 +09:00
Neil Booth
e7601a23cd Implement other address methods for scripthash 2017-09-06 16:41:14 +09:00
Neil Booth
135ab68f74 Simple protocol negotiation and setting of handlers
It turns out clients pass 0.10 instead of 1.0 as the protocol version.
Distinguish some handlers for 1.0 and 1.1 protocols.
Log protocol version request
Add tests of new library function
2017-09-06 16:24:56 +09:00
Neil Booth
f8a838c589 Add "hash_function" member to server.features.
Update documentation
2017-08-26 15:37:59 +09:00
Neil Booth
137236712f 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
1f3e942cbc Some further cleanup 2017-08-26 12:47:47 +09:00
John L. Jegutanis
885872f0b5 Various improvements (#233)
* Fix formatting

* Refactor daemons

Replaced FujiDaemon with FakeEstimateFeeDaemon that simulates estimate
fee calls and provide the same functionality.
Removed the parameter False for LegacyRPCDaemon's getblock RPC call as
it is not needed.

* Fix Crown coin P2SH_VERBYTES and add REORG_LIMIT
2017-08-26 12:33:20 +09:00
Neil Booth
d324bdc0d1 Prepare 1.0.17 2017-08-21 23:41:30 +09:00
Neil Booth
fab3f5affe Have proxy.create_connection use kwargs
Fixes #227
2017-08-21 23:38:54 +09:00
Neil Booth
7442bad66c Prepare 1.0.16 2017-08-21 20:52:02 +09:00
Neil Booth
4d2456e4b4 Explicitly bind to both IPv4 and IPv6. 2017-08-21 20:07:08 +09:00
mmouse-
69c1535d13 Use our listening Host/IP for outgoing connections also (#226)
Explicitely set the local IP for outgoing connections, if we're listening
on only one Hostname or IP (of a multi-IP machine). This makes sure our
peers see our outgoing connections coming from the same IP that we're
listening on when we have a specific HOST= configured.

For machines with more than one IP this avoids source-destination
mismatch errors when advertizing our peer. Resolves kyuupichan/electrumx#225
2017-08-21 05:47:05 +07:00
Kefkius
59d8421c87 Fix KeyError on incorrect genesis hash (#224)
Fix KeyError that occurs when creating an exception for an incorrect genesis hash.
2017-08-20 05:31:55 +07:00
FujiCoin
b4ac4b6a05 Add Fujicoin (#218)
* Add Fujicoin

* Add explanation of FujiDaemon
2017-08-18 15:05:54 +07:00
sam
5b475751f1 Correct 'seessions' (sessions) (#220) 2017-08-13 07:29:20 +07:00
Neil Booth
92ba67037f Use None instead of localhost
See #211.  Some don't have localhost mapped, and
we should also bind to IPv6 interfaces.

Thanks to gaoyaxing24 for testing.
2017-08-02 16:54:58 +09:00
Justin Turner Arthur
28764936c4 Remove semicolons and a couple unused variables. (#212) 2017-08-02 15:55:44 +09:00
Neil Booth
23b121e799 Prepare 1.0.15 2017-07-30 21:38:51 +09:00
Neil Booth
75feac5d1e Check prior header hashes to detect forks 2017-07-30 21:32:41 +09:00
Neil Booth
3eef0ba4cf Rename block_full to block.
Retain the raw block in the named tuple.
2017-07-30 20:41:08 +09:00
Neil Booth
d593dd2c6e Prepare 1.0.14 2017-07-23 14:57:02 +09:00
Neil Booth
2ade5fce9c Revert "More logical mempool hash handling"
This reverts commit 87d24f38dc.
2017-07-23 14:55:03 +09:00
Neil Booth
7abde2e514 Prepare 1.0.13 2017-07-21 12:40:37 +09:00
Neil Booth
87d24f38dc More logical mempool hash handling
Fixes the issue whereby notifications weren't sent as long as new blocks
kept coming in.  Now a new height notification, with an appropriate mempool
update, is sent after each batch of blocks is processed.
2017-07-19 23:50:44 +09:00
Neil Booth
3f9e2363c2 Prepare 1.0.12 2017-07-16 15:07:13 +09:00
Neil Booth
4665ba6315 Improve daemon JSON RPC compatibility
- give an ID to each request
- allow client session to be customized by derived classes

Based on changes suggested by erasmospunk
2017-07-13 10:51:54 +09:00
Neil Booth
858bac217d Move DB UTXO code into one place. 2017-07-10 14:12:27 +09:00
Neil Booth
2f26e81629 Implement history compression with tests.
Still to do: running compression in background when the flush
count reaches a certain level
2017-06-18 22:59:30 +09:00
Neil Booth
2940ea3199 Add new function get_history_txnums 2017-06-17 16:33:15 +09:00
John L. Jegutanis
1e9a65dccb Handle legacy daemon RPCs
Add support for daemons that don't have the new 'getblock' RPC call that
returns the block in hex, the workaround is to manually recreate the block
bytes. The recreated block bytes may not be the exact ones as in the
underlying blockchain but it is good enough for our indexing purposes.
2017-06-11 01:37:45 +03:00
Neil Booth
0cf4210a66 Prepare 1.0.11 2017-06-07 23:47:18 +09:00
Neil Booth
4cc3720589 Disable IRC for bitcoin mainnet
Only require IRC_CHANNEL if IRC_PREFIX is given.
2017-06-07 23:47:17 +09:00
Neil
d9ff685958 Merge pull request #183 from thelazier/dash_mn_methods
Add support for Dash Masternode methods
2017-05-16 19:02:17 +07:00
Neil Booth
08dbbf217a client_version must be a tuple
Fixes #180
2017-05-16 14:55:19 +09:00
TheLazieR Yip
2e87d49e04 Add more comment on DashElectrumX.server_version 2017-05-15 08:10:09 +00:00
TheLazieR Yip
e99400c225 Update DashElectrumX as commented 2017-05-15 04:12:33 +00:00
TheLazieR Yip
4da2278729 Force server string response for Electrum-Dash 2.6.4 client 2017-05-14 17:38:55 +00:00
TheLazieR Yip
f179c67935 Add support for Dash Masternode methods
+ Add DashDaemon class
+ Add DashElectrumX class
+ Update coin configurations for Dash
2017-05-14 16:36:02 +00:00
TheLazieR Yip
b0e23e903d Allow custom ElectrumX class 2017-05-14 16:26:17 +00:00
Neil
325097f0e6 Merge pull request #176 from erasmospunk/allow-customizations
Allow custom Daemon and BlockProcessor classes
2017-05-07 19:42:25 +07:00
John L. Jegutanis
a4e4f80ad7 Allow custom Daemon and BlockProcessor classes 2017-05-07 14:22:23 +02:00
LaoDC
9e34bf8583 reverted and made the version split isolated within the banner logic only as not to affect other parts of the code. 2017-05-03 17:43:47 +07:00