Giter Site home page Giter Site logo

stratum-mining's People

Contributors

ahmedbodi avatar bryant1410 avatar cryptoexpert avatar daygle avatar erasmospunk avatar fredyy90 avatar hartland avatar just-an-dev avatar kusano avatar ljudoed avatar lmangani avatar mezrin avatar neozonz avatar nevrending avatar nicoschtein avatar obigal avatar ocminer avatar penner42 avatar slaveofmoney avatar vanch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stratum-mining's Issues

'Module' Object has no attribute Error When Mining

Sorry to bother you again.

I have noticed when a miner connects to my pool every now and then a share will be rejected and a message is displayed "'module' object has no attribute".

Looking at Google this refers to code layout???

It doesn't happen all the time just every now and then.

Any clue to why this happens?

Saving troubled block submissions

Here is an proposal:

Currently, when submitting an block and error occurs, the block is thrown away.This might represent many hours of mining by a large group of people, so not acceptable.

But in most cases the error condition is temporary. Therefore, the found block data could be saved and re-sent later, perhaps in memory, or even better in the SQL database used anyway.

I don't think this will require much coding. Python is not my thing, but I could contribute some code if necessary to have this work.

Share is above target

Hello,
I'm setting up a Quark Pool.
In config.py I set up POOL_TARGET to 10 (don't know what value to put, so random)
All my shares are invalid because "Share is above target", I tried to set POOL_TARGET to 1000 and use VARDIFF to put 200 difficulty to the workers but still "Share is above target".

Can you help me please ?
Thank you.

Betacoin stratum : Stratum authentification failed....

Hi! Im using your stratum-mining but it doesnt work for me. I set everything up, ports, addresses etc. Betacoind is running, launcher.tac is running, everything seems fine unless you try to connect with cpu miner. I set the stratum port to 3334 because i have also stratum-mining-litecoin. I cant mine on this stratum with betacoin, how come is it? help me please thank you

!!! EDIT !!! :
I figured it out. My stratum-mining-betacoin is running, but i have another problem. On my MPOS site, i signed in, created a worker. But when im mining, i cant see any progress or any khash/s from my worker, and cant even see it active. Where is the problem?

(Question) switching from moopless to this - any DB changes?

I'm trying to get a CinnamonCoin pool up and running and I was having trouble with vardiff on the moopless PoS branch of stratum-mining, and I discovered earlier today that people do not recommend using moopless with vardiff at this time.

So I did more digging and found your fork and it looks really great! I like all of the changes you've decided to make particularly PGsql, once mpos supports PG i will be fully using that instead of MariaDB/MySQL.

My first question is, other than switching from the moopless codebase to your codebase and reloading, do I need to worry about any changes in the SQL database structure or existing data in my DB?

My second question is, this is my first attempt at setting up a pool at all. My CIN pool was unable to solve any blocks after a really long time of running against CIN while that currency had low difficulty despite getting ~15,000 valid shares, so I am fairly sure I had my settings wrong. I am moving forward with these settings using your codebase. Do you think these should be correct for a CIN pool? (coin specs: http://cinnamoncoin.org/)

COINDAEMON_ALGO = 'scrypt'
COINDAEMON_Reward = 'POS'
COINDAEMON_SHA256_TX = 'no'
VDIFF_X2_TYPE = True
VDIFF_FLOAT = False
POOL_TARGET = 16
VARIABLE_DIFF = True
USE_LITECOIN_DIFF = False
DIFF_UPDATE_FREQUENCY = 300
VDIFF_MIN_TARGET = 16
VDIFF_MAX_TARGET = 1024
VDIFF_TARGET_TIME = 15
VDIFF_RETARGET_TIME = 120
VDIFF_VARIANCE_PERCENT = 30
SOLUTION_BLOCK_HASH = True

I really appreciate the expertise and hard work you've brought to this project. Thanks!

mysql schema missing

DB_Mysql.py complains:

raise Exception("There is no shares table. Have you imported the schema?")

But there is no MySQL schema (*.sql) in the repository.

Trying to mine GlobeCoin, which is a FreiCoin Variant

I'm trying to mine GlobeCoin (https://bitcointalk.org/index.php?topic=360255.0) with your variant, these are my settings:

COINDAEMON_ALGO = 'sha256d'
COINDAEMON_Reward = 'POW'
COINDAEMON_SHA256_TX = 'no'

POOL_TARGET = 1 # Pool-wide difficulty target int >= 1

Variable Difficulty Enable

VARIABLE_DIFF = True # Master variable difficulty enable

Variable diff tuning variables

VARDIFF will start at the POOL_TARGET. It can go as low as the VDIFF_MIN and as high as min(VDIFF_MAX or Liteconin's difficulty)

USE_LITECOIN_DIFF = False # Set the maximum difficulty to the litecoin difficulty.
DIFF_UPDATE_FREQUENCY = 86400 # Update the litecoin difficulty once a day for the VARDIFF maximum
VDIFF_MIN_TARGET = 1 # Minimum Target difficulty
VDIFF_MAX_TARGET = 1000 # Maximum Target difficulty
VDIFF_TARGET_TIME = 15 # Target time per share (i.e. try to get 1 share per this many seconds)
VDIFF_RETARGET_TIME = 120 # Check to see if we should retarget this often
VDIFF_VARIANCE_PERCENT = 30 # Allow average time to very this % from target without retarget

Is stratum-mining probably incompatible with this coin ? Here the log:

2013-12-21 20:40:18,671 ERROR block_updater # UpdateWatchdog.run failed
Traceback (most recent call last):
File "/home/globe/stratum-mining/lib/block_updater.py", line 48, in run
prevhash = util.reverse_hash((yield self.bitcoin_rpc.prevhash()))
Error: 500 Internal Server Error
2013-12-21 20:40:18,671 DEBUG block_updater # Next prevhash update in 4.994 sec
2013-12-21 20:40:18,671 DEBUG block_updater # Merkle update in next -90.007 sec
2013-12-21 20:40:22,288 DEBUG mining # suprnova.03 (29, 1, False, False, 1387676026) 3.45% work_id(41c) job_id(2e) diff(4.000000)
2013-12-21 20:40:22,289 INFO template_registry # Yay, share with diff above 100000
2013-12-21 20:40:22,289 INFO template_registry # We found a block candidate! 0000000000123e230c6e0777ea66219a0ced8858c3a529816c5ac46d8dff175c
2013-12-21 20:40:22,289 INFO bitcoin_rpc # Submitting Block with Submit Block
2013-12-21 20:40:22,290 INFO bitcoin_rpc # ['020000001aceaf98f0295c374624878247afc244bcc44a7f870e22d3b9ab060000000000479bec00e6287372eab6b94c87ba69d440ef4fdea2d9acc11b80f701f243e55a6c42b6527e0b261b798f6c4f0101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff2602d373062f503253482f046c42b65208f8000004e60300000d2f7374726174756d506f6f6c2f0000000001ff07af2f000000001976a914e35afea06bba51ddfed370a9b5ce058768a27c3388ac00000000']
2013-12-21 20:40:22,291 INFO interfaces # 0000000000123e230c6e0777ea66219a0ced8858c3a529816c5ac46d8dff175c (235430967) valid suprnova.03
2013-12-21 20:40:22,301 INFO interfaces # Block 0000000000123e230c6e0777ea66219a0ced8858c3a529816c5ac46d8dff175c REJECTED
2013-12-21 20:40:22,302 INFO DBInterface # Updating Found Block Share Record
2013-12-21 20:40:22,302 DEBUG DBInterface # DBInterface.do_import called. force: yes, queue size: 10
2013-12-21 20:40:22,302 INFO DBInterface # Inserting 10 Share Records
2013-12-21 20:40:22,302 DEBUG DB_Mysql # Importing Shares
2013-12-21 20:40:22,309 ERROR template_registry # [Failure instance: Traceback (failure with no frames): <class 'twisted.web.error.Error'>: 500 Internal Server Error
]
2013-12-21 20:40:23,665 INFO block_updater # Checking for new block.
2013-12-21 20:40:23,670 DEBUG bitcoin_rpc_manager # Check Height -- Current Pool 0 : 29650

Unsafe MySQL writes?

2013-12-16 23:34:55+0100 [HTTPPageGetter,client] stratum-mining/mining/DB_Mysql.py:36: _mysql_exceptions.Warning: Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.

Galaxycoin support

Did this pool support Galaxycoin? I'm trying to setup the pool for this coin and when I set the COINDAEMON_Reward to the POS none of the solved blocks are accepted or sended to the wallet. When I set it to the POW I've got following error:

2013-12-20 09:45:23,961 DEBUG DBInterface # run_import_thread current size: 0
2013-12-20 09:45:24,625 INFO block_updater # Checking for new block.
2013-12-20 09:45:24,629 DEBUG bitcoin_rpc_manager # Check Height -- Current Pool 0 : 183527
2013-12-20 09:45:24,630 INFO block_updater # New block! Prevhash: 00000000b9237f9dd9e90d1f980c0eb84ab67af0e198577b80c7366c6e6c45a6
2013-12-20 09:45:24,630 DEBUG block_updater # Next prevhash update in 2.000 sec
2013-12-20 09:45:24,630 DEBUG block_updater # Merkle update in next 60.000 sec
2013-12-20 09:45:24,633 ERROR template_registry # [Failure instance: Traceback: <class 'struct.error'>: unpack requires a string argument of length 4
/usr/local/lib/python2.7/dist-packages/Twisted-13.2.0-py2.7-linux-x86_64.egg/twisted/internet/defer.py:1155:gotResult
/usr/local/lib/python2.7/dist-packages/Twisted-13.2.0-py2.7-linux-x86_64.egg/twisted/internet/defer.py:1142:_inlineCallbacks
/usr/local/lib/python2.7/dist-packages/Twisted-13.2.0-py2.7-linux-x86_64.egg/twisted/internet/defer.py:382:callback
/usr/local/lib/python2.7/dist-packages/Twisted-13.2.0-py2.7-linux-x86_64.egg/twisted/internet/defer.py:490:_startRunCallbacks
--- exception caught here ---
/usr/local/lib/python2.7/dist-packages/Twisted-13.2.0-py2.7-linux-x86_64.egg/twisted/internet/defer.py:577:_runCallbacks
/home/user/ahmedbodi/stratum-mining/lib/template_registry.py:139:_update_block
/home/user/ahmedbodi/stratum-mining/lib/block_template.py:68:fill_from_rpc
/home/user/ahmedbodi/stratum-mining/lib/halfnode.py:181:deserialize
/home/user/ahmedbodi/stratum-mining/lib/util.py:73:deser_vector
/home/user/ahmedbodi/stratum-mining/lib/halfnode.py:129:deserialize
/home/user/ahmedbodi/stratum-mining/lib/halfnode.py:112:deserialize
/home/user/ahmedbodi/stratum-mining/lib/util.py:32:deser_uint256

Connection is always refused

Hi, I haven't been able to connect to the port I specify in the config file yet. Stratum seems to be starting, although with a strange error, but I cannot connect.

This is the output to console:

2013-12-24 18:20:05,451 DEBUG bitcoin_rpc logger.get_logger # Logging initialized
2013-12-24 18:20:05,452 DEBUG interfaces logger.get_logger # Logging initialized
2013-12-24 18:20:05,453 DEBUG DBInterface logger.get_logger # Logging initialized
2013-12-24 18:20:05,453 DEBUG DBInterface DBInterface.connectDB # DB_Mysql_Vardiff INIT
2013-12-24 18:20:05,454 DEBUG DB_Mysql logger.get_logger # Logging initialized
2013-12-24 18:20:05,458 DEBUG DB_Mysql logger.get_logger # Logging initialized
2013-12-24 18:20:05,458 DEBUG DB_Mysql DB_Mysql.__init__ # Connecting to DB
2013-12-24 18:20:05,466 DEBUG DB_Mysql DB_Mysql.check_tables # Checking Database
2013-12-24 18:20:05,467 DEBUG DBInterface DBInterface.clearusercache # DBInterface.clearusercache called
2013-12-24 18:20:05,468 DEBUG subscription logger.get_logger # Logging initialized
2013-12-24 18:20:05,469 DEBUG mining logger.get_logger # Logging initialized
2013-12-24 18:20:05,477 DEBUG work_log_pruner logger.get_logger # Logging initialized
2013-12-24 18:20:05,478 DEBUG BasicShareLimiter logger.get_logger # Logging initialized
2013-12-24 18:20:05,478 DEBUG DBInterface DBInterface.connectDB # DB_Mysql_Vardiff INIT
2013-12-24 18:20:05,479 DEBUG DB_Mysql DB_Mysql.__init__ # Connecting to DB
2013-12-24 18:20:05,480 DEBUG DB_Mysql DB_Mysql_Vardiff.clear_worker_diff # Resetting difficulty for all workers
2013-12-24 18:20:05,491 DEBUG mining logger.get_logger # Logging initialized
2013-12-24 18:20:05,492 DEBUG block_updater logger.get_logger # Logging initialized
2013-12-24 18:20:05,493 DEBUG template_registry logger.get_logger # Logging initialized
2013-12-24 18:20:05,494 DEBUG bitcoin_rpc_manager logger.get_logger # Logging initialized
########################################### Loading LTC Scrypt Module #########################################################
########################################### NOT Loading POS Support ######################################################
########################################### NOT Loading SHA256 Transaction Message Support ######################################################
2013-12-24 18:20:05,510 DEBUG halfnode logger.get_logger # Logging initialized
2013-12-24 18:20:05,512 DEBUG coinbaser logger.get_logger # Logging initialized
2013-12-24 18:20:05,513 INFO mining __init__.setup # Connecting to litecoind...
2013-12-24 18:20:05,515 DEBUG Getwork Proxy logger.get_logger # Logging initialized
2013-12-24 18:20:05,528 DEBUG stats logger.get_logger # Logging initialized
2013-12-24 18:20:05,537 DEBUG protocol logger.get_logger # Logging initialized
2013-12-24 18:20:05,547 DEBUG socket_transport logger.get_logger # Logging initialized
2013-12-24 18:20:05,586 DEBUG proxy logger.get_logger # Logging initialized
2013-12-24 18:20:05,588 DEBUG proxy logger.get_logger # Logging initialized
2013-12-24 18:20:05,589 DEBUG proxy logger.get_logger # Logging initialized
2013-12-24 18:20:05,590 INFO proxy jobs.<module> # C extension for midstate not available. Using default implementation instead.
2013-12-24 18:20:05,590 DEBUG proxy logger.get_logger # Logging initialized
2013-12-24 18:20:05,591 DEBUG proxy logger.get_logger # Logging initialized
2013-12-24 18:20:05-0500 [-] Log opened.
2013-12-24 18:20:05-0500 [-] twistd 13.0.0 (/usr/bin/python 2.7.5) starting up.
2013-12-24 18:20:05-0500 [-] reactor class: twisted.internet.epollreactor.EPollReactor.
2013-12-24 18:20:20,482 DEBUG DBInterface DBInterface.run_import_thread # run_import_thread current size: 0
2013-12-24 18:20:35,494 DEBUG DBInterface DBInterface.run_import_thread # run_import_thread current size: 0
2013-12-24 18:20:50,509 DEBUG DBInterface DBInterface.run_import_thread # run_import_thread current size: 0
2013-12-24 18:21:05,520 DEBUG DBInterface DBInterface.run_import_thread # run_import_thread current size: 0
2013-12-24 18:21:06-0500 [HTTPPageGetter,client] Connection was closed cleanly.
2013-12-24 18:21:06-0500 [HTTPPageGetter,client] Unhandled error in Deferred:
2013-12-24 18:21:06-0500 [HTTPPageGetter,client] Unhandled Error
    Traceback (most recent call last):
      File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 421, in errback
        self._startRunCallbacks(fail)
      File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 488, in _startRunCallbacks
        self._runCallbacks()
      File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 575, in _runCallbacks
        current.result = callback(current.result, *args, **kw)
      File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1126, in gotResult
        _inlineCallbacks(r, g, deferred)
    --- <exception caught here> ---
      File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1068, in _inlineCallbacks
        result = result.throwExceptionIntoGenerator(g)
      File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator
        return g.throw(self.type, self.value, self.tb)
      File "/home/akchecoin/stratum-mining/mining/__init__.py", line 59, in setup
        if isinstance(e[2], str):
    exceptions.IndexError: tuple index out of range

2013-12-24 18:21:20,535 DEBUG DBInterface DBInterface.run_import_thread # run_import_thread current size: 0
2013-12-24 18:21:35,540 DEBUG DBInterface DBInterface.run_import_thread # run_import_thread current size: 0
2013-12-24 18:21:50,544 DEBUG DBInterface DBInterface.run_import_thread # run_import_thread current size: 0
2013-12-24 18:22:05,559 DEBUG DBInterface DBInterface.run_import_thread # run_import_thread current size: 0

part of my config.py:

CENTRAL_WALLET = 'MY_WALLET_ADDR'   # local coin address where money goes

COINDAEMON_TRUSTED_HOST = 'localhost'
COINDAEMON_TRUSTED_PORT = 51684
COINDAEMON_TRUSTED_USER = 'MYUSERNAME'
COINDAEMON_TRUSTED_PASSWORD = 'MYPASSWORD'

COINDAEMON_ALGO = 'scrypt'
COINDAEMON_Reward = 'POW'
COINDAEMON_SHA256_TX = 'no'

# Hostname or external IP to expose
HOSTNAME = 'localhost'

# Port used for Socket transport. Use 'None' for disabling the transport.
LISTEN_SOCKET_TRANSPORT = 3333
# Port used for HTTP Poll transport. Use 'None' for disabling the transport
LISTEN_HTTP_TRANSPORT = None
# Port used for HTTPS Poll transport
LISTEN_HTTPS_TRANSPORT = None
# Port used for WebSocket transport, 'None' for disabling WS
LISTEN_WS_TRANSPORT = None
# Port used for secure WebSocket, 'None' for disabling WSS
LISTEN_WSS_TRANSPORT = None


# Salt used when hashing passwords
PASSWORD_SALT = 'some_crazy_string'

# ******************** Database  *********************

DATABASE_DRIVER = 'mysql'        # Options: none, sqlite, postgresql or mysql
# MySQL
DB_MYSQL_HOST = 'localhost'
DB_MYSQL_DBNAME = 'mpos'
DB_MYSQL_USER = 'mpos'
DB_MYSQL_PASS = 'MY_PASS'
...

Any ideas would be appreciated.

Note: I don't think there is a firewall issue. Other server programs can run fine without any firewall setting.

Mining_Libs Failed To Load

Hi,

I'm getting the below error when running:-

Failed to load application: No module named mining_libs

Any ideas to why this is happening?

Thanks

Weird dump, probably because of miner not using stratum+tcp://

Might need to handle this exception, to make the log prettier. Or even redirect the miners who access the site incorrectly :)

2013-12-16 23:23:28+0100 [Protocol,286,IP_TO_HOST] 2013-12-16 23:23:28,162 ERROR protocol # Processing of message failed
2013-12-16 23:23:28+0100 [Protocol,286,IP_TO_HOST] Traceback (most recent call last):
2013-12-16 23:23:28+0100 [Protocol,286,IP_TO_HOST] File "/usr/local/lib/python2.7/dist-packages/stratum-0.2.12-py2.7.egg/stratum/protocol.py", line 185, in dataReceived
2013-12-16 23:23:28+0100 [Protocol,286,IP_TO_HOST] self.lineReceived(line, request_counter)
2013-12-16 23:23:28+0100 [Protocol,286,IP_TO_HOST] File "/usr/local/lib/python2.7/dist-packages/stratum-0.2.12-py2.7.egg/stratum/protocol.py", line 216, in lineReceived
2013-12-16 23:23:28+0100 [Protocol,286,IP_TO_HOST] raise custom_exceptions.ProtocolException("Cannot decode message '%s'" % line)
'013-12-16 23:23:28+0100 [Protocol,286,IP_TO_HOST] ProtocolException: Cannot decode message 'GET / HTTP/1.0

Some Errors during Mining

I see the following 3 types of errors in my log:

2013-11-20 20:19:39,190 ERROR protocol # [Failure instance: Traceback: <type 'exceptions.AttributeError'>: 'module' object has no attribute 'USE_LITECOIN_DIFF'
/usr/local/lib/python2.7/site-packages/stratum-0.2.13-py2.7.egg/stratum/protocol.py:192:dataReceived
/usr/local/lib/python2.7/site-packages/stratum-0.2.13-py2.7.egg/stratum/protocol.py:238:lineReceived
/usr/local/lib/python2.7/site-packages/stratum-0.2.13-py2.7.egg/stratum/services.py:13:_handle_event
/usr/local/lib/python2.7/site-packages/stratum-0.2.13-py2.7.egg/stratum/services.py:81:call
--- <exception caught here> ---
/usr/local/lib/python2.7/site-packages/twisted/internet/defer.py:137:maybeDeferred
/usr/local/lib/python2.7/site-packages/stratum-0.2.13-py2.7.egg/stratum/services.py:78:_run
/usr/local/stratum-mining-ocoin/mining/service.py:94:submit
/usr/local/stratum-mining-ocoin/mining/basic_share_limiter.py:128:submit
]
None

