Commit Graph

303 Commits

Author SHA1 Message Date
Matthew Little 9a42211c38 Converted init coin info detection from RPC waterfall to batch RPC call. Added getblocktemplate after submitting block 2014-04-19 13:46:34 -06:00
Matthew Little 8806aa8896 Fixed block hash generation for various algos 2014-04-18 21:41:55 -06:00
Matt 7b24ce543d Fixed share diff for quarkcoin (blocks submit successfully but NOMP does not detect them due to the block hash not being generated correctly) 2014-04-18 16:28:11 -06:00
Matt 1dee4a5a0a Fixed job rebroadcast sending duplicate jobs. Rebroadcasting should work with miners such as bfgminer now. 2014-04-18 14:34:44 -06:00
Matt a4b087cec4 Fixed block solutions not being reported 2014-04-18 13:33:17 -06:00
Matthew Little 3db1b47199 Changes in how max difficulty and share validation works. Should be more accurate for scrypt based algos and x11 2014-04-17 12:52:52 -06:00
Matt ca27990228 Updated readme overscrolling text 2014-04-16 17:59:13 -06:00
Matt 5d236c63fb Added documentation for p2p usage 2014-04-16 11:50:58 -06:00
LucasJones 0de1e50f59 Some work on the p2p system
Fix several bugs in peer.js and enable it to successfully connect to a peer (tested with bitcoind).
2014-04-16 13:14:29 +01:00
LucasJones cf3ffa375d Improve stratum message handling
Prevent the case where multiple messages are chunked together without being processed (occasionally leading to the buffer growing too large and the client being kicked).

Recognize messages consisting only of spaces as malformed.
2014-04-16 03:28:29 +01:00
Matt fefa6986ea Added official haproxy support/configuration. Optimized/fixed banning. 2014-04-15 16:37:04 -06:00
suchpool 911ba75d75 Update to stratum.js
I got this handed to me by zone117x to enable the haproxy to send the real user ip using the send-proxy flag. He will re-work it and integrate it better, but I've pushed this commit for now for those who want to have it working.

