Commit Graph

58 Commits

Author SHA1 Message Date
Neil Booth
42dfd16b14 Add Bitoin Unlimited nolnet 2017-03-04 09:52:47 +09:00
Neil Booth
85f17b75c8 Remove stray commas 2017-02-27 19:39:22 +09:00
Neil Booth
ac8e38a87c Tweak prior 2017-02-27 07:36:52 +09:00
John L. Jegutanis
6b1b9d01f2 Better handle base58 version bytes and allow for a >1 byte version 2017-02-27 07:36:33 +09:00
Thomas König
b6be653f4f Adding FairCoin (#122)
* Adding FairCoin

* remove redundant 'header_len' function

* removed serializer
added missing commas
removed assertion from read_block and replaced it with a comment
2017-02-19 19:03:21 +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
251dca4da9 Update match groups 2017-02-17 21:42:34 +09:00
Neil Booth
4dcd7f25a5 Further fix regex for hex chars 2017-02-17 07:59:49 +09:00
Neil Booth
82d57dc90f Accept IPv6 addresses in DAEMON_URL
Fixes #126
2017-02-16 08:00:08 +09:00
Nathan Marley
a03665696c recommendations from pycodestyle (pep8 style) 2017-02-07 20:12:50 -08:00
Neil Booth
6db9cb967c Require attributes to be specified for a coin 2017-02-06 19:48:30 +09:00
shsmith
169f5df91f update hostnames (#120) 2017-02-06 07:28:52 +09:00
Neil Booth
f1251766b6 Merge branch 'master' of github.com:kyuupichan/electrumx 2017-02-05 09:50:29 +09:00
Neil Booth
1856cbe6c0 Coin fixes/cleanup (erasmospunk)
2 out of 3 from #118
2017-02-05 09:41:27 +09:00
TheLazieR Yip
0e51c80156 Add PEERS for DASH (#117)
* Add PEERS for DASH

* Update PEER_DEFAULT_PORTS for DASH Testnet
2017-02-02 11:32:38 +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
Petr Kracík
5343c1a286 Changed litecoin genesis block hash (#109) 2017-01-22 23:41:45 +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
540479ad23 Tweaks for prior; update README. 2017-01-08 12:10:56 +09:00
protonn
1aa55f2976 add digibyte and argentum (#96)
* add DigiByte and Argentum
2017-01-08 12:00:41 +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
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
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
8bd2e7ee06 Add constants for bitcoin testnet 2017-01-07 11:51:01 +09:00
Neil Booth
c6be118bab Tweak Litecoin settings 2016-11-29 07:28:09 +09:00
Santzi
f1911140ef Updated Litecoin mainnet parameters 2016-11-27 19:13:38 +02:00
Neil Booth
59733e4609 Move bitcoin-specific coin defaults to Bitcoin 2016-11-26 08:32:30 +09:00
TheLazieR Yip
dfaf36ae16 Remove header_hashes 2016-11-25 07:25:57 -05:00
TheLazieR Yip
6b63ecb439 Add header_hash and header_prevhash class methods 2016-11-25 07:25:56 -05:00
TheLazieR Yip
f075f0bb5f Add coin's IRC parameters 2016-11-23 08:15:03 +07:00
TheLazieR Yip
5aae539476 Add DEFAULT_RPC_PORT for DASH 2016-11-20 19:11:22 +07:00
Neil Booth
87cdd2709d Implement daemon failover
Daemon URLs can be comma-separated in the DAEMON_URL env var.
Surrounding whitespace is stripped.
http:// is preprended if missing.
The coin's default port is supplied if missing.
A trailing / is supplied if missing.
Closes #33
2016-11-20 20:52:54 +09:00
Neil Booth
66c493dbf4 Make the default reorg_limit a coin property 2016-11-18 19:21:38 +09:00
Neil Booth
85786b87a2 Save all UTXOs
Change the DB version
2016-11-13 20:35:03 +09:00
Neil Booth
fdb5b33fba Prepare 0.4.2 2016-11-13 15:37:51 +09:00
TheLazieR Yip
66bf2570e5 Move dash stuff into Dash class
Modify DashTestnet class to use Dash class
2016-11-13 08:56:26 +07:00
TheLazieR Yip
ff834519aa Update for DASH
- Update information for both mainnet and testnet
- Use x11_hash module when network name is Dash to process header_hashes
2016-11-13 00:51:53 +07:00
Neil Booth
e7a516c46e Need to catch script errors 2016-11-06 16:01:02 +09:00
Neil Booth
e2ef9dceaf Rework assertion logic in coins.py 2016-11-06 15:34:20 +09:00
Neil Booth
3ab07c1fb6 Speed up script parsing for ~3% faster throughput
Also improves the coin abstraction
2016-11-06 14:32:27 +09:00
Neil Booth
c0568daec3 Rework the DB API a bit 2016-11-03 19:09:21 +09:00
Neil Booth
be2475f617 Handle utxo.get_address 2016-11-03 19:08:25 +09:00
Neil Booth
ceecdc54ac Server work
Avoid touching the block preprocessor hot loop for now
2016-11-03 17:26:50 +09:00
Neil Booth
d2ebb80fac Extend copyright notice; improve comments 2016-11-03 16:45:06 +09:00