And:

2013-11-20 20:10:19,078 ERROR template_registry # [Failure instance: Traceback: <class 'struct.error'>: unpack requires a string argument of length 4
/usr/local/lib/python2.7/site-packages/twisted/internet/defer.py:1126:gotResult
/usr/local/lib/python2.7/site-packages/twisted/internet/defer.py:1113:_inlineCallbacks
/usr/local/lib/python2.7/site-packages/twisted/internet/defer.py:380:callback
/usr/local/lib/python2.7/site-packages/twisted/internet/defer.py:488:_startRunCallbacks
--- <exception caught here> ---
/usr/local/lib/python2.7/site-packages/twisted/internet/defer.py:575:_runCallbacks
/usr/local/stratum-mining-ocoin/lib/template_registry.py:134:_update_block
/usr/local/stratum-mining-ocoin/lib/block_template.py:64:fill_from_rpc
/usr/local/stratum-mining-ocoin/lib/halfnode.py:148:deserialize
/usr/local/stratum-mining-ocoin/lib/util.py:71:deser_vector
/usr/local/stratum-mining-ocoin/lib/halfnode.py:112:deserialize
/usr/local/stratum-mining-ocoin/lib/halfnode.py:95:deserialize
/usr/local/stratum-mining-ocoin/lib/util.py:30:deser_uint256

Finally...

2013-11-20 20:18:22,543 ERROR bitcoin_rpc # Both SubmitBlock and GetBlockTemplate failed. Problem Submitting block 500 Internal Server Error
Traceback (most recent call last):
  File "/usr/local/stratum-mining-ocoin/lib/bitcoin_rpc.py", line 51, in submitblock
    resp = (yield self._call('getblocktemplate', [{'mode': 'submit', 'data': block_hex}]))
Error: 500 Internal Server Error

Hi,I have a problem about support

I just saw README that say "It is compatible with MPOS as well as mmcfe "

but when my connect to SQL of mmcfe ,tip me "Failed to load application: (1054, "Unknown column 'difficulty' in 'field list'")".What should I do?

Thanks.

Add features from wadewomersley/stratum-mining fork

I like some of the features present in https://github.com/wadewomersley/stratum-mining fork of the stratum-mining server fork.

Items such as

  • Basic Stats (lib/basic_stats.py)
  • Email notifications (lib/notify_email.py)
  • Admin Interface (lib/admin_interface.py)
  • The automatic loading of the SQL schema (mining/DB_Mysql.py->check_tables())
  • Ability to recover from losing the connection to the coin daemon. Currently, with your fork if the connection is lost, the server crashes.

submitblock doesn't write out the hash in twistd.log

So if it fails with this, we never gets to see the hash in question. So we can't try to manually add it.

2013-12-16 23:05:23+0100 [Protocol,27,IP_TO_FINDER] Submitting Block with Submit Block
2013-12-16 23:05:23+0100 [HTTPPageGetter,client] Submit Block call failed, trying GetBlockTemplate
2013-12-16 23:05:23+0100 [HTTPPageGetter,client] Unhandled error in Deferred:
2013-12-16 23:05:23+0100 [HTTPPageGetter,client] Unhandled Error
Traceback (most recent call last):
Failure: twisted.web.error.Error: 500 Internal Server Error

USE_LITECOIN_DIFF in mining/basic_share_limiter.py

