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
LaoDC
9dceeb914c
Add new variables to BANNER(_TOR)
...
$SERVER_VER will return the version number (eg: 1.0.10)
$SERVER_SUBVERSION will return the full version string (eg: ElectrumX 1.0.10)
$VERSION is kept for legacy which is the same as $SERVER_SUBVERSION
2017-05-03 17:10:52 +07:00
LaoDC
5e92feb8a6
Add new variables to BANNER(_TOR)
...
$SERVER_VER will return the version number (eg: 1.0.10)
$SERVER_SUBVERSION will return the full version string (eg: ElectrumX 1.0.10)
$VERSION is kept for legacy which is the same as $SERVER_SUBVERSION
2017-05-03 17:09:52 +07:00
Neil Booth
2fe67932c5
Prepare 1.0.10
2017-04-28 22:44:48 +09:00
Neil Booth
e9acb685ab
Display hosts in diagnostic
2017-04-09 14:32:45 +09:00
Neil Booth
d216d5111b
Prepare 1.0.9
2017-04-09 14:20:17 +09:00
Neil Booth
8a2821d542
Reject invalid hostnames in Env
2017-04-09 14:15:10 +09:00
Neil Booth
b6d8b86dd6
Ignore hosts not appearing in their own features
2017-04-09 14:02:32 +09:00
Neil Booth
c0ff2c0c20
Bump to 1.0.8b
2017-04-06 07:36:04 +09:00
Neil Booth
f3de91180e
Add tests for server/env.py
2017-04-06 07:27:48 +09:00
Neil Booth
30df09534f
Bump to 1.0.8a
2017-04-03 21:40:02 +09:00
Neil Booth
2c43e89b05
Only set last_good if successfully verified
...
Rename last_connect to last_good
2017-04-03 21:37:51 +09:00
Neil Booth
e0a79c313c
Prepare 1.0.8
2017-04-03 20:13:35 +09:00
Neil Booth
7b17d99c5a
Put log on one line
2017-04-03 20:10:42 +09:00
Neil Booth
9f27ea875c
Fix peer replacement logic
...
- drop the IP address peer
- update the remaining peer with fresh info
2017-04-03 20:07:46 +09:00
Neil Booth
2656fd78a4
Clarify that we may not have a clearnet peer
2017-04-02 21:25:02 +09:00
Neil Booth
e96b8f0421
Prepare 1.0.7
2017-04-02 15:12:50 +09:00
Neil Booth
a94d320e5d
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
77a441ad06
Improve proxy handling
...
Have a background proxy detection loop; removes need to check
specific peers at startup.
Consider proxy down once attempts to use it fail 3 times in a row.
Regularly attempt to rediscover a proxy if it is down.
2017-04-02 14:27:49 +09:00
Neil Booth
178de6c396
Tighten restrictions on HOST
...
- private IP not allowed if intending for public use
- localhost not allowed
2017-04-02 10:58:55 +09:00
Neil Booth
81e6577838
Catch address resolution failure exceptions
2017-04-01 22:55:16 +09:00
Neil Booth
321315ace0
Fix typo
2017-04-01 15:17:17 +09:00
Neil Booth
d1894356d0
Prepare 1.0.6
2017-04-01 12:10:18 +09:00
Neil Booth
9abc1dc11e
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
abba36ac6c
Relax the get_chunk restriction based on client
...
Closes #162
2017-04-01 11:17:57 +09:00
Neil Booth
55cedfea9c
Have Daemon work with aiohttp 1 and 2
...
Fixes #163
2017-04-01 10:43:34 +09:00
Neil Booth
594b66236f
Prepare 1.0.5
2017-03-28 12:30:06 +09:00
Neil Booth
8e00affc1a
Fix the diagnostic looping in PeerSession
...
Fixes #160
2017-03-28 11:14:50 +09:00
Neil Booth
23a408c572
More logging
2017-03-27 13:04:59 +09:00
Neil Booth
860a4e8e93
Prepare 1.0.4
2017-03-26 11:51:18 +09:00
Neil Booth
2650459012
Peer discovery fixes
...
Change last_connect to mean last connection as its name implies,
not last connection that wasn't bad.
Keep bad peers around for 3 tries.
Improve diagnostic
2017-03-26 11:42:23 +09:00
Neil Booth
79bce5335e
Fix missing self
2017-03-25 20:52:26 +09:00
Neil Booth
fa1a5bd3e4
Prepare 1.0.3
2017-03-25 20:27:33 +09:00
Neil Booth
3236989165
Fix bad peer looping
...
JWU42 pointed out an issue where peer discovery could get in a
failure loop for bad peers; this fixes the the root cause and
the immediate retries
2017-03-25 20:22:38 +09:00
Neil Booth
7b263c5c49
Prepare 1.0.2
2017-03-25 13:28:43 +09:00
Neil Booth
e4947cb9ef
Sanitize the maximum number of sessions
...
Reduce the maximum number of sessions to permit if running with
a tight rlimit, to avoid hitting open file limits. Log when
doing so.
Closes #158
2017-03-25 13:28:42 +09:00
Neil Booth
f04ff6f5b3
Don't add_peer to ourself
2017-03-25 13:28:42 +09:00
Neil Booth
8236aaf234
Be more strict on form of features dictionary
2017-03-25 13:28:42 +09:00
Neil Booth
be5397a853
Validate hostnames before accepting a new peer
...
Don't retain non-public addresses
Closes #157
2017-03-25 11:58:54 +09:00
Neil Booth
7a2f29aabe
Be stricter accepting add_peer requests
...
- rate-limit onion add_peer requests
- for clearnet peers only accept if the peer resolves to the
source address
2017-03-25 11:36:14 +09:00
Neil Booth
84c201f665
Improve diagnostic
2017-03-25 11:35:56 +09:00
John L. Jegutanis
a820829e0e
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
37602d4eae
A couple of tweaks to the prior commit.
2017-03-25 11:35:55 +09:00
John L. Jegutanis
ed7d8a319d
Refactor block parsing API
2017-03-25 11:35:55 +09:00
Neil Booth
127b4de745
Add new RPC method: add_peer
2017-03-25 11:35:54 +09:00
Neil Booth
060d32211f
Check height for all peers
...
Closes #152
2017-03-25 11:35:54 +09:00
Neil Booth
d198b95798
Reduce new peers per source limit to 2 by default
2017-03-25 11:35:54 +09:00
Neil Booth
9238fe397d
Drop ports from top level of features
2017-03-25 11:35:54 +09:00
Neil Booth
e0fd64d29a
Rate-limit add_peer calls randomly
...
Prepare 1.0.1
2017-03-22 07:59:56 +09:00
Neil Booth
294212d421
Fix discovery of base of reorgs
2017-03-21 22:17:01 +09:00
Neil Booth
5f56689e9c
Don't permit common invalid REPORT_HOST values
2017-03-21 22:17:01 +09:00
Neil Booth
30bb832ef8
Prepare 1.0
2017-03-05 13:22:09 +09:00
Neil Booth
90d1d2641b
Prepare 0.99.4
2017-03-04 11:08:03 +09:00
Neil Booth
27f94cfb04
Take up to 2 peers randomly from each bucket
...
Bumped up from 1.
Restore STALE_SECS to 1 day
2017-03-01 20:20:30 +09:00
Neil Booth
51c1e9a59b
Prepare 0.99.3
2017-03-01 07:32:28 +09:00
Neil Booth
39bcdb1b6a
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
be9d063457
Rename function
2017-03-01 06:44:38 +09:00
Neil Booth
31b978f21e
Remove debug logging and peers semaphore.
...
Increase STALE_SECS to 4 hrs. Will revert to 1 day soon.
2017-02-28 07:27:36 +09:00
Neil Booth
ddbc13653f
Merge branch 'develop'
2017-02-27 19:20:04 +09:00
Neil Booth
2c1481859f
More verbose peer logging
...
Force more reconnects. Restrict semaphore to 2.
2017-02-27 19:15:07 +09:00
Neil Booth
9bc326430d
Import JSONRPC
2017-02-27 19:14:56 +09:00
John L. Jegutanis
472c738479
fix crash in IRC initialization ( #141 )
2017-02-27 07:24:20 +09:00
Neil Booth
be95697002
Prepare 0.99.2
2017-02-26 15:29:52 +09:00
Neil Booth
e2d640dcb3
Don't announce self if not public
...
Show all hosts add_peer gives
2017-02-26 15:26:11 +09:00
Neil Booth
b3005fbb3e
Fix typo
2017-02-26 13:18:06 +09:00
Neil Booth
b0039a25a7
Prepare 0.99.1
2017-02-26 10:49:27 +09:00
Neil Booth
0145098165
Add debug output
...
Idea is to help understand #135
2017-02-26 10:42:32 +09:00
Neil Booth
d36d222489
Maintain more than one self-identity
...
Rather than just retaining our clearnet identity from the environment,
maintain any tor one as well. This is a little cleaner and avoids
confusion over port assignment when converting to real names.
Fixes #136
2017-02-26 10:22:22 +09:00
Neil Booth
04e7dbe99e
Only serve chunks in forward direction
...
This disconnects bad clients that are on the wrong network
for some reason, before they consume enormous bandwidth.
Closes #132
2017-02-26 10:16:09 +09:00
fr3aker
4c8b5a6439
fix tor coin peers always scheduled for check ( #139 )
...
fixes #138
2017-02-26 10:16:08 +09:00
Neil Booth
5bcbdea16a
Only set last_connect if the connection was good
2017-02-20 05:37:53 +09:00
Neil Booth
6f32f99a06
Prepare 0.99
2017-02-19 19:42:26 +09:00
Neil Booth
5662f1fa88
Add facility to disable peer discovery
...
and/or self announcement.
2017-02-19 19:02:01 +09:00