Also, I fixed an issue where miners using Uppercase characters in their workers wouldn't get authed by the stratum. I simply added .toLowerCase(); where the stratum looks in the db for the workername.
2014-04-15 04:20:26 -04:00
Jerry Brady 7f9623b2f8 Keccak hash rate adjustment per piotrrojek 2014-04-09 01:40:15 +00:00
Matt 91940045ca Exposed vardiff object for external use 2014-04-08 12:24:24 -06:00
Matt a9208a39d3 Added check for if daemons config is not array 2014-04-08 11:41:50 -06:00
Matt 86a4c05429 Added check for missing daemon config 2014-04-08 11:38:36 -06:00
Jerry Brady 7bdf345843 fixes to handle proxy switching accounting 2014-04-07 02:34:44 +00:00
Matthew Little 54b73dd0df Added low share diff tolerance. 2014-04-03 14:38:40 -06:00
Matt d8abc4008d Accept low shares within a threshold - not finished 2014-04-03 12:31:48 -06:00
Matt 68f9fb566c Added "emitInvalidBlockHashes" option for those in MPOS mode that require it 2014-04-02 13:01:45 -06:00
Matt 78f6a8c2e6 Change diffs to stay in buffer or bignum format rather than hex or js number 2014-04-01 22:22:47 -06:00
Matt 7d5c7ed277 Added check to see if a submitted share matched a miner's previous difficulty from before vardiff retarget. 2014-04-01 16:58:20 -06:00
Matt 1e9bd77072 Use truncated diff1 (max difficulty) for algos by default. Report difficulty of low-diff shares. 2014-04-01 16:31:34 -06:00
Matt bbb759cf37 Refactored pukkeyToScript for clarity 2014-04-01 11:18:31 -06:00
Matt e049c413ba Refactored addressToScript for clarity 2014-04-01 10:29:38 -06:00
Matt a50beb1932 Added jobRebroadcastTimeout configuration 2014-04-01 10:10:50 -06:00
Matt a6e38a6bb0 Comment for hardcoding diff 2014-03-31 18:07:52 -06:00
Matt d27f384461 Comment for hardcoding diff 2014-03-31 18:06:13 -06:00
Matt 4007a7e30c Made scrypt-n have configurable timeTables. 2014-03-31 16:40:22 -06:00
Matt 2d069546cc Increased percent digits 2014-03-30 17:15:34 -06:00
Matt 244d3a406d 1) Updated x11 to more accurate diff. 2) Low diff shares report percent off now - to detect if diff is too hard or you just have abusing miners. 3) Only 1 thread does the rpc calls to generate blockchain sync status 2014-03-30 17:03:23 -06:00
Matt 8505ca6c50 Port diff warnings were happening on accident 2014-03-30 14:39:07 -06:00
Matt 6c39d2d201 Fixed multiplier for x11 2014-03-30 04:15:06 -06:00
Matt 70c93178c6 Merged all hashing algos into one native addon, hurray! Diffs are dynamically calculated based off values in coin source code. 2014-03-30 03:09:44 -06:00
Matt fa0414ee6d Ignore mining.get_transactions... 2014-03-29 19:22:05 -06:00
Matt f7475a7fe8 Fixed broken hashing for sha256d 2014-03-29 14:01:32 -06:00
Matt aacd5be06a More research on multi-algo 2014-03-28 16:40:26 -06:00
Matt 71d5f41257 Put all the different hashing algo info in the same place. Attempted to add keccak - it may or may not work. 2014-03-27 18:10:38 -06:00
Matt 615c1dbfbf Better logging.. 2014-03-27 09:33:13 -06:00
Matt c8355ea211 Prettier log messages on init 2014-03-26 23:25:56 -06:00
Matt b05f7689f3 Restructured pool object - much cleaner and easier to follow flow. 2014-03-26 22:41:25 -06:00
Matt 5b849dce59 Updated some git naming info 2014-03-26 20:13:25 -06:00
Matthew Little 41b121ab56 Fixed bugs that happen when banning is disabled. Attempted to add keccak (maxcoin). 2014-03-26 15:07:03 -06:00
Matt 1ae82cb21b Fixed difficulty not being correct for anything not scrypt. Fixed maxDiff for x11 hash. 2014-03-25 15:52:45 -06:00
Matt 57d2f02b28 Show progress is module was spawned without forkid 2014-03-23 22:24:57 -06:00
Matt ffc01054c6 Added fixes for POS. And when getblocktemplate fails because its out of sync then it shows syncing progress :) 2014-03-23 22:22:01 -06:00
Matt 32dc22944e Better logging 2014-03-23 00:16:22 -06:00
Matt a07bfd3a2e Refactored fix for previous commit 2014-03-22 12:44:12 -06:00
Daniel Zuwala e1d9332e9a Fixed issue #39 2014-03-21 21:12:25 +01:00
Matt b965b2d61d Another fix where vardiff was breaking things 2014-03-20 12:20:08 -06:00
Matt b2052b6fbd Fixed vardiff (thanks pokecheck) 2014-03-20 01:24:13 -06:00
Matt ed75a50d11 Do not depend on getmininginfo to see network diff 2014-03-19 15:20:06 -06:00
Matt 50c8fb7c1b Added txRefreshInterval 2014-03-19 14:52:27 -06:00
Matt 98d3dcc532 Added log error for socket error 2014-03-15 17:50:10 -06:00
Matt 5fd4097ce6 Removed console.logs not needed 2014-03-14 17:50:11 -06:00
Matt b85f78ef09 Fixed tx was removed during merge 2014-03-14 17:37:10 -06:00
Matt a4ba169300 Fixed typo in stratum.js 2014-03-14 16:25:35 -06:00
Andrea bcad84af80 Fixed merging shit lol 2014-03-14 20:53:20 +00:00
Andrea a4f302b526 Stuff for miners switch 2014-03-14 19:11:52 +00:00
Matt 7cf448d1e2 Added reward to share emit (for payment processing ;) ) 2014-03-12 15:55:58 -06:00
Matt 585baf7b92 Added tx to share emit 2014-03-09 20:32:24 -06:00
Matt a608380597 Catch error better for invalid rpc auth 2014-03-09 13:28:39 -06:00
Matt 4a088b19fc Fix for miners disconnecting. Jobs are broadcasted at least every 30 seconds. 2014-03-09 13:16:47 -06:00
Bradley Matusiak 80658e8824 Update varDiff.js
options where not defined.. turned out its under key in ports object
2014-03-07 03:31:18 -05:00
Bradley Matusiak 41fcb8b204 Update varDiff.js 2014-03-07 03:03:04 -05:00
Matt f43a5833cf Added the gibberish mining.set_difficulty flag to subscription - needed by some miners 2014-03-06 15:55:10 -07:00
Matt bd2de18dab Made ban purge interval a config 2014-03-06 14:27:23 -07:00
Matt 43aa152c85 Added worker banning feature and updated readme 2014-03-06 13:46:16 -07:00
Matt 56e1905bb3 connection timeout to ms 2014-03-06 01:52:24 -07:00
Matt 7dbcc4f863 Updated readme desc 2014-03-06 01:50:43 -07:00
Matt 78d2e9bb14 Bug fix with stratum auth 2014-03-04 13:24:24 -07:00
Matt 98e57a1712 Removed innaccurate log message 2014-03-04 01:34:24 -07:00
Matt eaf8f99d30 Added support for multiple ports with their own diffs and vardiff 2014-03-03 22:54:20 -07:00
Andrea Baccega 1716d6d738 Fixes issue #17 . Damn semicolumn! 2014-03-03 22:16:10 +01:00
Andrea Baccega db331a697c Fix issue #16
Fix issue #16
2014-03-03 09:38:22 +01:00
Andrea Baccega 1e3c47d527 Refactored handleAuthorize to accept a new parameter used to reply or not to the socket 2014-03-02 15:57:06 +01:00
Matt a0a46621a2 Restructured module - removed stratum object so only pool object is exposed 2014-03-01 12:18:18 -07:00
Andrea Baccega 75dfeccd8c Added basic API + first draft of miner moving methods 2014-03-01 20:04:13 +01:00
Matt 06e882d80e Moved blocknotify related code out of this repo into the portal repo where it is more appropriately used 2014-02-28 20:13:51 -07:00
Matt c81d9c463a Refactored configuration options to preparation for portal software 2014-02-27 16:59:32 -07:00
Matt b33d5f7941 Made network difficulty different than share difficulty - had accidently made them duplicate 2014-02-27 12:32:54 -07:00
Matt b6c8039168 Fixed type rcpCommand -> rpcCommand lol 2014-02-27 11:40:50 -07:00
Matthew Little d45c2fadc6 Merge pull request #13 from bricecarpentier/master
Fixed issue #12
2014-02-27 11:33:42 -07:00
Matt 6cc97aff5b Better error handling when dealing with multiple RPC daemons 2014-02-27 11:27:09 -07:00
Brice Carpentier eb8907e1a9 fixed #12 JobManager's newBlock event never gets emitted
The `init` function does not auto-execute anymore. It is instead added as a public member for `DaemonInterface` and called by `Pool.SetupDaemonInterface`.
2014-02-27 10:27:43 +01:00
Matt 16807d3226 Added more details for upcoming new hashing algos 2014-02-27 01:31:17 -07:00
Matt 4bad017613 Added block/network difficulty to pool on share emitter 2014-02-27 01:26:43 -07:00
Matt 2d1b23ddb8 Minor logging improvements 2014-02-27 00:25:23 -07:00
Matt 0f38fd5549 Fixed bug where block was not being reported as found when it actually was 2014-02-26 22:56:47 -07:00
Matt 57f8dc3ffa Add block height to data emitted on pool share 2014-02-26 21:34:04 -07:00
Matt 79c1a95b59 Switch vardiff.mode to safe by default. 2014-02-26 21:21:41 -07:00
Matt 5b0c39e840 Fix for broken block polling 2014-02-26 18:37:12 -07:00
Matt 2d3416a02f Added support for multiple daemons/rpc for redundancy when they occasionally die or drop out-of-sync 2014-02-26 18:16:18 -07:00
Matt 37ab36f776 Check for updates with block transactions 2014-02-25 14:19:11 -07:00
Matthew Little 6d310ef968 Cleaner message stream reading 2014-02-22 21:13:14 -07:00
Matthew Little 47892ab6d8 Cleaner message stream reading 2014-02-22 20:52:11 -07:00
Matthew Little 0a6f05a067 Update peer.js
Added documentation for relay transaction flag.
2014-02-22 19:28:02 -07:00
Matthew Little 69feb04da1 Convert diff dividend to bignum only on init. 2014-02-21 23:09:02 -07:00
Matthew Little 070d7c2f2a Merge pull request #7 from bart-is/master
Fixed calculating user share target by using bignum
2014-02-21 21:09:25 -07:00
Matt 31d42f3f51 Began work on creating a peer node module for more efficient block notifications 2014-02-21 17:49:59 -07:00
bart-is b2f4596f1c Fixed calculating user share target by using bignum 2014-02-21 23:38:15 +00:00
Matt b5da5857be Close socket on flooding detection 2014-02-20 16:32:13 -07:00
Matt 04ba84f185 Closes socket when receiving malformed messages from client. Node-stratum now passes 20k concurrent requests with apache benchmark test. 2014-02-20 15:49:43 -07:00
Matt 422822ff14 Very miner code reformatting 2014-02-20 00:14:19 -07:00
Matt a202be4976 Added log message for if running on testnet or live blockchain 2014-02-20 00:11:30 -07:00
Matt c898ecd52c Updated some comments 2014-02-20 00:02:18 -07:00
Matt 2f4425a087 Updated readme setup options 2014-02-19 23:46:14 -07:00
Matt 1b7a0fd7ad vardiff mode 2014-02-19 17:26:20 -07:00
Andrea Baccega 969292c111 Removed debuglogging
Moved the difficultyChanged code
2014-02-20 01:04:04 +01:00
Andrea Baccega 3ed4e93b5f Refactored Matthew fix for vardiff.
Fixed .size() bug that was causing crash