config changed from USE_LITECOIN_DIFF to USE_COINDAEMON_DIFF in config.py.

But USE_LITECOIN_DIFF is in mining/basic_share_limiter.py.

136
137
138
# Don't go above LITECOIN or VDIFF_MAX_TARGET
if settings.USE_LITECOIN_DIFF:
self.update_litecoin_difficulty()
...

148
149
150
# Don't go above LITECOIN or VDIFF_MAX_TARGET
if settings.USE_LITECOIN_DIFF:
self.update_litecoin_difficulty()

Strange miners going for SHA-256d when --scrypt was given?

I've a pool that's running around 250 mh/s but I'm hitting miners with a strange problem;

First our pool is PoW and scrypt..

First the screenshot;

Screenshot

She has ~630 MH/s on her r9 290's! Somehow the miner goes for sha-256d i guess;

Here's the exact parameters she was using;

cgminer.exe -o stratum+tcp://stratum.coinium.org:3336 -u claireg.1 -p x --scrypt -I 13

As seen in the screenshot she uses cgminer 3.7.2.

And strangely enough I've seen 2 more peeps with exact situation;

one more:
Screenshot

another one:
Screenshot

More strangely for most people the pool just works (250MH/s scrypt PoW pool)

SIGHUP signal support for configuration reload

Hi,

in some cases it's necessary to reload pool configuration file. It would be great if it could be done without restarting poll. Is it possible to add support for SIGUP signal to reload pool configuration?

Mining EarthCoin (scrypt) yields error when finding blocks

stratum-log:

2013-12-22 03:14:49,285 DEBUG mining # suprnova.triple59 (27, 1, False, False, 1387699665) 3.70% work_id(774) job_id(350) diff(320.000000)
2013-12-22 03:14:49,288 INFO template_registry # Yay, share with diff above 100000
2013-12-22 03:14:49,288 INFO template_registry # We found a block candidate! 00000000153c2b5dd5e6bd46e42d788ae13c1e277ea286259dc2b286e5f2b248
2013-12-22 03:14:49,291 ERROR template_registry # Final job validation failed!
2013-12-22 03:14:49,291 INFO bitcoin_rpc # Submitting Block with Submit Block
2013-12-22 03:14:49,291 INFO bitcoin_rpc # ['01000000774532df5c39b454cf2ac9402786ab9f025854f3f75ec93a36dbd1afb81f85c975af39560618453153f98e227c868cda5c6abe37d0436faec06288a6f4d6f675699fb65203543e1c003e3dbb0301000000010000000000000000000000000000000000000000000000000000000000000000ffffffff26023707062f503253482f046b9fb65208f80000040c0000000d2f7374726174756d506f6f6c2f00000000014076c690bd0200001976a9148e138449f38da76049f687b63374ff193d13b20588ac000000000200000001bb762535accd2afbe92a1e07c38cec0265daedda41280d6b08c9f0df14f2da1e000000006c49304602210080e457f7c848d23516b33d4b4bf5bb369fa37d049e852dc9e817697a87a29b0b022100fac133e604d43e81fd687b931264308ffcf1aad297f583a25608c422360e872f0121032f3ec8f87013c5249d566eb9a8100c2f8b058a3d8705e9e5f57eae61082d7ca8ffffffff0200fc27710ca013001976a9143cf48b26ee9ed4f4c299627f6e35eb9a80e8e42788ac00204aa9d10100001976a91478fa6f1c1874f34f43330b9bfaa2dcbe44a7171788ac000000000200000001a4d5f7338d392bc042e26100b9e815751d952021fcebb8d71e6948054a978856000000006c493046022100cf96bc7ee5dd0b5f38df7851e546209f7424f8a00070e993ae133772c78d97a8022100f8ff46d635b4826261a7bdef62c2c11fa059e0708d7e6a1c4839c28df6b00b79012102dc4f2fae5a968ff59439f3d3aa05e74447d6a79ab58946d76d0710f4633049c6ffffffff02af986c76410000001976a914bfaecbb7d7c3de6cc669fd456ab8a0bef8b2639588ac0a53c8ca0f0000001976a9142938d72b13bdb4fb020f25f0ab8e777d0b57cc7388ac00000000']
2013-12-22 03:14:49,293 INFO interfaces # 9f225ffa09d40957651a7433d2a9cc322472a24257000b3a8bf4edc152b70b9f (790060) valid suprnova.triple59
2013-12-22 03:14:49,301 INFO template_registry # None
2013-12-22 03:14:49,301 INFO template_registry # New template for c9851fb8afd1db363ac95ef7f35458029fab862740c92acf54b4395cdf324577
2013-12-22 03:14:49,302 INFO subscription # BROADCASTED to 2 connections in 0.000 sec
2013-12-22 03:14:49,302 INFO template_registry # Update finished, 0.003 sec, 3 txes
2013-12-22 03:14:49,303 ERROR bitcoin_rpc # Submit Block call failed, trying GetBlockTemplate
Traceback (most recent call last):
File "/home/marcel/stratum-mining/lib/bitcoin_rpc.py", line 48, in submitblock
resp = (yield self._call('submitblock', [block_hex,]))
Error: 404 Not Found
2013-12-22 03:14:49,306 INFO proxy # New job 351 for prevhash df324577, clean_jobs=False
2013-12-22 03:14:49,308 ERROR bitcoin_rpc # Both SubmitBlock and GetBlockTemplate failed. Problem Submitting block 500 Internal Server Error
Traceback (most recent call last):
File "/home/marcel/stratum-mining/lib/bitcoin_rpc.py", line 52, in submitblock
resp = (yield self._call('getblocktemplate', [{'mode': 'submit', 'data': block_hex}]))
Error: 500 Internal Server Error
2013-12-22 03:14:50,165 INFO block_updater # Checking for new block.
2013-12-22 03:14:50,171 DEBUG bitcoin_rpc_manager # Check Height -- Current Pool 0 : 1846

Inserting share records fails with Postgresql

Hi,

Using postgresql 9.3.2 + psycopg2 2.5.1 I'm hitting the following error:

2013-12-17 12:30:10,834 INFO DBInterface DBInterface.do_import # Inserting 19 Share Records
2013-12-17 12:30:10,834 DEBUG DB_Postgresql DB_Postgresql.import_shares # Importing Shares
2013-12-17 12:30:10,845 ERROR DBInterface DBInterface.do_import # Insert Share Records Failed: invalid literal for int() with base 10: '336.0'

This change seems to make things work, but I am not familiar enough with the code to know if this is the correct solution.

--- a/mining/DB_Postgresql.py
+++ b/mining/DB_Postgresql.py
@@ -93,11 +93,11 @@ class DB_Postgresql():

         if settings.DATABASE_EXTEND :
             self.dbc.execute("select value from pool where parameter = 'round_shares'")
-            round_shares = int(self.dbc.fetchone()[0]) + total_shares
+            round_shares = int(float(self.dbc.fetchone()[0])) + total_shares
             self.dbc.execute("update pool set value = %s where parameter = 'round_shares'",[round_shares])

             self.dbc.execute("select value from pool where parameter = 'round_best_share'")
-            round_best_share = int(self.dbc.fetchone()[0])
+            round_best_share = int(float(self.dbc.fetchone()[0]))
             if best_diff > round_best_share:
                 self.dbc.execute("update pool set value = %s where parameter = 'round_best_share'",[best_diff])

Block hash check against getblock issues

There is an issue with coin daemons that only recognize the scrypt_hash_hex and not the block_hash_hex when using the get block command.

Pools are getting 500 errors during the check to see if a submitted block was actually put on the block chain.
As a temporary solution I have passed the scrypt_hash_hex with the other 3 parameters to the submit block function in both bitcoin rpc modules. There needs to be changes in four spots. This quick "fix-hack" works with daemons that need the scrypt_hash_hex for get block, but I have not completely evaluated and made the changes with all the consideration needed. I believe all scrypt coins accept scrypt_hash_hex for the get block command , so perhaps that along with the block_hex is all that is needed to be passed.

I will work on a correct solution and submit a pull request when ready.
In the meantime , I could put up the 'hacked' version as a quick fix for those having trouble.

Multi Algo Support

Support Multiple algorithms from 1 set of code such as sha256 and scrypt via a config option

lib/bitcoin_rpc.py block summit problem

coin : lottocoin, grandcoin ( scrypt/pow)

block summit fail caused by Final job validation fail.
failed blockhex has malformed string.

every failed block has log "ERROR template_registry # Final job validation failed!"

please see attached.

  1. block summit success log

2013-12-22 23:11:00,690 INFO template_registry # Yay, share with diff above 100000
2013-12-22 23:11:00,690 INFO template_registry # We found a block candidate! 0000000028326580e4253fa3abbfe11a6d755568d3b6f7bee970151db633ab0b
2013-12-22 23:11:00,691 INFO bitcoin_rpc # Submitting Block with Submit Block
2013-12-22 23:11:00,691 INFO bitcoin_rpc # ['01000000e3e01f09392ae3f561c1ea467dda3a1b96ccd2691551c332fcc6c5ac18dcac80b0d4e99719359ccb9ebfae1b4a6770ac6c7705916757e266ecaa3b15123bacbcd3f2b6524cd8331c0006a7ed0101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff2602b071062f503253482f04d4f2b65208f8000058060000000d2f7374726174756d506f6f6c2f0000000001009a912d230100001976a9144fe0da24aa998d5f1ad7fb2042c4aa4062de2cb588ac00000000']
2013-12-22 23:11:00,692 INFO interfaces # a1be765f8031543ffd504f6ffb2903e1b96a62bf75ff95e50f444ebee39370c7 (417369) valid icarus.4
2013-12-22 23:11:00,694 ERROR bitcoin_rpc # Submit Block call failed, trying GetBlockTemplate
Traceback (most recent call last):
File "/opt/stratum-mining-lottocoin/lib/bitcoin_rpc.py", line 48, in submitblock
resp = (yield self._call('submitblock', [block_hex,]))
Error: 404 Not Found
2013-12-22 23:11:00,869 INFO interfaces # Block a1be765f8031543ffd504f6ffb2903e1b96a62bf75ff95e50f444ebee39370c7 ACCEPTED

  1. fail log

2013-12-22 21:59:05,199 INFO template_registry # Yay, share with diff above 100000
2013-12-22 21:59:05,200 INFO template_registry # We found a block candidate! 00000000149181f8da8e8c5f17ca2a62236e67e29f3bc51be83a27400ce1a867
2013-12-22 21:59:05,201 ERROR template_registry # Final job validation failed!
2013-12-22 21:59:05,201 INFO bitcoin_rpc # Submitting Block with Submit Block
2013-12-22 21:59:05,201 INFO bitcoin_rpc # ['01000000df0f5f06c357172fc52b91dbb861b404092f6b5333ed0e7df7aa97b1b9776da41b5e7080c157bda52c149b0612bbc3668db9df528234e24a9b86c2c3e9223cc7f6e1b652718c251c001233490201000000010000000000000000000000000000000000000000000000000000000000000000ffffffff26022871062f503253482f04f7e1b65208f8000059070000000d2f7374726174756d506f6f6c2f000000000100773f111b0400001976a9144fe0da24aa998d5f1ad7fb2042c4aa4062de2cb588ac000000000200000001e2cb151f065753860b5087017da56cfc67f76bee6a0b337ad63f863bb6bbbd26000000006c493046022100fca0e57a5d5e1fa1e64897d0abbbc4165a5cb476d39e6504d9fc7352f5f7550c022100e53b0f77000327eae29827cb777d0306851f73cfe0320b49d49729d75403e4ed012103f66f52f6869c375c6c3af5ba0084e64dead15f6a403479e0521d6bbc6371ae1bffffffff02161f634d0b0000001976a914cf6c36b52d03817d09cf0bea4d5154c0c760e9ca88ac2cfdd909080000001976a914e5983d692d624cf512692ae3dc733daec225fc9388ac00000000']
2013-12-22 21:59:05,202 INFO interfaces # fcfa5f2c2ad905b5ddf6165fdd72b212c2d546c4f9ca75c13c7e6bf81aecc7cb (815667) valid icarus.1
2013-12-22 21:59:05,204 ERROR bitcoin_rpc # Submit Block call failed, trying GetBlockTemplate
Traceback (most recent call last):
File "/opt/stratum-mining-lottocoin/lib/bitcoin_rpc.py", line 48, in submitblock
resp = (yield self._call('submitblock', [block_hex,]))
Error: 404 Not Found
2013-12-22 21:59:05,222 ERROR bitcoin_rpc # Both SubmitBlock and GetBlockTemplate failed. Problem Submitting block 500 Internal Server Error
Traceback (most recent call last):
File "/opt/stratum-mining-lottocoin/lib/bitcoin_rpc.py", line 52, in submitblock
resp = (yield self._call('getblocktemplate', [{'mode': 'submit', 'data': block_hex}]))
Error: 500 Internal Server Error

