Luke Dashjr [Tue, 26 Mar 2013 16:13:41 +0000 (16:13 +0000)]
Bugfix: Import traceback for SQL sharelogger
Luke Dashjr [Sat, 7 Apr 2012 21:08:22 +0000 (17:08 -0400)]
Bugfix: Ensure sharelogging.sql sticks to a single thread for actual db access
At least sqlite3 isn't threadsafe
Luke Dashjr [Tue, 6 Nov 2012 03:53:57 +0000 (03:53 +0000)]
Move handle_readbuf from HTTPHandler to SocketHandler
Luke Dashjr [Mon, 5 Nov 2012 14:28:09 +0000 (14:28 +0000)]
Always send clear transactions for template work, during new block longpoll and if user has no work yet
Jason Hughes [Mon, 5 Nov 2012 14:29:39 +0000 (14:29 +0000)]
Include issuetime key in share data, to allow recording the time a work was issued
Luke Dashjr [Tue, 2 Oct 2012 18:25:39 +0000 (18:25 +0000)]
Merge branch 'bugfix_gbt_submit'
Luke Dashjr [Tue, 2 Oct 2012 18:25:36 +0000 (18:25 +0000)]
Bugfix: "now" doesn't exist in this scope
Luke Dashjr [Tue, 2 Oct 2012 18:25:00 +0000 (18:25 +0000)]
Bugfix: Fix other submission inconsistencies
Luke Dashjr [Tue, 2 Oct 2012 17:27:44 +0000 (17:27 +0000)]
Merge branch 'bugfix_gbt_submit'
Luke Dashjr [Tue, 2 Oct 2012 17:27:37 +0000 (17:27 +0000)]
Bugfix: For "submit/coinbase" abbreviated shares, provide the transactions needed upstream
Luke Dashjr [Tue, 2 Oct 2012 17:10:12 +0000 (17:10 +0000)]
Store yet more details (failure time and exceptions) on upstream submission failures
Luke Dashjr [Fri, 28 Sep 2012 01:47:11 +0000 (01:47 +0000)]
Store information on upstream block submission failures in new RBFs array
Luke Dashjr [Fri, 28 Sep 2012 01:43:29 +0000 (01:43 +0000)]
Store share and wld data for blocks in RBDs
Luke Dashjr [Sun, 16 Sep 2012 03:04:10 +0000 (03:04 +0000)]
Merge branch 'bugfix_predyntarget_jobs'
Luke Dashjr [Sun, 16 Sep 2012 03:03:52 +0000 (03:03 +0000)]
Bugfix: Tolerate pre-dyntarget jobs at the configured default target
Luke Dashjr [Sun, 16 Sep 2012 02:54:01 +0000 (02:54 +0000)]
Merge branch 'gzip'
Luke Dashjr [Sun, 16 Sep 2012 02:35:51 +0000 (02:35 +0000)]
HTTPServer: Implement gzip Content-Encoding for simple responses
Luke Dashjr [Thu, 13 Sep 2012 09:03:36 +0000 (09:03 +0000)]
Merge branch 'dyntarget'
Conflicts:
eloipool.py
Luke Dashjr [Tue, 11 Sep 2012 12:22:19 +0000 (12:22 +0000)]
Merge branch 'bip23_submitcbonly'
Luke Dashjr [Tue, 11 Sep 2012 12:21:47 +0000 (12:21 +0000)]
Support for BIP 23 "submit/coinbase" abbreviation
Luke Dashjr [Mon, 10 Sep 2012 21:33:03 +0000 (21:33 +0000)]
Merge branch 'up_bip23_propose'
Luke Dashjr [Mon, 10 Sep 2012 21:23:41 +0000 (21:23 +0000)]
Propose new blocks with upstream server when it supports BIP 23 Block Proposal
Luke Dashjr [Tue, 4 Sep 2012 03:27:36 +0000 (03:27 +0000)]
DynamicTargetWindow option, to allow configuring number of seconds for hashrate measurements
Luke Dashjr [Tue, 4 Sep 2012 02:55:07 +0000 (02:55 +0000)]
Debug print pdiff with retargetting
Luke Dashjr [Sun, 2 Sep 2012 04:40:05 +0000 (04:40 +0000)]
Merge branch 'worklog_prune'
Luke Dashjr [Sun, 2 Sep 2012 04:36:20 +0000 (04:36 +0000)]
WorkLog pruner thread, to clean up old work even when blocks aren't being found
Luke Dashjr [Sun, 2 Sep 2012 04:07:55 +0000 (04:07 +0000)]
Share logging: New target2pdiff function
Usage: {target2pdiff(target)}
Luke Dashjr [Sun, 2 Sep 2012 03:41:13 +0000 (03:41 +0000)]
Implement power-of-two dynamic targetting
Luke Dashjr [Sun, 2 Sep 2012 03:40:55 +0000 (03:40 +0000)]
Bugfix: Fix some missing None handling
Luke Dashjr [Sun, 2 Sep 2012 03:05:16 +0000 (03:05 +0000)]
Never adjust the share target below the network target
Luke Dashjr [Sun, 2 Sep 2012 02:46:07 +0000 (02:46 +0000)]
Bugfix: Non-dynamic target now works again, as well as restarts when dynamic is enabled
Luke Dashjr [Sat, 1 Sep 2012 22:59:24 +0000 (22:59 +0000)]
Beginnings of dynamic targetting support
Only completely variable targets are supported for now.
Luke Dashjr [Sat, 1 Sep 2012 23:01:32 +0000 (23:01 +0000)]
Merge branch 'bugfix_hicb_getMC'
Luke Dashjr [Sat, 1 Sep 2012 23:01:22 +0000 (23:01 +0000)]
Bugfix: getBlockTemplate: Get work identifier after height-in-coinbase
Luke Dashjr [Sat, 1 Sep 2012 10:07:24 +0000 (10:07 +0000)]
Merge branch 'bip23_basic'
Luke Dashjr [Sat, 1 Sep 2012 10:07:00 +0000 (10:07 +0000)]
Compatibility with "BIP 23 Basic Pool Extensions" by adding the expires key to templates
Luke Dashjr [Sat, 1 Sep 2012 10:02:32 +0000 (10:02 +0000)]
Merge branch 'bip22'
Luke Dashjr [Sat, 1 Sep 2012 10:02:22 +0000 (10:02 +0000)]
Bugfix: getblocktemplate: coinbasetxn is an Object
Luke Dashjr [Sat, 1 Sep 2012 09:55:10 +0000 (09:55 +0000)]
Merge branch 'bip22'
Luke Dashjr [Sat, 1 Sep 2012 09:54:17 +0000 (09:54 +0000)]
Merge branch 'bugfix_hicb_getMC'
Luke Dashjr [Sat, 1 Sep 2012 09:54:11 +0000 (09:54 +0000)]
Bugfix: checkShare: Check for work identifier after skipping over height-in-coinbase
Luke Dashjr [Sat, 1 Sep 2012 09:10:18 +0000 (09:10 +0000)]
getblocktemplate: Initial server-side implementation for current BIP 22
Compatibility with old draft retained with old jsonrpc_getmemorypool module, which is NOT enabled by default.
Luke Dashjr [Sat, 1 Sep 2012 08:48:11 +0000 (08:48 +0000)]
Update to use current BIP22 method names for upstream
getblocktemplate + submitblock
Backward compatibility with earlier BIP22 drafts and bitcoind getmemorypool is retained for now
Luke Dashjr [Sat, 1 Sep 2012 09:23:32 +0000 (09:23 +0000)]
Merge branch 'bugfix_hicb_getMC'
Luke Dashjr [Sat, 1 Sep 2012 09:22:51 +0000 (09:22 +0000)]
Bugfix: Adapt getMC to height in makeCoinbase
Height still needs to be conveyed to finish BIP 34 compliance
Luke Dashjr [Sat, 1 Sep 2012 05:23:14 +0000 (05:23 +0000)]
Merge branch 'cve-2012-2459'
Luke Dashjr [Sat, 1 Sep 2012 05:22:34 +0000 (05:22 +0000)]
Now that CVE-2012-2459 is publicly disclosed, document "Power Of Two" feature properly
Luke Dashjr [Sat, 1 Sep 2012 03:20:08 +0000 (03:20 +0000)]
Avoid flooding warnings under any circumstances
Luke Dashjr [Sat, 1 Sep 2012 02:36:56 +0000 (02:36 +0000)]
Merge branch 'coinbase_height'
Luke Dashjr [Sat, 1 Sep 2012 02:19:03 +0000 (02:19 +0000)]
Encode block height in coinbases using the minimal script encoding
Required by BIP 34 change
Luke Dashjr [Fri, 31 Aug 2012 07:50:30 +0000 (07:50 +0000)]
Clear merkleroots only after changing currentBlock, to avoid races
Luke Dashjr [Fri, 31 Aug 2012 07:36:47 +0000 (07:36 +0000)]
Bugfix: Avoid race conditions in merkleroot creation
Luke Dashjr [Fri, 31 Aug 2012 07:36:18 +0000 (07:36 +0000)]
Handle premature merkleMaker.blockUpdate properly
Luke Dashjr [Fri, 31 Aug 2012 07:00:12 +0000 (07:00 +0000)]
Merge branch 'bugfix_hicb' into coinbase_height
Luke Dashjr [Fri, 31 Aug 2012 07:00:04 +0000 (07:00 +0000)]
Bugfix: Restore change to merkleMaker.currentBlock lost in merge
Luke Dashjr [Fri, 31 Aug 2012 06:50:52 +0000 (06:50 +0000)]
Dump block payloads in hex
Luke Dashjr [Fri, 31 Aug 2012 06:49:26 +0000 (06:49 +0000)]
Update block version to 2, but continue accepting version 1 for shares
Luke Dashjr [Fri, 31 Aug 2012 02:16:23 +0000 (02:16 +0000)]
Merge branch 'master' into coinbase_height
Conflicts:
merklemaker.py
Luke Dashjr [Thu, 30 Aug 2012 21:32:45 +0000 (21:32 +0000)]
Merge branch 'bugfix_final_init'
Luke Dashjr [Thu, 30 Aug 2012 21:32:11 +0000 (21:32 +0000)]
Bugfix: Split final_init between handler plugins
Minor performance impact at startup, but necessary to make it modular again
Luke Dashjr [Thu, 30 Aug 2012 21:18:26 +0000 (21:18 +0000)]
Merge branch 'bugfix_proxy_sharetarget'
Luke Dashjr [Thu, 30 Aug 2012 21:18:04 +0000 (21:18 +0000)]
Bugfix: Define a default ShareTarget
gmp-proxy doesn't set it
Luke Dashjr [Mon, 20 Feb 2012 21:45:03 +0000 (16:45 -0500)]
Attempt to handle circumstances that leave us without knowing bits
Luke Dashjr [Mon, 30 Jul 2012 04:07:04 +0000 (04:07 +0000)]
Merge branch 'sharetarget'
Luke Dashjr [Mon, 30 Jul 2012 03:58:19 +0000 (03:58 +0000)]
Expose share target to logger as {target} and {_targethex}
Luke Dashjr [Mon, 30 Jul 2012 03:31:46 +0000 (03:31 +0000)]
Merge branch 'sharetarget'
Luke Dashjr [Mon, 30 Jul 2012 03:31:38 +0000 (03:31 +0000)]
config.py.example: Suggest pdiff1 for both targets
Luke Dashjr [Sun, 29 Jul 2012 08:23:29 +0000 (08:23 +0000)]
Merge branch 'sharetarget'
Luke Dashjr [Sun, 29 Jul 2012 08:23:11 +0000 (08:23 +0000)]
Support for share targets higher than pdiff 1
Luke Dashjr [Sun, 1 Jul 2012 18:54:43 +0000 (18:54 +0000)]
Save original getmemorypool response on merkletree objects, for debugging
Luke Dashjr [Thu, 21 Jun 2012 17:49:07 +0000 (17:49 +0000)]
Merge branch 'bugfix_short_cb'
Luke Dashjr [Thu, 21 Jun 2012 17:49:00 +0000 (17:49 +0000)]
Bugfix: Solve false-positive bad-cb-flag when coinbase prefix is shorter than flag being filtered
Luke Dashjr [Thu, 21 Jun 2012 17:04:05 +0000 (17:04 +0000)]
Longpoll tracking by username
Luke Dashjr [Fri, 15 Jun 2012 17:35:04 +0000 (17:35 +0000)]
merklemaker: APOT test
Luke Dashjr [Thu, 7 Jun 2012 14:25:26 +0000 (14:25 +0000)]
Some checks to react nicer on second exit()
Luke Dashjr [Fri, 18 May 2012 03:06:23 +0000 (03:06 +0000)]
Merge branch 'bugfix_gmpproxy_leak'
Luke Dashjr [Fri, 18 May 2012 03:06:15 +0000 (03:06 +0000)]
Bugfix: gmp-proxy: clear jsonrpc_getwork._CheckForDupesHACK on longpoll, to avoid leaking memory too much
Luke Dashjr [Wed, 16 May 2012 23:54:22 +0000 (23:54 +0000)]
Merge branch 'bugfix_gmpp_fwd'
Luke Dashjr [Wed, 16 May 2012 23:54:18 +0000 (23:54 +0000)]
Bugfix: Really put TrustedForwarders init in the right place this time
Luke Dashjr [Wed, 16 May 2012 23:41:17 +0000 (23:41 +0000)]
Merge branch 'bugfix_gmpp_fwd'
Luke Dashjr [Wed, 16 May 2012 23:41:05 +0000 (23:41 +0000)]
Bugfix: Move TrustedForwarders initialization to NetworkServer constructor
Since it isn't set by gmp-proxy, this errored when clients sent X-Forwarded-For
Luke Dashjr [Tue, 15 May 2012 14:52:55 +0000 (14:52 +0000)]
Debugging tools (and checks) for POT
Luke Dashjr [Tue, 15 May 2012 06:57:39 +0000 (06:57 +0000)]
merkleMaker: New fee-aware _makeBlockSafe method to enforce safety limits (and Greedy)
Luke Dashjr [Mon, 14 May 2012 15:56:15 +0000 (15:56 +0000)]
Use BIP22 "obj" transactions when possible
Backward compatibility with hex-only and gmp_fees retained for now
Luke Dashjr [Mon, 14 May 2012 15:15:09 +0000 (15:15 +0000)]
Attempt upstream BIP22 getmemorypool requests
Luke Dashjr [Sun, 13 May 2012 15:58:41 +0000 (15:58 +0000)]
Backward-compatible support for new BIP 22 getmemorypool longpolling
Luke Dashjr [Sun, 13 May 2012 15:52:14 +0000 (15:52 +0000)]
Wait until JSONRPCServer is initialized before starting MerkleMaker, so we can skip needless checks at runtime
Luke Dashjr [Sun, 13 May 2012 00:47:50 +0000 (00:47 +0000)]
Merge branch 'bugfix_check_path'
Luke Dashjr [Sun, 13 May 2012 00:47:08 +0000 (00:47 +0000)]
Bugfix: JSONRPCServer: Check that path is actually bytes before subscripting it
It's None when the request was invalid
Luke Dashjr [Sun, 13 May 2012 00:24:56 +0000 (00:24 +0000)]
Merge branch 'bugfix_example_ccmd'
Luke Dashjr [Sun, 13 May 2012 00:24:47 +0000 (00:24 +0000)]
Bugfix: config.py.example: example CoinbaserCmd echo needs -e, and doesn't need an extra \n on the end
Luke Dashjr [Fri, 11 May 2012 17:36:24 +0000 (17:36 +0000)]
Merge branch 'bugfix_notrim'
Conflicts:
merklemaker.py
Luke Dashjr [Fri, 11 May 2012 17:35:23 +0000 (17:35 +0000)]
Just log an error, rather than make invalid-due-to-missing-fees blocks, when perceived to be over size/sigop limits
Luke Dashjr [Wed, 9 May 2012 21:19:54 +0000 (21:19 +0000)]
RaiseRedFlags if upstream rejects a block
Luke Dashjr [Mon, 7 May 2012 16:35:54 +0000 (16:35 +0000)]
Merge branch 'bugfix_thr_sigusr1'
Conflicts:
eloipool.py
Luke Dashjr [Mon, 7 May 2012 16:34:07 +0000 (16:34 +0000)]
Bugfix: Use a new thread to handle SIGUSR1, in case the signal handler is called with locks held
Specifically, flushing stdout uses a lock, and when SIGUSR1 tries to write too it just blocked forever :(
Luke Dashjr [Sun, 6 May 2012 04:45:48 +0000 (04:45 +0000)]
NetworkServer: Try to send data immediately
Since the socket is non-blocking, we should get an instant return at little or no cost, and still leave any excess data for epoll to take care of later
Luke Dashjr [Sun, 6 May 2012 04:41:02 +0000 (04:41 +0000)]
Merge branch 'bugfix_sck_nonblock'
Luke Dashjr [Sun, 6 May 2012 04:39:51 +0000 (04:39 +0000)]
Bugfix: Set actual connection sockets non-blocking
Writing a lot of data at once might block and hold up servicing other connections/events
Luke Dashjr [Sat, 5 May 2012 17:07:18 +0000 (17:07 +0000)]
Don't need all merkleroots to be up-to-date before sending the 2nd longpoll