Merge branch 'master' of https://github.com/zone117x/node-stratum

Conflicts:
	lib/jobManager.js
2014-02-20 00:45:32 +01:00
Matt 25df42692c Uses pendingDifficulty 2014-02-19 16:32:38 -07:00
Andrea Baccega 04ddb472ee Fixed nTime check. We were comparing the nTime(hex) with an int. So string comparison were going on! 2014-02-20 00:09:15 +01:00
Matt 9d8255a620 Vardiff perfect fix 2014-02-19 16:07:25 -07:00
Matt 96cfc412a8 Added random or configurable instance ID 2014-02-19 15:53:36 -07:00
Matt d6b99ba0d9 Added X11-hashing for DarkCoin 2014-02-19 14:59:39 -07:00
Matt c8553e63af Fixed duplicate shares on vardiff difficulty update. Added more comments. 2014-02-19 13:54:59 -07:00
Matt 0dcccbd56e Fixed duplicate shares on vardiff difficulty update. Added more comments. 2014-02-19 13:52:43 -07:00
Matt 897dadbf11 Fixed duplicate shares on vardiff difficulty update. Added more comments. 2014-02-19 13:46:17 -07:00
Andrea Baccega 3054616736 Fixed getdifficulty request to rpc
Fixed vardiff (currently not taking into account daemon difficulty since it looks like it's non-sense)
2014-02-19 01:15:30 +01:00
Matt 700160fdb9 Another fix for serializing height in coinbase. and removed old code 2014-02-18 14:31:46 -07:00
Matt 3e77791509 Another fix for serializing height in coinbase. and removed old code 2014-02-18 14:27:48 -07:00
Matt 5328250d06 Fix packInt64 2014-02-18 13:57:52 -07:00
Matt 9edaa33c8b Fix for counter 2014-02-18 13:55:45 -07:00
Matt 028321a248 Fix for counter 2014-02-18 13:55:09 -07:00
Matt 880c9d06a8 Fix for counter 2014-02-18 13:53:31 -07:00
Matt f8e0363cda Fixed bug in util.packUInt16LE 2014-02-18 13:42:16 -07:00
Matt d0953c4196 Removed binpack as dependency. Possible fix with invalid height in coinbase problem. 2014-02-18 13:35:23 -07:00
Andrea Baccega bda4c57bd9 Fixed crash when running over a POS coin
Added emitLog for debugging the Block Submit
2014-02-14 12:03:25 +01:00
Andrea Baccega e1c143de18 Merge branch 'master' of https://github.com/zone117x/node-stratum
Conflicts:
	lib/pool.js
2014-02-13 22:25:33 +01:00
Andrea Baccega 4fdd4fcf51 Fixed a couple of bugs that were preventing the thing to start in case of POS 2014-02-13 22:23:51 +01:00
Matt 6dde238374 Added POS and transaction comment support 2014-02-13 14:16:07 -07:00
Matt 863c8bbf5f Added POS and transaction comment support 2014-02-13 14:02:58 -07:00
Matt 4691df0dc5 Added POS and transaction comment support 2014-02-13 13:59:47 -07:00
Brice Carpentier bf6f976ab0 fixed variable name mismatch 2014-02-09 16:40:33 +01:00
Matthew Little d5fdc519e5 Added socket buffer flooding detection 2014-01-17 14:21:18 -07:00
Matthew Little d38b332f81 Better errors on init 2014-01-17 12:48:23 -07:00
Matthew Little beff912825 Better errors on init 2014-01-17 12:41:35 -07:00
Matthew Little 6cdc9214ac Added events for mpos compatibility 2014-01-16 17:21:23 -07:00
Matthew Little 524e366dba Added pool.start() so log event can be hooked in time for initialization 2014-01-16 12:27:27 -07:00
Matthew Little 1205706ca0 vardiff bug fixes 2014-01-16 12:17:48 -07:00
Matthew Little 08e16cfb28 some comments 2014-01-16 10:05:44 -07:00
Matthew Little e1c24559f0 Added initial vardiff. Needs testing... 2014-01-15 21:54:41 -07:00
Matthew Little cca1313430 Added initial vardiff. Needs testing... 2014-01-15 20:57:18 -07:00
Matthew Little 13b04ab509 Added initial vardiff. Needs testing... 2014-01-15 20:56:55 -07:00
Matthew Little 8e3b28cea3 Fixed up error handling for stratum socket 2014-01-15 17:52:05 -07:00
Matthew Little e02b265d13 Added lots of comments, cleaned up a some code 2014-01-15 17:37:43 -07:00
Matthew Little 11338e0f16 Optimized generation transaction building. Should be a bit faster. 2014-01-15 16:49:22 -07:00
Matthew Little cb5d7c7bdc Add check for if submitblock was successful and refined the data emitted by onShare 2014-01-15 16:03:30 -07:00
Matthew Little cbcaa1cf98 Added proper block hash to share solution. Added members to emitted share data. 2014-01-14 18:40:19 -07:00
Andrea Baccega 61db6d7ea4 Removed jobs object from jobManager since we only need one job! There's no need to keep the olders in memory.
Refactored, a bit, the emit log event introducing a key for every log message Current keys are:
 - 'client': for all the client related events
 - 'submitblock': dedicated only to events about the block submission!
 - 'system': all log events about the stratum pool
2014-01-14 14:32:30 +01:00
Matthew Little a67082131d Updated structure 2014-01-13 19:02:07 -07:00
Matthew Little 5e8353edc8 Updated structure 2014-01-13 18:06:39 -07:00
Matthew Little cea68b771f Updated structure 2014-01-13 17:45:10 -07:00