013-12-22 22:01:35,243 INFO template_registry # Yay, share with diff above 100000
2013-12-22 22:01:35,243 INFO template_registry # We found a block candidate! 0000000004a968c8db925a25fe1a0fdf616c158d53e0c1f6dc8834cb57b74073
2013-12-22 22:01:35,244 ERROR template_registry # Final job validation failed!
2013-12-22 22:01:35,245 INFO bitcoin_rpc # Submitting Block with Submit Block
2013-12-22 22:01:35,245 INFO bitcoin_rpc # ['01000000eec7d1c9fecc7e1de331024a9495609cf0d043a0122b319455fc241883a88cea9ede45fe226ff72397301205fc7bc14985c8e3b83655cd6ec593ff657f1036eaace2b652a2ad231c000a18e70b01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff26022f71062f503253482f04ade2b65208f8000038020000000d2f7374726174756d506f6f6c2f000000000100faad5c960000001976a9144fe0da24aa998d5f1ad7fb2042c4aa4062de2cb588ac00000000020000000161bbfbc713e424ac91ce63d521bface69412a6a52706ec6a713b8790d877955f000000006c493046022100dabbf45db80692daa328ac8e1429e7b1faad18e042933c08d0dd46dbab86ecbc022100812424320acd9876917af2ddb210aea0874137555fa3920e7fe58a0d24c6b093012103bd3e2fda572ceb78542fe5d2c3aa5e2a48f624509252868131d61d64d181671dffffffff02faee80284b0300001976a9141357a9751f1cdc6734d76fb5346b5473e5e65b3488ac066640d01a0000001976a9148160802bc931ff49aa7309aa4671a8363dc9436e88ac00000000020000000158920cbe8eff3121c64797764f39ea76a074267068c1538a8ff4ab3c3b10d266000000006c493046022100b8bc975534a53cd1fbfd965452c6f6b91a46c551b3ebaf872e0ddd3d343d594b022100dd4e99c2c85b4591889ba4d539af60487e14ac7403d928316d117bc73bd4b46f01210274552120ef15d82d1de192c845054f161fdd1f055a8ac1c147f305689bc42950ffffffff02d9421505710200001976a914c99f898efb3122fa062996c0f119a7164b4d0f8288ac745be2d19c0000001976a914ac08dc30cefe02d933237a94cdce7f5d37e4f62488ac00000000020000000108cd38849a66617107276ec735b7fb1764e56a596d0b6a2f054bd7692a2227ea000000006b4830450220034515e0a27d1bc96e4eb4219bcbc38ecfea02fa24870003c3c7ffb0775ef0de022100b96fcd7bab2e3fe5ce8ad271358b7fa9b8e67b97d3c2977d6ab40f3759341478012102ab862cae8bcdfdf355e48d36d5129c69827c3945ea9582ce8ed8142a841a10c0ffffffff0292865fa4270200001976a914361b49cec0fe1fc2e5d043f6e19e9a25de3e1b4e88ac5ff3374d380000001976a914c150d6d14f750fac66b3cf9161d5521e1ff51f4a88ac000000000200000001860b0f77625a3bc464cef20402c48502a323c4fc5fa432d47734d30e1ded5738000000006b48304502200eac5e026456933fb5a42894ff5934dd9e9e010a573c204aa2a380d8f764f8f5022100ba505997de703643b8c5f2730ba358fd9ac7e9e9325623cb4d7ed2d31130008301210391d7b5993a265df0a9d7284f0692140e38e92eb3c1af69679635b2bb3bd08d34ffffffff026e56955f1b0200001976a91447ba90adddda4bfee7ba68d27b67c31e48e8bd3588acdb9f70c1170000001976a91489c898428c0aa47cbb9b669e2823b3fe7e353bec88ac000000000200000001cc710e666313dc1971da06f142686e30a5778b30e59935b347bb55cf90365e1b000000006c493046022100faf0ecbcda737b3154a433318ee196eafde6349f1eb3533e9a4eeb4418c1bbe0022100f6e566618d6cc80221ec8eec97fbe11d9c158c8fb73fdd4b20c04846f1f22d94012103941bc9f3d311f754319dd078ce95d1381db101e8d8c1a7ab3b6e6a40feb72e93ffffffff02d6e09139b80100001976a9147cfa50f1413830d742221f469ceeb212ee7337f688ac30234d21750000001976a914e41a6db9da9613bf5c1621a919683f89aa7b8b2888ac0000000002000000012e595d9f76209920aa93e87cd459d73173a1ec33bdf411308dac4f3f0a61d700000000006b48304502210083ac3d42ac02538404d8403eb68009afc9b3dfcda3c5f8bff0a8604d65e749aa0220734443dbb00e3352a9c8250ec9e0131a0e3b8487cbd472bd4893abee9439c170012102ba59cb466cde814b38819ec6075445eb379f5cdf73585c502e47c5bba7d079f3ffffffff02f66e8ee6800100001976a9148bf73e3a0f3ff2f5bd96e643718faaddfca4ace288ac3dd7a0188c0000001976a914e5b55fdd8fe988cdcbe49e6641cc2344611d1b0188ac000000000200000001d09016b5b131add3f3032d0d88fb0a98b993f21b1a994ee8986b511ab04d4beb000000006b483045022100cf0b266c38a8bcfd41b32081fec265b62bbe48ddbc95c1659ac989bc8ccab4c902200f09dc9c883fd28147c106fe9c5d858d8b36d39e9642686f082e7f8a4e2d72ea0121035a8fb02dff71c0366d15ae3f401c223003e1c0c0e16189707d9c2e68dd578c20ffffffff02894cb20aa40000001976a914d56dabf90b30a719bf4e91f6d4950a3bca42afa688ac124a7ece3c0000001976a91461f3858d5b1628bb439c62a2e6bf30424ec74c8688ac000000000200000001ed3e317ee879a3504433f6d5f163d8104f19e1da0a4d2ef600f95f4af563e40c000000006b483045022100dea2bbe3b99cbee83ae8762b992bd2c16b8d7d403ddc6e6b631b27af53ced920022034feeed71f15a2a3e5407b8117d2e160420f8db8d3c58c6e8dc6798f1d0bcfdd0121021caffec6a1d79de7770892c2d00a2f97096471051dab2b79748c5e6149fbb010ffffffff025dd5c52f040000001976a9141d65161753c65fd323f9b065e252f29b8a775f5288ac423f5272710000001976a914a9c2a929815ea7369eda0fdd55e85d7cf6934f4c88ac0000000002000000011820d49621a409ae163f2a4ffe4db9e1d647136ae42c9d9b6d0fdc37f8a05c61000000006b48304502210080f1e3b7e086471d634a96a9a7340b66b580aa86bd9d6a7b9ab0ad95ff6035df02206332e66b0d7cfc2dab19319a70963240833ed825173cb231def5d2f2e44e54c3012102d41bd5bba81187ce4574c36f92f410971255a1df1333548b6d781f4379082fceffffffff023adcca8b540000001976a91452556219e2436360985e61d9ae71d755eb3734a988ac9b0082a7180000001976a9140f19647adc55bba3e66937710dcfcd0592d610dd88ac00000000020000000145c7c504236346797d6ae5f0f529dbf04f2eea14d6147c4b4acc45b1e3c4c7ea000000006b483045022100a3ebe6ecf839cb117e058cf58a7b803dbdf7e56617fc2297cefe3a6b2df26137022070d908b50a1e26334647fd70551e674c9146d6022b7061a20da5e387a3411fad012102a9c38cc6fb1b26679155dfc31aaa89f746365399d2b7441a9e5b32322885a042ffffffff026432deaf530000001976a9145c98281b475bf1a47e5a0d40b2dae0973425cfad88ac76591d0c190000001976a914837180713a9b0380857c2a295f631591d2cdd6fa88ac00000000']
2013-12-22 22:01:35,246 INFO interfaces # ccd2b603660b2513ac3883fc1d59b98d0255a01870be48a3dcd6990b6e542e82 (3598850) valid icarus.6
2013-12-22 22:01:35,247 ERROR bitcoin_rpc # Submit Block call failed, trying GetBlockTemplate
Traceback (most recent call last):
File "/opt/stratum-mining-lottocoin/lib/bitcoin_rpc.py", line 48, in submitblock
resp = (yield self._call('submitblock', [block_hex,]))
Error: 404 Not Found
2013-12-22 22:01:35,250 INFO template_registry # None
2013-12-22 22:01:35,250 INFO template_registry # New template for ea8ca8831824fc5594312b12a043d0f09c6095944a0231e31d7eccfec9d1c7ee
2013-12-22 22:01:35,252 INFO subscription # BROADCASTED to 25 connections in 0.001 sec
2013-12-22 22:01:35,252 INFO template_registry # Update finished, 0.003 sec, 11 txes
2013-12-22 22:01:35,253 ERROR bitcoin_rpc # Both SubmitBlock and GetBlockTemplate failed. Problem Submitting block 500 Internal Server Error
Traceback (most recent call last):
File "/opt/stratum-mining-lottocoin/lib/bitcoin_rpc.py", line 52, in submitblock
resp = (yield self._call('getblocktemplate', [{'mode': 'submit', 'data': block_hex}]))
Error: 500 Internal Server Error

2013-12-23 00:53:07,895 INFO template_registry # Yay, share with diff above 100000
2013-12-23 00:53:07,895 INFO template_registry # We found a block candidate! 000000001851786af453e625cf26db4197e17c8d868cc621fa0e2ffa8d702e5a
2013-12-23 00:53:07,897 ERROR template_registry # Final job validation failed!
2013-12-23 00:53:07,897 INFO bitcoin_rpc # Submitting Block with Submit Block
2013-12-23 00:53:07,897 INFO bitcoin_rpc # ['0100000011af82379641b735b7f2648ad1990c1f11e16cc8d6b124fd5a14f12c693b162fc5ccd3d370979380ac160a9be8904c540bb099ecae2c82ebd100d03390cee042c90ab752cf06221c009431860301000000010000000000000000000000000000000000000000000000000000000000000000ffffffff26027d72062f503253482f04ca0ab75208f8000039030000000d2f7374726174756d506f6f6c2f0000000001002a9215d30000001976a9144fe0da24aa998d5f1ad7fb2042c4aa4062de2cb588ac00000000020000002a0a1b7b3b6735481a52a95851e137f32729ef838321084eb1862894a637970d95000000004948304502207007ea0ffeb530182692a1d173a68e5e93c8921a68615ecd8b58c8ee9b53535a0221008f8d53eef8d116d245e46478267dc6274d9bd54437d32a9888fae0f7e4b7284801ffffffff3684b6a8f68f0a3b60dbdf69c3ec9f4c6958a10a137cebd8de273dc58d8d631700000000494830450221009024029cdd84c6c32fa3a4d819002062f8f840c3fa96201fbcfe207f935b008702205b6decc2cbb648d7aaad867197ce688311fee5ff23f0876165d57a235255265f01ffffffff4327fc9796a0649e4225487ab20e99f898105c259e47bd3584b65c1e3c012985000000004948304502201edf0b60c9e1de085602ebfd2449ee0eabbeb1bc0c842c1c0fc13ded6897a1b702210083852506ebd13593f3cb4ab60ac0743a7c34e07648266573da56b48a6bc058d301ffffffff445f85c9429bc2eaf1d1f22c4179bfd1aa1e41bac7e501f9d3cf1f2296c42d4f000000004a493046022100a81094957482ac02852e396759268eebe4012f8b822d1282dca8ec22d325e334022100e62670bc9e4a411ad31b1d66e0b0d87f8e7bcc51f6bd86d4d7d7d3fdb87e17b601ffffffff44ee0fb74142ae3b060c7cc8420025c5b09c687e79a598f08101c1a74e6f7dba000000004a493046022100d6782705b551acff62ec10106fef585fe4dd34b359a6becf3b20b7abbc114c9c022100fd633c737cdf8cb3a693e5db2b496a2d7e08625798718678020a51c96680d27c01ffffffff495cee9a55735ae1de35673b9b83d1a3ec104eeb6afd792a74b366613cfd646500000000494830450221009b7526e2cf02a01028e10932af03c706827530237d6ea2774f270cbb8bd4fa3b022056157f992acc641605d474bf3b101710726e0efd8c7f6455562565cb2344c4d601ffffffff4e415bb8c310a98c855b82e0a6ef46ba666880e9456ae837813a0548c783f9c700000000484730440220116f1d5479b41f08f13c1b23522bd829c6983d24beb4650e44e140624e29a4ca02207513ddd96e2dc3b05b8e4cfebb37469987e35bef52dde4a538d551b783e68f1d01ffffffff57b8e7f8bfad0c96142c0cfc57c32f4315924d6617da298966148a385e9cf32e0000000049483045022100920368762548209d5af7f2aa0b6a3e222b6cb685f24b2da938e236db901bf8b402202a075da7b0bc533a3104627d24aa13c735050cab547b7f44fd0bf578f0c73c3f01ffffffff57f2736876c724ae958b6a27821ef359bfb5f6d867a4cacae82787c1e5a461c6000000004a493046022100e01f5287f3624a71ae18a05b7259eb1f7c6c09da4b87baeff7ec185495bcdd4b0221008b9d46fc5f22f9a1f3695d5347bfe3a26777cb2c19ed0372590a24f76f3f93c801ffffffff5a0bc08c4c1277f0da158d20b54f6430583283532dcc839a93ccab8916bcb2570000000049483045022074770850428802e451d5b512f07cb0e8eb3aef133e61291b774198b7fd630dc1022100d879e640c4fa3b88dc9536a5e1bf2de4dcafd2af4774be6acac4653daa0dd20901ffffffff5b9b2aceb1299bac81d5efe66ed86af131ea77f91a46c62f26650b8ebadffb920000000049483045022038de8924cd0149882b8ef141a3a4d084f14733d6e7ef439bc7c7a8fc129dc4d9022100842bebc863cf3010c9085c33c9378c322075221c27c936c8ac0b9ddabf6a95ca01ffffffff5ebe21f189e20a43ba046f281d8c970d029ff5e98f3edadb22c54a2a97db53880000000049483045022100917ee2fc16d2a36a738ced0c90625799a8a558fcff3c0096006b73f8253372ed02204ef96d817a41711648c14ef7d122f719c49820ddbeba25d16cd088ab4e07ff7201ffffffff68f4e77d254266b976f7ae1695c51c8cbddaf7b433f868cd68f10166b3c48db9000000004a4930460221009a5d727d6b12765e7940451791fe04dffbfd4a3b974c4c9b47abab05c6ea4c92022100fdd490e029dcb590f910152a38ef462adb30b84f47251c0c0d7ce88bc209c5aa01ffffffff6ab4a57f8a9d08eb94bfe4bceb5aebd06302f3d44c56b85cd6a7288e5fd4ab100000000049483045022100a0ccef7368b68ee177ffd17955d1665e207e1e83ecf2551c886c6ea042b4bf5902206dccf61ff798294bf87e28db253f09485268f6da825bc3541d1bc8dd859f6dc501ffffffff71a478c14aaf80b7ec48cc848965910f451e1321854a0f835cb7d60c7c509b71000000004948304502206b0913632df26e7ecb43c033e89de45e9251bc49a0bf7abb127bf5e456ca697d022100f8cceed1ca7fa4bed0751f577de8ce1fb2ea9825977ab89cf752c9fe5f771ed201ffffffff76b19c7e0bcea158c11f5525f8d4ced4290312009c30fe42efb8f2f0daf8567e000000004948304502204559af531fb621574be7676101f4c675c241e650ac5b9184892d7a7c6c0767d702210088bc7da220376126fb77f8af61c9b400da01446e8cfee4d2d195499a8ff9a2b501ffffffff8447f248662dc3b2f4e7c7d2bf23ecfb8bcfddef53f517b136cdc8adc342350d0000000049483045022070484acb61c1a8d420e70c970757b34e2a41f8146731712c7208722c5f9232cb022100ded5ea92bee48f9ed45342d223b17fc316b25c32f6a93a3381181d9eb14579f401ffffffff87342b266ebcfbc2a7dd52b34ae631e4aead345be539bf9af3364e8268ff2dd80000000049483045022100d56cedf9cb0d9e1c692ad57b6e6331c7d3b9fd826b70a625ed167f49e8fcade60220436522f4652140017ce8bfc678895ca8b49bca8137fcba18c63895f0a1e6319c01ffffffff88732cd7224c65eb3dd47be6a6b4ae6154c702be2d7accfd0e36e7013dac4fbf00000000484730440220397d96491ceccab9c663972dfb1acc4e8f11635595b5342e61ea5dea6a9c855102207927ce097a8638369801964a8b12c244a84039d6583c435a9e3dbcb44e55b9b301ffffffff889ebae43759c9d2269afd29c01c5a1d9a31736690d87d4196a78defa3f2b70a000000004a493046022100c3a1be3c5d82265881824a1e7c0ef1ce31c7b53359d2550a1ee12674022d16c602210088b708b4d6a0b992607334526bbb22dfdf20427b87c3552579855182a9d5da7f01ffffffff8c6f27c7417eaf39dc5b1443d36cd8ca712f12b0ed12085125ee2b99accc2067000000004a493046022100a0cce18ac24d7d763fef07b7288ad348d943c74dcd7828a75ec1339b62af221e022100f46ecaf82cd70ad10145fcad909a64ed8dd1654947fdc90bc608f72b148d155101ffffffff9c81cd3c0c93af6a5c0832a0993ea8d5a55e83dff82519b1b88f0de0eabedc330000000049483045022100dc5844e9ab3046118cefa494c9f1b8f9bec5a6183212a71136ffcf87a06fcb2b02207e51bc21b5756f5235073a86b6c176e580146198fd0ef34ebc6293892d00dc8001ffffffffa0f458a5f8f89243cf7f0db53d291316e4aecc0af45e313321a21900e537c82c000000004a493046022100ca3262ee31a4bc001e07673b1969ec0827afa8a591506d9bafe038a93533b9f80221008a3fdd465122d0cb9bae7d501d2202a9b833fef604384d6b51c5f7a9ec81160001ffffffffa25578b2466bd8203352d38143cd556ab35ae8b27708c24c798fdff951e5dee900000000484730440220607b9b627e515c52a20ee7280d4f21b52673d17520e8dec526248a8f563eb0d802203372448a3b1a91d3feb274c1b9f72c18a8ea1a216dd7ad57053c087141b61ef301ffffffffa32554e5adc8f41d901c945466de05247390523cdaa660068f1cbffebc5fabfe000000004a493046022100a85f41b68d746a7a127da9a78a7e4fb683fc70d813546847c3ce79625ad6f04a022100fc5c24042c45b1bca380fb9beab278ec7a58a1f3316dac9f6c6841d2239b469b01ffffffffb03cb6e079fbe034094fdf29b7cf80986bb31ec5c83d0a986c62041bfbc24f3b000000004948304502210098bdc96b087e941bd7f1ba973aad8b0f0168075d9e4fe9911a68af5eb1e37c1d02206cdda06e13441c70c60b3fbddc3a0e295c0751ee915a307b6db5d372c27cb22a01ffffffffb05ec100f598339dbe04a90b4324c38e6e87c2de0d91b70c4f88dd1572e89c62000000004a49304602210080a945eb0b648b0582148c2bb6919cf455e951d8d5db8708f2f9b8c5f4f75132022100c6fd498de8ba2f45d2c8b33cea8dec05c79df81213f6f6e421f5ab0af82fc4ea01ffffffffb43b5cdc08bd63619485c5a31fc6372e37e4d933cd8d7d0cf765cda2ab914d51000000004948304502201cae6c57411b6c1838473f7683080527e22580ae67f05aa5b81ca13b306d551102210088a6b2d0d53acef2ae50996eb9b3196c085d5dd4e4a472ebd61611000e9c66a001ffffffffc4ec9db151dd8ff7fffcabc311952971699a1e0302ecb240b461fc46388226c0000000004a493046022100ec7661e14c65b972a932d9bab878b5a1b9d8560c301f485a85994bff2ce732b10221009d4e41953353f0f59479488cd0eb03b5d8b20ff40c6ef8f974e5268afc95314b01ffffffffc8cf7a103bf97a34b6af9ef5fc19f12dfdf34c4f5771c06a645e041a90282abf0000000048473044022047a4049abda2cef6e0588d45b9dcd5090c1c90fdae157a209b99271761f42ec5022046bc079f683bce3572f24a8325a7c9d63daf2eb1c5d2e53603be162a01be68e701ffffffffcace0d924f71ba32596b714cdd6b98b534e73582d6dcdafca64f484247bee094000000004847304402200b36c0b44d1ad8e83e64c1e8f33e41634fda190c947834e13ef9c271d628f468022052ba50e7a35769d6a067f65ede157d47885309dc8675e262d12f076919b99ab201ffffffffcbae131f85b09f4d220b60d275099d7d5ac27bcb2d5b5541d2113fa993ded6f600000000484730440220119e5210835bc698d0f2044c21968bebf97c2663075f6897277c493e760fef64022061322e6a77ce408f86692ed8b2436c629dd5f30c227c26aae8aac2e0b3a8c5f701ffffffffcde6a67a388abf64bcfc114ae9a76de9132e92ea8db01409ee9c9f9e03dcddca000000004a493046022100e8d11b6d303c570fdccb201996507ce3305d9cfd0f103a37d8e4d2976ca7ba18022100d673cd47c6497c054b38d45633edfbb610fc1085f334c006ef019ce862e13e4801ffffffffd7aa3c610d4ee2a5cdf9187457ce00413ac75da4a7c4c61beef5f12be4896d56000000004847304402200552f36ce3db0eedd1e8117390a61102786cfdab50705b8bd6321c84daf7705202204a5f3d8418b928b3a2c8421988924fdf94a1ca4d146bafc7b9465ede5ac063fd01ffffffffe64742e7c67945e00827e18c346d1d7418fc521ba843e9a7e98a8bd1d09b2996000000004948304502203dc8206bcc13b17c69aa3f5a72169db043cc192124d776b42911d6c26265b6110221008c76fbac7c002245393505ff242a415ed029e812422bebf4c2c0c8a8843262c401fffffffff0335b26a74e8294ba60739a1d7913c565516d94caa0ee602824440b0db27c8f0000000049483045022002458a00ff305b8d40d26437ae11d0fce1532572d998f8cfdeb0ecdeeba26267022100f1991efc9f76abaa3233a4e95bf3b2a7f823adb23869c2b3044397555a3e4d4301fffffffffc806005087d5e2078af874ecfa13488e234b60b21601aaa441f7f109cdc5b140000000049483045022100f5939fae9bd316add5cd89ecd8bdd27a7467af1e3185fefc857bd56d0c8c667e0220618bb3215b0c448297881ec3b6439257ca0d516b56921778627c1647b088208f01ffffffff34ed5657028535fd123985b9df7572f638247f546da50f0cb16b76609970d985000000004a493046022100fe9a2ac21933e30be799b9e7326267395dfb2a478b7d4f3f5455f25b52064175022100b409a340fea7c3dd2e0babbfe8954104896965cfcaf7b0615ffedd7b96888ea001ffffffff25dd3b68b2d2cc3c5bc5e4b4af0d84acdc93ad991d46632992b10a22bfe76a1e000000004a493046022100bc764bc2121d8c5c6b991928850a2baac5f47a82916e56f5f4d8bcdf7d9efa95022100921cdee9894e0414c0419d180aa96b6a608f920e8a3052cae9cba4380c39638c01ffffffff275322e15f932a26580659efad81dbe0ff059f8c3d64d56230b0aca161e439e90000000049483045022100f33c08f829124fbb4d64f93ad5285f6194e18192d99a2aa95cdd9aab7b585f0202203a632659a91b21cb4f1aa863a7dbc2adb208772d8e510d7a4fb9c9ab0fc83e6101ffffffff0c9a7827e43aa6f2d39ddaace07838fa95bad79bf04d26dec786a981b450e3da000000004a493046022100bcfeddbdd131e337660cf1f13ef1b2f2157904e0dbf77302f40c643af37847b8022100ef0efe03232dcb6881a18019b6cdaf229d96f6677ba614b6576be991707afa6a01ffffffff138cf626eb9d2f7766dcabe8547ae228514e468479c112a2c07673d4c6523e0f000000004847304402206de411d2d2368d7bd1b1056b1b49eba661c1d733acb5b9ef712cfe742028d4cf0220243ef51440c5e54c5eae250498327a9cc82afaeca9eaf3d61a969b813906078a01ffffffff02c0c62d00000000001976a91488109e3630330ba7baa55d6b9c0cbbe5cf971c9888ac00406352bfc601001976a9140e263d4c43db8933b0334725c568a3759691ef8d88ac0000000002000000018d5fe7594486aac19e87dc6ac5aa8b7d45bb1140cdd0c5e20ccc332fe8dc9854000000006b483045022076f1df012d60b3692f7372dfa4c746c3de716ade5fd80ec73d5f511a114436cc0221009d992ac0dad9fd0f9e5b845b6ece48d66e33b0ef3802c945d1f2bf44305ee741012102f7ba5596fa25587c94c05067bd39b7a1df258a395cd1abad23701dec4335a5bdffffffff02c813b339050000001976a9146fe4a7a736c5a0fe89554fd3dfd7a7e6370abc1488aca99ff0b1090000001976a91466be8a7cf56e191e3060f78d699e5b056bd554a388ac00000000']
2013-12-23 00:53:07,898 INFO interfaces # feff919cdb89b470aa1b73937b19296ffa5de7422743a5f82d6469c7836199fe (689891) valid icarus.7
2013-12-23 00:53:07,900 ERROR bitcoin_rpc # Submit Block call failed, trying GetBlockTemplate
Traceback (most recent call last):
File "/opt/stratum-mining-lottocoin/lib/bitcoin_rpc.py", line 48, in submitblock
resp = (yield self._call('submitblock', [block_hex,]))
Error: 404 Not Found
2013-12-23 00:53:07,902 ERROR bitcoin_rpc # Both SubmitBlock and GetBlockTemplate failed. Problem Submitting block 500 Internal Server Error
Traceback (most recent call last):
File "/opt/stratum-mining-lottocoin/lib/bitcoin_rpc.py", line 52, in submitblock
resp = (yield self._call('getblocktemplate', [{'mode': 'submit', 'data': block_hex}]))
Error: 500 Internal Server Error

2013-12-23 00:58:21,083 INFO template_registry # Yay, share with diff above 100000
2013-12-23 00:58:21,084 INFO template_registry # We found a block candidate! 00000000134c5505cd8ae0a49e1746aad81e8bfc426a6ee335dc95b4784e748c
2013-12-23 00:58:21,085 ERROR template_registry # Final job validation failed!
2013-12-23 00:58:21,086 INFO bitcoin_rpc # Submitting Block with Submit Block
2013-12-23 00:58:21,086 INFO bitcoin_rpc # ['010000004de6015a607a9df1ba6a7b86d2be63952fd891cfcf80a5dfbe2d3a1dcd8c2dff47d59395410a07a805d100888619f4c4d678a55e1f2a05b7f36ad06cbfc935a7f90bb7524ced1e1c0012a5ce0a01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff26028972062f503253482f04fa0bb75208f8000038060000000d2f7374726174756d506f6f6c2f0000000001000b685f140000001976a9144fe0da24aa998d5f1ad7fb2042c4aa4062de2cb588ac000000000200000001d0269f3fe594c000a4e7a40f1ebac301db33bc2b03122b48dd4e3484e3e586fd000000006c493046022100f8454379d4ce8dd1b948b394480e40511c2c7bd667b2d1a49e4fd8873354a17c022100d27beee44311026db3e9048f5924ddaabcc8e1aba6eb2e5a21674d0ac41a2a2401210206ad3fa3cb8adace19681d9f4af81b8654491c94aeb237c8cc3ee15459545a9effffffff02c3baa709010000001976a9149e863e786de0670fb2124f43c5d5ecec9244410288acf0c757d9dc0100001976a91484dd42973da01ab49e951f4d814c95842d2cff9088ac000000000200000001fe59af58a66a1c75ec6126a62eb6a9082b83006eebcff0ca59dc25b0edb152a9000000006b483045022100cca376a998025b6fee68141517e0fc8ca21efd502167900462a39adae6cb15e40220297894dd52600809ac26d75ba72275ed4d49513265c771a9cbb2b1962ab47aca012103fea52a0b8e41d0d7daca382f0f6fc65dc62e8606b15a91a1c0cd35b1b30fa5e6ffffffff02a1072bcdd80000001976a9142e39df4ff8d0346bcdbc645f1d776bac9a113a2988ac86c0bb48170000001976a914e1298b560059d5b992ecd7a5a3c7446934b3fc8688ac000000000200000001349ca695d1ab0a0f1bf6169c960d626ad433436f957fbc356814361ee3a037f2000000006a473044022050d4ae3885643cc10e8f7dd2ce863e75afa524173ba926eb6d685aa715d41e17022012422b7da0633e2d16def39ad482b50c625ee178d5b71afdc14f5dbc9ffe599a0121039073555f6bc82fad2df29ac4290b9df5252a1e4c064cd2df88a4b291299730d3ffffffff026805dc5ae40000001976a914c49d0b79b1a4b2ba11b086df3856ef9fc87fd54f88acb6e5cd42220000001976a914ac08dc30cefe02d933237a94cdce7f5d37e4f62488ac000000000200000001750f6c11a03dd359c140adebab008ac52dabf8045fc32441c085db545cbdb7c6000000006b48304502210082796bd2ca789eb8b9113a781f721aefdb3c6b4cf34abb8f8d906834d3d7298f0220238926d48e4b0109ee1ea264c74a22e2801120b6ea264e43b2b4ef8a60e6a4730121026f16531d854adc94cfd042119fc38082785aef5aeea75ce2f7691487ef0d9c8affffffff026730212a950000001976a914bce82eda7082c0c518d2533e706af244d34e8e3488ac5ae7d4b8170000001976a91455a8db95d29ec4a8ab10c534f0fa398d85b7062288ac000000000200000007f5916dfd437cf99ce907ed29dd5b97edbe53fb832b7354af93008f5bcf37f665000000006b483045022100b107aa3e5e5a242e694a99699348082bb01f9ce77666eb0863e4f84fd9559e4a02206467d8e12b425c974967fe9877df7c44cd282e5adbaa733df1d53ddf7a2b1bc50121032d0e5db89dd1cfc6dc9f85fcad58d471c2b767dde8476dbdbee0632a7e2902ebffffffffce37de3d48a909479ac011decc9a42bad6c98fd6ea1a141c70418cfef01e7b98000000006b4830450220602d9aa237be9b00e6b9e29aaa165a38e46c5e8cb1f7137af6a5943bb81e0c10022100a0f8810ce51c7ae37fb6ce1784d61cdbf28f8f5e1be03fdd62c7c2859c239cf5012102a902eac0bb3a8524d91a41b8f951fe15b56f0b65d1ddaf555af3f38735cf886affffffffca51faa21179b8289eda0bf30c47dafad0a33db89563aefe4fab9127b115df83000000006b48304502210096ca12b8f476e0bdd15555eb6fe2245203e9afba65cec2e3ad03ae71a9b9dbfd02202ad3d174f945f57f2a7a2988865768ea566e3353f0aeb55413e2be023bc5cbc90121038f57428b455a39314c07a84d4939f66f6818d318ddaec81e006beafed372e618ffffffff044c45e7884a97c1613555b2155bbab78c9b1ff7803bd4aed0f481e17475b5b6000000006b48304502200aef49ca7292091c98335b4615141a6219458669c319de1081ac325541ff61b0022100a6c12f63057314b4afc28dc2e54d539a019f58fa5e60a31669e852b785d6276c012102b3a9c8bd671a04d74876fd24df86ce7b31b60436e09761472bb4110b8501f770ffffffff6ee553d4dc09ef8f3e0a6c3839bec40ef9ef7f10f674e24f3700d3d0f44193f9000000006c493046022100eab6be49fe8a934e4bf6093d942153fa4d9af56a008a76c60b2b16aeb14170af022100f7208f70575002eb29a7aae1b576006d1c137135b0990edc3bf107a840e59b48012103dd5432ec7e21237fc0b25cd5022dd9225533e41a58d7b8e1e2c5f6c676512096ffffffffd4fa825ec2b3e0f44ea4d87c0cc1c38d80750e924ae32a16983e443b15bf0272000000006b4830450221009dc9e01b3f88f2494f04c0dc40b58f862c1b18f2619053444f63afeb358cb7da02203c684057416cb1e1f6bc93bc9d94ebc26f1776c4c800c5861ab32f67319b3e9f012102e3077529845efef172491f8a0672814930eb9abbbc3b976d7b88d0bef8ea424affffffff8cdaad1c0ad3f4ad56360932dcaa047c6c44b149fa89a31ab7fd6b3ad42407e6000000006b483045022056fc9bc4095201fd2bb2dd3062a71cd1fcdc720b368c768f8baa1e31c30a879a022100de12d73603aa36baba0449d5d739f542af7cf790b643d9dbe8de171db861222f012103badda00e8c2dafea062c5a73b9573bf94b7c7ab6a221bccc53be1e94816cd60fffffffff02c27b6901000000001976a91481ccbec9fe08ce90e85672ed7c7da054caaebef188acdbac92682f0200001976a9147110244d76a8b0afad991903a6322082e89da98388ac000000000200000001ef7a0798ae2b1e0be79ede50703762ef50742acdffc1b690376c150ae26bd424000000006c493046022100ba5ecf8dbbd4057b8c73b1a65f8bf0d3702076274537c66ac615d48d032482f0022100cbe0507393c984a6e1106d15c767110eaf72317c5a08fd2e03f69ab48d3792690121032863a1e543e66912431237ca5fe96343151607e7ba699da3926e3f5b24ca70b0ffffffff021468d5303d0000001976a9140c16c5a8ab90249a57001a2c78d5726deda58bda88acf5f30af4460000001976a914e06236f8c61bfde31d2b94169586310cfd9b354488ac000000000200000001e81c14a4359594bac5f837abe7b636dddeebd46519698b3c5630d7a3b7d99e64000000006b48304502206ee24ae36589f4c58ca92255d9f1db42dbd96cc5b73b04404b31822fa5fb784c022100c99bbbf6a9101672c7e89585e9f758fc6179c68bc2ab22817b61ba0600930f89012102687fd10310f395f99f274640b55c507566596531159eb0dd7076cd9805c8417bffffffff0217f16ec7220000001976a9142b33a322d547fe10fc6bed5c31ee83f5b4e77d7b88acbf071b7b190000001976a914de9e8e33d96dfc7d0c5ef546dda9b560d35b440188ac0000000002000000026c54a9bca6ecfddb5578623b6c8d4464cbb2b373575cc44715cd318a1c4997c5000000006b4830450220585eea2ebdab44c1efba58fb35280f575d91384f2ff9aca1c77d17bbd3b3efca022100943fdfb7676808379636a9d4a53c21f38121ac27f73d9977fe2969f0308aa3bc0121027153eafa1e24cf9b05e7de54b29a3b484ba71296736b4328f93b4941af960223ffffffff44bf6500d823d0abaaf4b9ed63f38c524bc9aa0ac3da92e0c606d6450b2ec5f0000000006c4930460221009e9599723c07b5c1caf53ec66b4fbeb82f104f64c39f6e8528232ef2bc57180c022100f7d97f6971750dc810b8baf02d9c8f9be1ad760246387484bf0ebe70cb43f8160121026e5d6c50c7f0e4a30a94cbc05367d04f5a3b435cccd9e950bedd184cd0e9017bffffffff0293297fda090000001976a914dd42c19d2338eac18218774ac52a31da6925b13f88ac09ca6462190000001976a91460aec92042231de4585510f1d57ff6d32d6dc3a888ac00000000020000000246beb2df59fa2f39eef8d5bbe38a7796d2611a39dfbe19f8a5fbd0838c97e1d9000000006c493046022100a16d1eabd969e2c39e7b0f23a2030d10abf01d344129d91662317cc3cb128577022100c8fc753893b09cc70f749322409f5870cc6af5fa337dfeca0f894e3985334fac012103ecd28106af96440095000e3a918359662173991ff1df16e83eaffec5f2a28da3ffffffff2c12ac0b20409f624e3a3089470a845acedd1f7dba06913d380d5af50100b78b000000006c49304602210090a5ae0610b87526ca86c14c9293aad4acd41e71fba175d0326710b08abf972d022100e68423ec45f9a9d8a20ad63e047da97cf3bbdb5440edd80f428fa821dcb1c93901210242bf7cb086992a2ec34f465f3165a2a7894d2a744c88db1830443bc5378a8278ffffffff022abcafc2020000001976a914c1808c4bd9e83ce3a386b39448a1f6d3b587740488acf21ba24b170000001976a9146d08e118f24226ec36b2b913fca9851ff1fee9e988ac00000000']
2013-12-23 00:58:21,087 INFO interfaces # 08ecaa6202bc2989290eade6490454b8bfafd953ec962c72e6ae06c82df7bff2 (869354) valid icarus.6
2013-12-23 00:58:21,089 ERROR bitcoin_rpc # Submit Block call failed, trying GetBlockTemplate
Traceback (most recent call last):
File "/opt/stratum-mining-lottocoin/lib/bitcoin_rpc.py", line 48, in submitblock
resp = (yield self._call('submitblock', [block_hex,]))
Error: 404 Not Found
2013-12-23 00:58:21,114 ERROR bitcoin_rpc # Both SubmitBlock and GetBlockTemplate failed. Problem Submitting block 500 Internal Server Error
Traceback (most recent call last):
File "/opt/stratum-mining-lottocoin/lib/bitcoin_rpc.py", line 52, in submitblock
resp = (yield self._call('getblocktemplate', [{'mode': 'submit', 'data': block_hex}]))
Error: 500 Internal Server Error

I'get this error

Coin: Betacoin
The Betacoin is running local, and i'dont know what i have do wrong.
But i'get this error!!!!! and no client can connect.

twistd -ny launcher.tac
2013-12-16 07:18:27,119 DEBUG bitcoin_rpc # Logging initialized
2013-12-16 07:18:27,119 DEBUG interfaces # Logging initialized
2013-12-16 07:18:27,119 DEBUG DBInterface # Logging initialized
2013-12-16 07:18:27,119 DEBUG DBInterface # DB_Mysql INIT
2013-12-16 07:18:27,119 DEBUG DB_Mysql # Logging initialized
2013-12-16 07:18:27,122 DEBUG DB_Mysql # Connecting to DB
2013-12-16 07:18:27,128 DEBUG DB_Mysql # Checking Database
2013-12-16 07:18:27,129 DEBUG DBInterface # DBInterface.clearusercache called
2013-12-16 07:18:27,129 DEBUG subscription # Logging initialized
2013-12-16 07:18:27,129 DEBUG mining # Logging initialized
2013-12-16 07:18:27,130 DEBUG work_log_pruner # Logging initialized
2013-12-16 07:18:27,130 DEBUG mining # Logging initialized
2013-12-16 07:18:27,130 DEBUG block_updater # Logging initialized
2013-12-16 07:18:27,130 DEBUG template_registry # Logging initialized
2013-12-16 07:18:27,131 DEBUG bitcoin_rpc_manager # Logging initialized

##################################### NOT Loading LTC Scrypt Module
##################################### NOT Loading POS Support
##################################### Loading SHA256 Transaction Message Support

2013-12-16 07:18:27,132 DEBUG halfnode # Logging initialized
2013-12-16 07:18:27,133 DEBUG coinbaser # Logging initialized
Unhandled error in Deferred:
Unhandled Error
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/twisted/application/service.py", line 405, in loadApplication
application = sob.loadValueFromFile(filename, 'application', passphrase)
File "/usr/lib/python2.7/dist-packages/twisted/persisted/sob.py", line 210, in loadValueFromFile
exec fileObj in d, d
File "launcher.tac", line 36, in
mining.setup(on_startup)
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1181, in unwindGenerator
return _inlineCallbacks(None, gen, Deferred())
--- ---
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1039, in _inlineCallbacks
result = g.send(result)
File "/root/stratum-mining/mining/init.py", line 33, in setup
bitcoin_rpc = BitcoinRPCManager()
File "/root/stratum-mining/lib/bitcoin_rpc_manager.py", line 26, in init
settings.COINDAEMON_TRUSTED_PASSWORD)
File "/root/stratum-mining/lib/bitcoin_rpc.py", line 17, in init
self.bitcoin_url = 'http://%s:%d' % (host, port)
exceptions.TypeError: %d format: a number is required, not str
2013-12-16 07:18:27+0100 [-] Log opened.
2013-12-16 07:18:27+0100 [-] twistd 11.1.0 (/usr/bin/python 2.7.3) starting up.
2013-12-16 07:18:27+0100 [-] reactor class: twisted.internet.epollreactor.EPollReactor.
2013-12-16 07:18:42,142 DEBUG DBInterface # run_import_thread current size: 0
2013-12-16 07:18:57,156 DEBUG DBInterface # run_import_thread current size: 0
^C2013-12-16 07:19:08+0100 [-] SIGINT Detected, shutting down
2013-12-16 07:19:08,093 DEBUG DBInterface # DBInterface.do_import called. force: yes, queue size: 0
2013-12-16 07:19:08+0100 [-] Main loop terminated.
2013-12-16 07:19:08+0100 [-] Server Shut Down.

and here the config:

******************** BASIC SETTINGS ***************

These are the MUST BE SET parameters!

CENTRAL_WALLET = 'xxxxxxxxxxxxx' # local coin address where money goes

COINDAEMON_TRUSTED_HOST = 'localhost'
COINDAEMON_TRUSTED_PORT = '9555'
COINDAEMON_TRUSTED_USER = 'xxxxxxxxxx'
COINDAEMON_TRUSTED_PASSWORD = 'xxxxxxxxxxxxxxxxxx'

Coin Algorithm is the option used to determine the algortithm used by stratum

This currently works with POW and POS coins

The available options are:

scrypt, sha256d, scrypt-jane and quark

If the option does not meet either of these criteria stratum defaults to scrypt

Until AutoReward Selecting Code has been implemented the below options are used to select the type of coin

For Reward type there is POW and POS. please ensure you choose the currect type.

For SHA256 PoS Coins which support TX Messages please enter yes in the TX selection

COINDAEMON_ALGO = 'sha256d'
COINDAEMON_Reward = 'POW'
COINDAEMON_SHA256_TX = 'yes'

******************** GENERAL SETTINGS ***************

Enable some verbose debug (logging requests and responses).

DEBUG = False

Destination for application logs, files rotated once per day.

LOGDIR = 'log/'

Main application log file.

LOGFILE = None # eg. 'stratum.log'

Logging Rotation can be enabled with the following settings

It if not enabled here, you can set up logrotate to rotate the files.

For built in log rotation set LOG_ROTATION = True and configrue the variables

LOG_ROTATION = True
LOG_SIZE = 10485760 # Rotate every 10M
LOG_RETENTION = 10 # Keep 10 Logs

How many threads use for synchronous methods (services).

#30 is enough for small installation, for real usage

it should be slightly more, say 100-300.

THREAD_POOL_SIZE = 300

Disable the example service

ENABLE_EXAMPLE_SERVICE = False

******************** TRANSPORTS *********************

Hostname or external IP to expose

HOSTNAME = 'xxxxxxxxxx'

Port used for Socket transport. Use 'None' for disabling the transport.

LISTEN_SOCKET_TRANSPORT = 3333

Port used for HTTP Poll transport. Use 'None' for disabling the transport

LISTEN_HTTP_TRANSPORT = None

Port used for HTTPS Poll transport

LISTEN_HTTPS_TRANSPORT = None

Port used for WebSocket transport, 'None' for disabling WS

LISTEN_WS_TRANSPORT = None

Port used for secure WebSocket, 'None' for disabling WSS

LISTEN_WSS_TRANSPORT = None

Salt used when hashing passwords

PASSWORD_SALT = 'xxxxxxxxxx'

******************** Database *********************

MySQL

DB_MYSQL_HOST = '10.10.2.3'
DB_MYSQL_DBNAME = 'emampos'
DB_MYSQL_USER = 'root'
DB_MYSQL_PASS = 'nospam4me'

******************** Adv. DB Settings *********************

Don't change these unless you know what you are doing

DB_LOADER_CHECKTIME = 15 # How often we check to see if we should run the loader
DB_LOADER_REC_MIN = 10 # Min Records before the bulk loader fires
DB_LOADER_REC_MAX = 50 # Max Records the bulk loader will commit at a time

DB_LOADER_FORCE_TIME = 300 # How often the cache should be flushed into the DB regardless of size.

DB_STATS_AVG_TIME = 300 # When using the DATABASE_EXTEND option, average speed over X sec
# Note: this is also how often it updates
DB_USERCACHE_TIME = 600 # How long the usercache is good for before we refresh

******************** Pool Settings *********************

User Auth Options

USERS_AUTOADD = False # Automatically add users to db when they connect.
# This basically disables User Auth for the pool.
USERS_CHECK_PASSWORD = False # Check the workers password? (Many pools don't)

Transaction Settings

COINBASE_EXTRAS = '/stratumPool/' # Extra Descriptive String to incorporate in solved blocks
ALLOW_NONLOCAL_WALLET = True # Allow valid, but NON-Local wallet's

Coin Daemon communication polling settings (In Seconds)

PREVHASH_REFRESH_INTERVAL = 5 # How often to check for new Blocks
# If using the blocknotify script (recommended) set = to MERKLE_REFRESH_INTERVAL
# (No reason to poll if we're getting pushed notifications)
MERKLE_REFRESH_INTERVAL = 60 # How often check memorypool
# This effectively resets the template and incorporates new transactions.
# This should be "slow"

INSTANCE_ID = 31 # Used for extranonce and needs to be 0-31

******************** Pool Difficulty Settings *********************

VDIFF_X2_TYPE = False # powers of 2 e.g. 2,4,8,16,32,64,128,256,512,1024
VDIFF_FLOAT = False # Use float difficulty

Pool Target (Base Difficulty)

POOL_TARGET = 1 # Pool-wide difficulty target int >= 1

Variable Difficulty Enable

VARIABLE_DIFF = False # Master variable difficulty enable

Variable diff tuning variables

VARDIFF will start at the POOL_TARGET. It can go as low as the VDIFF_MIN and as high as min(VDIFF_MAX or Liteconin's difficulty)

USE_LITECOIN_DIFF = False # Set the maximum difficulty to the litecoin difficulty.
DIFF_UPDATE_FREQUENCY = 86400 # Update the litecoin difficulty once a day for the VARDIFF maximum
VDIFF_MIN_TARGET = 16 # Minimum Target difficulty
VDIFF_MAX_TARGET = 1024 # Maximum Target difficulty
VDIFF_TARGET_TIME = 15 # Target time per share (i.e. try to get 1 share per this many seconds)
VDIFF_RETARGET_TIME = 120 # Check to see if we should retarget this often
VDIFF_VARIANCE_PERCENT = 30 # Allow average time to very this % from target without retarget

Allow external setting of worker difficulty, checks pool_worker table datarow[6] position for target difficulty

if present or else defaults to pool target, over rides all other difficulty settings, no checks are made

for min or max limits this sould be done by your front end software

ALLOW_EXTERNAL_DIFFICULTY = False

Advanced Option

For backwards compatibility, we send the scrypt hash to the solutions column in the shares table

For block confirmation, we have an option to send the block hash in

Please make sure your front end is compatible with the block hash in the solutions table.

For People using the MPOS frontend enabling this is recommended. It allows the frontend to compare the block hash to the coin daemon reducing the liklihood of missing share error's for blocks

SOLUTION_BLOCK_HASH = False # If enabled, enter the block hash. If false enter the scrypt/sha hash into the shares table

******************** Getwork Proxy Settings *********************

This enables a copy of slush's getwork proxy for old clients

It will also auto-redirect new clients to the stratum interface

so you can point ALL clients to: http://:<GW_PORT>

GW_ENABLE = False # Enable the Proxy
GW_PORT = 3333 # Getwork Proxy Port
GW_DISABLE_MIDSTATE = False # Disable midstate's (Faster but breaks some clients)
GW_SEND_REAL_TARGET = False # Propigate >1 difficulty to Clients (breaks some clients)

******************** Worker Ban Options *********************

ENABLE_WORKER_BANNING = True # enable/disable temporary worker banning
WORKER_CACHE_TIME = 600 # How long the worker stats cache is good before we check and refresh
WORKER_BAN_TIME = 300 # How long we temporarily ban worker
INVALID_SHARES_PERCENT = 50 # Allow average invalid shares vary this % before we ban

******************** E-Mail Notification Settings *********************

NOTIFY_EMAIL_TO = '[email protected]' # Where to send Start/Found block notifications
NOTIFY_EMAIL_TO_DEADMINER = '' # Where to send dead miner notifications
NOTIFY_EMAIL_FROM = '[email protected]' # Sender address
NOTIFY_EMAIL_SERVER = 'localhost' # E-Mail Sender
NOTIFY_EMAIL_USERNAME = '' # E-Mail server SMTP Logon
NOTIFY_EMAIL_PASSWORD = ''
NOTIFY_EMAIL_USETLS = False

New Stratum listening on Port 8000 by default?

2013-12-26 21:05:09+0100 [HTTPPageGetter,client] 2013-12-26 21:05:09,193 DEBUG stats # Logging initialized
2013-12-26 21:05:09+0100 [HTTPPageGetter,client] 2013-12-26 21:05:09,204 DEBUG protocol # Logging initialized
2013-12-26 21:05:09+0100 [HTTPPageGetter,client] 2013-12-26 21:05:09,205 DEBUG socket_transport # Logging initialized
2013-12-26 21:05:09+0100 [HTTPPageGetter,client] 2013-12-26 21:05:09,209 DEBUG http_transport # Logging initialized
2013-12-26 21:05:09+0100 [HTTPPageGetter,client] 2013-12-26 21:05:09,226 DEBUG irc # Logging initialized
2013-12-26 21:05:09+0100 [HTTPPageGetter,client] Loading of signing key 'None' failed, protocol messages cannot be signed.
2013-12-26 21:05:09+0100 [HTTPPageGetter,client] Cannot initiate SSL context, are SSL_PRIVKEY or SSL_CACERT missing?
2013-12-26 21:05:09+0100 [HTTPPageGetter,client] This will skip all SSL-based transports.
2013-12-26 21:05:09+0100 [HTTPPageGetter,client] SocketTransportFactory starting on 9111
2013-12-26 21:05:09+0100 [HTTPPageGetter,client] Starting factory <stratum.socket_transport.SocketTransportFactory instance at 0x2f8bbd8>
2013-12-26 21:05:09+0100 [HTTPPageGetter,client] Unhandled error in Deferred:
2013-12-26 21:05:09+0100 [HTTPPageGetter,client] Unhandled Error
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1071, in _inlineCallbacks
result = g.send(result)
File "/home/stablecoin/stratum-mining-new/mining/init.py", line 98, in setup
on_startup.callback(True)
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 381, in callback
self._startRunCallbacks(result)
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 489, in _startRunCallbacks
self._runCallbacks()
--- ---
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 576, in _runCallbacks
current.result = callback(current.result, _args, *_kw)
File "/usr/local/lib/python2.7/dist-packages/stratum-0.2.12-py2.7.egg/stratum/server.py", line 87, in setup_finalize
http.setServiceParent(application)
File "/usr/lib/python2.7/dist-packages/twisted/application/service.py", line 186, in setServiceParent
self.parent.addService(self)
File "/usr/lib/python2.7/dist-packages/twisted/application/service.py", line 308, in addService
service.privilegedStartService()
File "/usr/lib/python2.7/dist-packages/twisted/application/internet.py", line 105, in privilegedStartService
self._port = self._getPort()
File "/usr/lib/python2.7/dist-packages/twisted/application/internet.py", line 133, in _getPort
'listen%s' % (self.method,))(_self.args, *_self.kwargs)
File "/usr/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 489, in listenTCP
p.startListening()
File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 980, in startListening
raise CannotListenError(self.interface, self.port, le)
twisted.internet.error.CannotListenError: Couldn't listen on any:8000: [Errno 98] Address already in use.

Getting strange error when attempting to use Postgresql Database

Hi Ahmed

When I enable postgresql in the stratum config and try and run up stratum It crashes out with this error. Do you have any ideas why this is failing. Have you got this working with a postgresql database?

Error:
'module' object has no attribute 'DATABASE_EXTEND'

All the best
C

PASSWORD_SALT isn't set - don't know what the hell I'm doing error.

Could you please tell me what PASSWORLD_SALT is ... I don't see it in the conf.py file.

File "/root/stratum-mining/mining/DB_Mysql.py", line 19, in init
raise ValueError("%s isn't set, please set in config.py" % setting_name)
exceptions.ValueError: PASSWORD_SALT isn't set, please set in config.py

Failed to load application: PASSWORD_SALT isn't set, please set in config.py

Hi Ahmed

Hi Ahmed!

I'm trying to adapt your program to work in Mpos with several e-coins
I did it with Sexcoin and it works!
Now I'm trying do it with Peercoin, it is a POS coin, but I have an issue because the coin have not implemented the "getblocktemplate" method, Do you know what I can do?

Thanks in advance!

zeroDivisonError ?

Hi !

Is this a problem ? Having this in the log multiple times:

2013-12-26 05:48:12,740 DEBUG mining # miner.4 (3, 0, False, False, 1388054576) 0.00% work_id(435) job_id(7) diff(0.000000)
2013-12-26 05:48:12,743 ERROR protocol # [Failure instance: Traceback: <type 'exceptions.ZeroDivisionError'>: long division or modulo by zero
/usr/local/lib/python2.7/dist-packages/stratum-0.2.13-py2.7.egg/stratum/protocol.py:192:dataReceived
/usr/local/lib/python2.7/dist-packages/stratum-0.2.13-py2.7.egg/stratum/protocol.py:238:lineReceived
/usr/local/lib/python2.7/dist-packages/stratum-0.2.13-py2.7.egg/stratum/services.py:13:_handle_event
/usr/local/lib/python2.7/dist-packages/stratum-0.2.13-py2.7.egg/stratum/services.py:81:call
--- ---
/usr/lib/python2.7/dist-packages/twisted/internet/defer.py:137:maybeDeferred
/usr/local/lib/python2.7/dist-packages/stratum-0.2.13-py2.7.egg/stratum/services.py:78:_run
/home/user/stratum-mining/mining/service.py:138:submit
/home/user/stratum-mining/lib/template_registry.py:252:submit_share
/home/user/stratum-mining/lib/template_registry.py:155:diff_to_target
]
None
2013-12-26 05:48:17,347 INFO block_updater # Checking for new block.

Understanding VDIFF SHA256 and Scrypt Pools

This is more of a question to understand VARDIFF for scrypt and SHA256 pools rather than an issue.

I am using your stratum mining package for all of my pools (Scrypt and SHA256) with the below default settings for both my SHA256 and scrypt pools:-

POOL_TARGET = 16
VARIABLE_DIFF = True
USE_COINDAEMON_DIFF = False
DIFF_UPDATE_FREQUENCY = 86400
VDIFF_MIN_TARGET = 15
VDIFF_MAX_TARGET = 1000
VDIFF_TARGET_TIME = 30
VDIFF_RETARGET_TIME = 120
VDIFF_VARIANCE_PERCENT = 20

I can't help to think that these settings are incorrect for my SHA256 pools? Pool target of 16/Minimum target of 15 sounds like a scrypt difficulty rates?

The reason I ask this question is because my front end (MPOS) displays the difficulty figure of 15 to my users for all of my SHA256 pools.

The pools are working ok with the above settings - I'm a little bit of a perfectionist and would like to know if the settings are correct for my SHA256 pools? Your help would be much appreciated.

Issues when Miners using Stratum Proxy

Assigning worker IDs to clients with Vardiff works fine for normal workers (your regular miners that connect directly to the pool) however when you have miners who connect with Stratum Proxy this fails.

The problem is that when there are several hundred machine connecting to a pool with a stratum proxy there are multiple jobs and the code fails. Is there anyway code can be re-worked to cater for miners who connect using Stratum Mining Proxies to the pool.

setting up quarkcoin stratum mining

Hi ahmed, I set up stratum-mining quarcoin, installed stratum, stratum-mining-proxy, quarkcoin hash, but when i run my cpu miner on this stratum, only accepts my first share, others are "booo!", I change config, to be same numbers as quarkcoin has. I dont know where is the problem.

resp = (yield self._call('submitblock', [block_hex,])) Error: 404 Not Found

Found a block, and noticed on the console the following error

2013-12-23 05:26:06,458 INFO template_registry # Yay, share with diff above 100000
2013-12-23 05:26:06,459 INFO template_registry # We found a block candidate! 00000000000afb26f3c74ab1f4a2fef224f1e7ed6f2b93c3b2c1811c1e7e82db
2013-12-23 05:26:06,478 INFO bitcoin_rpc # Submitting Block with Submit Block
2013-12-23 05:26:06,478 INFO bitcoin_rpc # ['01000000ab7a85edbd990868c522bb9c24ac8c48f8b3323001e3fd18ae39b60429f42faebb9fa83a3898c85831dbc27626e4d30c8855607340757
102fd27df5904f4240fa80fb85278ca001c00421236b701000000010000000000000000000000000000000000000000000000000000000000000000ffffffff2602e15e062f503253482f04b10fb85208f
--------------8<---------------

01976a9149f2318a52621e6c5c58c26e1a23b4709ea4a901e88ac70901ac2040000001976a91400aee9a66b7b3dac7343ff51a0855b399fdc4b9e88ac00000000']
2013-12-23 05:26:06,503 INFO interfaces # 3ccea4639a07aa64363dccca552edea5f5ac84a8753654a287dc3893ac56f78d (391118939) valid headsex.miner01
2013-12-23 05:26:06,548 ERROR bitcoin_rpc # Submit Block call failed, trying GetBlockTemplate
Traceback (most recent call last):
File "/home/danny/stratum-mining/lib/bitcoin_rpc.py", line 48, in submitblock
resp = (yield self._call('submitblock', [block_hex,]))
Error: 404 Not Found
2013-12-23 05:26:06-0500 [HTTPPageGetter,client] Hit Block_template.py
2013-12-23 05:26:06-0500 [HTTPPageGetter,client] hit template registry
2013-12-23 05:26:06,772 INFO template_registry # None
2013-12-23 05:26:06,772 INFO template_registry # New template for ae2ff42904b639ae18fde3013032b3f8488cac249cbb22c5680899bded857aab
2013-12-23 05:26:06,773 INFO subscription # BROADCASTED to 3 connections in 0.000 sec
2013-12-23 05:26:06,773 INFO template_registry # Update finished, 0.034 sec, 224 txes
2013-12-23 05:26:06,774 INFO proxy # New job e9 for prevhash ed857aab, clean_jobs=False
2013-12-23 05:26:06,828 INFO interfaces # Block 3ccea4639a07aa64363dccca552edea5f5ac84a8753654a287dc3893ac56f78d ACCEPTED
2013-12-23 05:26:06,829 INFO DBInterface # Updating Found Block Share Record
2013-12-23 05:26:06,829 INFO DBInterface # Inserting 8 Share Records

Using dogecoind from dogecoin github

Only able to use 1 worker

I have a very strange problem.

If I use more than 1 worker for mining at this pool that I set up (using this stratum software), all other workers will get REJECTED: (-2, u"Job 'xxx' not found", None) error.

If one worker has submitted a share for a certain job, that worker will be able to continue submitting shares, but shares from all my other workers will get rejected.

This continues until the next block where only the first worker to submit a share is able to continue submitting shares.

Does anyone have a solution for this problem?

Manual per worker diff

Let say we have a new table

--------------------------------------------
worker_id    |    diff    |    enabled
--------------------------------------------

Mpos will add a row for each worker.
Stratum will first look in that table if there is a row for a worker, if there is, use that diff, if there is not, use vardiff (or whatever stratum is setup to).
Taking into account the enabled flag that helps not having to delete each worker's row when someone does not want to use manual diff anymore.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.