Bitcoin Forum
November 10, 2024, 04:05:14 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 »  All
  Print  
Author Topic: [ANN] Eloipool - FAST Python3 pool server software - GBT/stratum/dyntarget/proxy  (Read 123135 times)
Luke-Jr (OP)
Legendary
*
Offline Offline

Activity: 2576
Merit: 1186



View Profile
February 11, 2013, 07:14:19 AM
 #81

I will help in the development of eloipool, but I do not know python very well (and certainly not as good as Luke) , for now  I can help in testing

is it ok that stratum server reports different  difficult than client? i have send You PM with detailed description of this issue.
Some clients display truncated bdiff (what bitcoin uses) instead of pdiff (what mining pools traditionally use). Pdiff 1 is about 0.9999 bdiff (and similar for higher difficulties), so truncating as bdiff will show 1 less than the actual difficulty.

BFGMiner uses truncated pdiff, so it will show these correctly.

Parazyd
Hero Member
*****
Offline Offline

Activity: 812
Merit: 587


Space Lord


View Profile WWW
February 11, 2013, 09:54:29 AM
 #82

Is the TrackerAddr a valid Bitcoin address.
Do 25 BTC of a solved block go on that address?
arruah
Legendary
*
Offline Offline

Activity: 1357
Merit: 1004



View Profile WWW
February 13, 2013, 02:55:59 PM
 #83

Hi!
I have error when I trying start eloipool.py
root@feinman:~/eloipool# ./eloipool.py

>>> 2013-02-13 20:45:02,965   restoreState   INFO   Restoring saved state from 'eloipool.worklog' (24 bytes)
2013-02-13 20:45:02,982   restoreState   DEBUG   Skipping restore of expired workLog
2013-02-13 20:45:02,982   restoreState   INFO   State restored successfully
2013-02-13 20:45:02,982   restoreState   INFO   Total downtime: 8774.59 seconds
2013-02-13 20:45:20,433   merkleMaker   WARNING   clearMerkleRoots running out! only 0 left
2013-02-13 20:46:33,057   merkleMaker   CRITICAL   Traceback (most recent call last):
  File "/root/eloipool/merklemaker.py", line 501, in run
    self.merkleMaker_I()
  File "/root/eloipool/merklemaker.py", line 491, in merkleMaker_I
    self.merkleMaker_II()
  File "/root/eloipool/merklemaker.py", line 457, in merkleMaker_II
    return self.updateMerkleTree()
  File "/root/eloipool/merklemaker.py", line 274, in updateMerkleTree
    MP = self.access.getblocktemplate(self.GBTReq)
  File "/usr/local/lib/python3.1/dist-packages/jsonrpc/authproxy.py", line 96, in __call__
    httpresp = self.__conn.getresponse()
  File "/usr/lib/python3.1/http/client.py", line 1017, in getresponse
    response.begin()
  File "/usr/lib/python3.1/http/client.py", line 348, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.1/http/client.py", line 304, in _read_status
    line = str(self.fp.readline(), )
  File "/usr/lib/python3.1/socket.py", line 214, in readinto
    return self._sock.recv_into(b)
socket.timeout: timed out

My config
http://pastebin.com/CtEEiSdj

BCH
smracer
Donator
Legendary
*
Offline Offline

Activity: 1057
Merit: 1021



View Profile
February 21, 2013, 05:41:50 AM
 #84

Ok, i'm trying to get eloipool with litecoin, and i'm getting this error:

 python eloipool.py
Traceback (most recent call last):
  File "eloipool.py", line 43, in <module>
    bcnode = BitcoinNode(config.UpstreamNetworkId)
  File "/home/pi/eloipool/bitcoin/node.py", line 132, in __init__
    super().__init__(*a, **ka)
TypeError: super() takes at least 1 argument (0 given)

Can someone give some help on this. My config goes like this:

Code:
### Settings relating to server identity

# Name of the server
ServerName = 'PT LTC Pool'

### Settings relating to server scaling/load

# Share hashes must be below this to be valid shares
# If dynamic targetting is enabled, this is a minimum
ShareTarget = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff

# Automatically adjust targets per username
# 0 = disabled
# 1 = arbitrary targets
# 2 = power of two difficulties (zero bit counts)
DynamicTargetting = 0

# How many shares per minute to try to achieve on average
DynamicTargetGoal = 8

# Number of seconds hashrate is measured over
DynamicTargetWindow = 120

# Minimum and maximum of merkle roots to keep queued
WorkQueueSizeRegular = (0x100, 0x1000)

# Minimum and maximum of BLANK merkle roots to keep queued
# (used if we run out of populated ones)
WorkQueueSizeClear = (0x1000, 0x2000)

# Minimum and maximum of BLANK merkle roots to keep queued, one height up
# (used for longpolls)
WorkQueueSizeLongpoll = (0x1000, 0x2000)

# How long to wait between getmemorypool updates normally
MinimumTxnUpdateWait = 5

# How long to wait between retries if getmemorypool fails
TxnUpdateRetryWait = 1

# How long to sleep in idle loops (temporary!)
IdleSleepTime = 0.1

### Settings relating to reward generation

# Address to generate rewards to
TrackerAddr = 'LTC Address'  # testnet

# Coinbaser command to control reward delegation
# NOTE: This example donates 1% of block rewards to Luke-Jr for Eloipool develo$
CoinbaserCmd = 'echo -e "1\\n$((%d / 100))\\LTC Address"'

### Settings relating to upstream data providers

# JSON-RPC server for getmemorypool
UpstreamURI = 'http://ltc user:ltc password@localhost:9332'

# Set to True if you want shares meeting the upstream target to wait for a
# response from the upstream server before logging them. Otherwise, for such
# shares, upstreamResult will always be True and upstreamRejectReason will
# always be None. Note that enabling this may cause shares to be logged out of
# order, or with the wrong timestamp (if your share logger uses the log-time
# rather than share-time).
DelayLogForUpstream = False

# Bitcoin p2p server for announcing blocks found
UpstreamBitcoindNode = ('127.0.0.1', 9333)

# Network ID for the primary blockchain
UpstreamNetworkId = b'\xFA\xBF\xB5\xDA'

# Secret username allowed to use setworkaux
#SecretUser = ""

# URI to send gotwork with info for every share submission
#GotWorkURI = ''

# Share hashes must be below this to be submitted to gotwork
GotWorkTarget = 0x00000000fffffffffffffffffffffffffffffffffffffffffffffffffffff$

# Aim to produce blocks with transaction counts that are a power of two
# This helps avoid any chance of someone abusing CVE-2012-2459 with them
# 1 = cut out feeless transactions; 2 = cut out even fee-included transactions $
POT = 2

# Avoid mining feeless transactions except to satisfy POT
# Note this only works if POT is in fact enabled in the first place
Greedy = False

### Settings relating to network services

# Addresses to listen on for JSON-RPC getwork server
# Note that Eloipool only supports IPv6 sockets, and if you want to bind to an
# IPv4 address you will need to prepend it with ::ffff: eg ::ffff:192.168.1.2
JSONRPCAddresses = (
        ('::ffff:poollink.no-ip.org', 9337),
)

# Addresses to listen on for Bitcoin node
# Note that Eloipool only supports IPv6 sockets, and if you want to bind to an
# IPv4 address you will need to prepend it with ::ffff: eg ::ffff:192.168.1.2
BitcoinNodeAddresses = (
        ('::ffff:poollink.no-ip.org', 9338),
)

# Addresses that are allowed to "spoof" from address with the X-Forwarded-For h$
TrustedForwarders = ('::ffff:127.0.0.1',)


# Logging of shares:
ShareLogging = (
        {
                'type': 'logfile',
                'filename': 'share-logfile',
                'format': "{time} {Q(remoteHost)} {username} {YN(not(rejectReas$
        },
        {
                'type': 'sql',
                'engine': 'postgres',
                'dbopts': {
                        'host': 'localhost',
'database': 'pooldb',
                        'user': 'eloipool',
                        'password': 'somethingsecret',
                },
                'statement': "insert into shares (rem_host, username, our_resul$
        },
        {
                'type': 'sql',
                'engine': 'mysql',
                'dbopts': {
                        'host': 'localhost',
                        'db': 'eloidb',
                        'user': 'dbuser',
                        'password': 'dbadmin',
                },
                'statement': "insert into shares (rem_host, username, our_resul$
        },
{
                'type': 'sql',
                'engine': 'sqlite',
                'dbopts': {
                        'database': 'share.db',
                },
                'statement': "insert into shares (remoteHost, username, rejectR$
        },
)


What is wrong here?


How did you fix this?  I am getting the same error.  Thanks.
Luke-Jr (OP)
Legendary
*
Offline Offline

Activity: 2576
Merit: 1186



View Profile
February 21, 2013, 07:49:12 AM
 #85

Ok, i'm trying to get eloipool with litecoin, and i'm getting this error:

 python eloipool.py
Traceback (most recent call last):
  File "eloipool.py", line 43, in <module>
    bcnode = BitcoinNode(config.UpstreamNetworkId)
  File "/home/pi/eloipool/bitcoin/node.py", line 132, in __init__
    super().__init__(*a, **ka)
TypeError: super() takes at least 1 argument (0 given)
How did you fix this?  I am getting the same error.  Thanks.
Eloipool doesn't support scamcoins like Litecoin.

If you're still getting the error anyway, it looks like it's probably from some ancient version of Python.
As the README clearly states, you need Python 3. To be more specific, I test under 3.1.

Parazyd
Hero Member
*****
Offline Offline

Activity: 812
Merit: 587


Space Lord


View Profile WWW
February 21, 2013, 02:36:02 PM
 #86

Hey Luke-Jr. Trying to setup eloipool. Can you help me with my config.py?
When I start ./eloipool.py I get the error that the jsonrpc module isn't found.

Code:
    ### Settings relating to server identity
    
    # Name of the server
    ServerName = 'Private Eloipool'
    
    ### Settings relating to server scaling/load
    
    # Share hashes must be below this to be valid shares
    # If dynamic targetting is enabled, this is a minimum
    ShareTarget = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
    
    # Automatically adjust targets per username
    # 0 = disabled
    # 1 = arbitrary targets
    # 2 = power of two difficulties (zero bit counts)
    DynamicTargetting = 0
    
    # How many shares per minute to try to achieve on average
    DynamicTargetGoal = 8
    
    # Number of seconds hashrate is measured over
    DynamicTargetWindow = 120
    
    # Minimum and maximum of merkle roots to keep queued
    WorkQueueSizeRegular = (0x100, 0x1000)
    
    # Minimum and maximum of BLANK merkle roots to keep queued
    # (used if we run out of populated ones)
    WorkQueueSizeClear = (0x1000, 0x2000)
    
    # Minimum and maximum of BLANK merkle roots to keep queued, one height up
    # (used for longpolls)
    WorkQueueSizeLongpoll = (0x1000, 0x2000)
    
    # How long to wait between getmemorypool updates normally
    MinimumTxnUpdateWait = 5
    
    # How long to wait between retries if getmemorypool fails
    TxnUpdateRetryWait = 1
    
    # How long to sleep in idle loops (temporary!)
    IdleSleepTime = 0.1
    
    ### Settings relating to reward generation
    
    # Address to generate rewards to
    TrackerAddr = 'MyAddress in an outside wallet on my home pc, not localhost'
    
    # Coinbaser command to control reward delegation
    # NOTE: This example donates 1% of block rewards to Luke-Jr for Eloipool development
    CoinbaserCmd = 'echo -e "1\\n$((%d / 100))\\n1579aXhdwvKZEMrAKoCZhzGuqMa8EonuXU"'
    
    ### Settings relating to upstream data providers
    
    # JSON-RPC servers to get block templates from
    # See https://en.bitcoin.it/wiki/BIP_0023#Logical_Services for key details
    TemplateSources = (
            {
                    'name': 'primary',
                    'uri': 'http://bitcoinrpc:PasswordInBitcoin.conf@localhost:8332',
                    'priority': 0,
                    'weight': 1,
            },
            {
                    'name': 'secondary',
                    'uri': 'http://bitcoinrpc:PasswordInbitcoin.conf@localhost:8332',
                    'priority': 1,
                    'weight': 1,
            },
    )
    
    # JSON-RPC servers to check block proposals with
    # If none provided, and selected source supports proposals, it alone will also
    # be used for checking
    #TemplateChecks = (
    #       {
    #               'name': 'primary',
    #               'uri': 'http://user:pass@localhost:8332',
    #              
    #               # If 'unanimous' is true, no template will be used if this node
    #               # rejects it
    #               'unanimous': False,
    #              
    #               # If check servers disagree on all templates, they will be scored and
    #               # the highest score will be used; 'weight' can be used to control the
    #               # scoring per-server
    #               'weight': 1.1,
    #       },
    #       {
    #               'name': 'secondary',
    #               'uri': 'http://user:pass@localhost:18332',
    #               'unanimous': False,
    #               'weight': 1,
    #       },
    #)
    #
    # JSON-RPC servers to submit found blocks to (when they meet the full target)
    # The specific TemplateSource that the block was based on will always be sent
    # the block first.
    # If setting is not specified, or None, full TemplateSources list will be used.
    # If an empty list, no extra submissions will be attempted.
    # If an empty list, and the block was found on a "clear" merkle root (not based
    # on any TemplateSource), the full TemplateSources list will be used.
    #BlockSubmissions = (
    #       {
    #               'name': 'primary',
    #               'uri': 'http://user:pass@localhost:8332',
    #       },
    #       {
    #               'name': 'secondary',
    #               'uri': 'http://user:pass@localhost:18332',
    #       }
    #)
    #
    # Templates will not be used unless they have an acceptance ratio above this
    # Range: 0.00 - 1.00
    MinimumTemplateAcceptanceRatio = 0
    
    # No template with a combined total score below this will be used
    MinimumTemplateScore = 1
    
    # Set to True if you want shares meeting the upstream target to wait for a
    # response from an upstream server before logging them. Otherwise, for such
    # shares, upstreamResult will always be True and upstreamRejectReason will
    # always be None. Note that enabling this may cause shares to be logged out of
    # order, or with the wrong timestamp (if your share logger uses the log-time
    # rather than share-time).
    DelayLogForUpstream = False
    
    # Bitcoin p2p server for announcing blocks found
    UpstreamBitcoindNode = ('127.0.0.1', 8333)  # testnet
    
    # Network ID for the primary blockchain
    # Other known network IDs can be found at:
    #     https://en.bitcoin.it/wiki/Protocol_specification#Message_structure
    UpstreamNetworkId = b'\xF9\xBE\xB4\xD9'  # testnet
    
    # Secret username allowed to use setworkaux
    #SecretUser = ""
    
    # URI to send gotwork with info for every share submission
    #GotWorkURI = ''
    
    # Share hashes must be below this to be submitted to gotwork
    GotWorkTarget = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
    
    # Aim to produce blocks with transaction counts that are a power of two
    # This helps avoid any chance of someone abusing CVE-2012-2459 with them
    # 1 = cut out feeless transactions; 2 = cut out even fee-included transactions (if possible)
    POT = 2
    
    # Avoid mining feeless transactions except to satisfy POT
    # Note this only works if POT is in fact enabled in the first place
    Greedy = False
    
    ### Settings relating to network services
    # Note that Eloipool only supports IPv6 sockets, and if you want to bind to an
    # IPv4 address you will need to prepend it with ::ffff: eg ::ffff:192.168.1.2
    
    # Addresses to listen on for JSON-RPC GBT/getwork server
    JSONRPCAddresses = (
            ('::ffff:MyServerIP', 1337),
    )
    
    # Addresses to listen on for Stratum mining server
    StratumAddresses = (
            ('', 3334),
    )
    
    # Addresses to listen on for Bitcoin node
    # Note this will only be used to distribute blocks the pool finds, nothing else
    BitcoinNodeAddresses = (
            ('', 8333),
    )
    
    # Addresses that are allowed to "spoof" from address with the X-Forwarded-For header
    TrustedForwarders = ('::ffff:127.0.0.1',)
    
    
    # Logging of shares:
    #ShareLogging = (
    #       {
    #               'type': 'logfile',
    #               'filename': 'share-logfile',
    #               'format': "{time} {Q(remoteHost)} {username} {YN(not(rejectReason))} {dash(YN(upstreamResult))} {dash(rejectReason)} {solution}\n",
    #       },
    #       {
    #               'type': 'sql',
    #               'engine': 'postgres',
    #               'dbopts': {
    #                       'host': 'localhost',
    #                       'database': 'pooldb',
    #                       'user': 'eloipool',
    #                       'password': 'somethingsecret',
    #               },
    #               'statement': "insert into shares (rem_host, username, our_result, upstream_result, reason, solution) values ({Q(remoteHost)}, {username}, {YN(not(rejectReason))}, {YN(upstreamResult)}, {rejectReason}, decode({solution}, 'hex'))",
    #       },
    #       {
    #               'type': 'sql',
    #               'engine': 'mysql',
    #               'dbopts': {
    #                       'host': 'localhost',
    #                       'db': 'pooldb',
    #                       'user': 'eloipool',
    #                       'password': 'somethingsecret',
    #               },
    #               'statement': "insert into shares (rem_host, username, our_result, upstream_result, reason, solution) values ({Q(remoteHost)}, {username}, {YN(not(rejectReason))}, {YN(upstreamResult)}, {rejectReason}, unhex({solution}))",
    #       },
    #       {
    #               'type': 'sql',
    #               'engine': 'sqlite',
    #               'dbopts': {
    #                       'database': 'share.db',
    #               },
    #               'statement': "insert into shares (remoteHost, username, rejectReason, upstreamResult, solution) values ({remoteHost}, {username}, {rejectReason}, {upstreamResult}, {solution})",
    #       },
    #)
    
    ### Settings related to poolserver logging
    
    # By default, significant events will be printed to the interactive console
    # You can customize your logging using either simple parameters, or Python's advanced logging framework
    # Note that using Python's logging framework will override the default console logging!
    
    # To simply log everything to the system log (syslog) as well:
    # LogToSysLog = True
    
    # To make a log file:
    # LogFile = 'filename.log'
    
    # For a rotating log file:
    LogFile = {
            'filename': 'eloipoollog.log',
            'when': 'midnight',
            'backupCount': 7,
    }
    # For details, see:
    # http://docs.python.org/3/library/logging.handlers.html#logging.handlers.TimedRotatingFileHandler
Luke-Jr (OP)
Legendary
*
Offline Offline

Activity: 2576
Merit: 1186



View Profile
February 21, 2013, 05:25:10 PM
 #87

When I start ./eloipool.py I get the error that the jsonrpc module isn't found.
That means the bitcoinrpc module isn't installed correctly.

tomaszsz
Member
**
Offline Offline

Activity: 76
Merit: 10


View Profile
February 22, 2013, 07:32:34 PM
 #88

this error still appears , just after starting the program,

Code:
>>> Traceback (most recent call last):
  File "./eloipool.py", line 909, in <module>
    MM.start()
  File "/home/xxxxxxxx/merklemaker.py", line 685, in start
    self._prepare()
  File "/home/xxxxxxxx7/merklemaker.py", line 117, in _prepare
    URINamePair(TS, 'TemplateSources[%u]' % (i,))
  File "/home/xxxxxxxx/merklemaker.py", line 104, in URINamePair
    a['name'] = URI2Name.get(a['uri'], defname)
TypeError: string indices must be integers


 and  the program stops

i send config.py to PM  (pastebin )

is it a problem with configuration ? i use the same settings in the  previous version .
Luke-Jr (OP)
Legendary
*
Offline Offline

Activity: 2576
Merit: 1186



View Profile
February 22, 2013, 07:43:37 PM
 #89

this error still appears , just after starting the program,

Code:
>>> Traceback (most recent call last):
  File "./eloipool.py", line 909, in <module>
    MM.start()
  File "/home/xxxxxxxx/merklemaker.py", line 685, in start
    self._prepare()
  File "/home/xxxxxxxx7/merklemaker.py", line 117, in _prepare
    URINamePair(TS, 'TemplateSources[%u]' % (i,))
  File "/home/xxxxxxxx/merklemaker.py", line 104, in URINamePair
    a['name'] = URI2Name.get(a['uri'], defname)
TypeError: string indices must be integers


 and  the program stops

i send config.py to PM  (pastebin )

is it a problem with configuration ? i use the same settings in the  previous version .
Check that all your option lists (especially TemplateSources, TemplateChecks, and BlockSubmissions) have commas after every element (including the last!).

tomaszsz
Member
**
Offline Offline

Activity: 76
Merit: 10


View Profile
February 22, 2013, 09:57:15 PM
 #90

that is true, a have add commas, and now
i get this error

Quote
>>> 2013-02-22 22:53:35,380     merkleMaker     INFO    New block: 00000000000004509071260531df744090422d372d706cee907b2b5f2be8b8ff (height: 222598; bits: 1a04985c)
2013-02-22 22:53:35,382 JSONRPCServer   INFO    Waiting 14.1 seconds to longpoll
2013-02-22 22:53:35,450 merkleMaker     CRITICAL        Traceback (most recent call last):
  File "/home/xxx/merklemaker.py", line 680, in run
    self.merkleMaker_I()
  File "/home/xxx/merklemaker.py", line 670, in merkleMaker_I
    self.merkleMaker_II()
  File "/home/xxx/merklemaker.py", line 636, in merkleMaker_II
    return self._updateMerkleTree()
  File "/home/xxx/merklemaker.py", line 536, in _updateMerkleTree
    self._updateMerkleTree_I()
  File "/home/xxx/merklemaker.py", line 506, in _updateMerkleTree_I
    r = self._updateMerkleTree_fromTS(TS)
  File "/home/xxx/merklemaker.py", line 481, in _updateMerkleTree_fromTS
    (AcceptedScore, TotalScore) = self._CheckTemplate(newMerkleTree, TS)
  File "/home/xxx/merklemaker.py", line 430, in _CheckTemplate
    propose = caccess.getblocktemplate(ProposeReq)
  File "/home/xxx/jsonrpc/authproxy.py", line 106, in __call__
    raise JSONRPCException(resp['error'])
jsonrpc.authproxy.JSONRPCException
Luke-Jr (OP)
Legendary
*
Offline Offline

Activity: 2576
Merit: 1186



View Profile
February 22, 2013, 10:05:33 PM
 #91

that is true, a have add commas, and now
i get this error

Quote
>>> 2013-02-22 22:53:35,380     merkleMaker     INFO    New block: 00000000000004509071260531df744090422d372d706cee907b2b5f2be8b8ff (height: 222598; bits: 1a04985c)
2013-02-22 22:53:35,382 JSONRPCServer   INFO    Waiting 14.1 seconds to longpoll
2013-02-22 22:53:35,450 merkleMaker     CRITICAL        Traceback (most recent call last):
  File "/home/xxx/merklemaker.py", line 680, in run
    self.merkleMaker_I()
  File "/home/xxx/merklemaker.py", line 670, in merkleMaker_I
    self.merkleMaker_II()
  File "/home/xxx/merklemaker.py", line 636, in merkleMaker_II
    return self._updateMerkleTree()
  File "/home/xxx/merklemaker.py", line 536, in _updateMerkleTree
    self._updateMerkleTree_I()
  File "/home/xxx/merklemaker.py", line 506, in _updateMerkleTree_I
    r = self._updateMerkleTree_fromTS(TS)
  File "/home/xxx/merklemaker.py", line 481, in _updateMerkleTree_fromTS
    (AcceptedScore, TotalScore) = self._CheckTemplate(newMerkleTree, TS)
  File "/home/xxx/merklemaker.py", line 430, in _CheckTemplate
    propose = caccess.getblocktemplate(ProposeReq)
  File "/home/xxx/jsonrpc/authproxy.py", line 106, in __call__
    raise JSONRPCException(resp['error'])
jsonrpc.authproxy.JSONRPCException
Probably your bitcoind is missing BIP 23 Proposal support.
There is a pull request for bitcoind here. It's also included in the 0.6.0.eligius and 0.8.0.eligius miner releases of bitcoind.
Alternatively, it should be safe to use Eloipool without any TemplateChecks. This is only used to guard against unknown bugs in block creation.

tomaszsz
Member
**
Offline Offline

Activity: 76
Merit: 10


View Profile
February 23, 2013, 04:07:57 PM
Last edit: February 23, 2013, 04:23:56 PM by tomaszsz
 #92

everything look ok  now ( after comment TemplateChecks or  use  0.8.0.eligius  bitcoind branch )  but sometimes this message appears


Quote
2013-02-23 14:04:49,958 merkleMaker     INFO    New block: 00000000000002323fa1359645f9c26ec005792f9d463faa55931f32cde12020 (height: 222693; bits: 1a04985c)
2013-02-23 14:04:50,111 JSONRPCServer   INFO    Longpoll woke up 6 clients in 0.042 seconds
2013-02-23 14:04:50,126 merkleMaker     CRITICAL        Traceback (most recent call last):
  File "/home/xxxxxx/merklemaker.py", line 680, in run
    self.merkleMaker_I()
  File "/home/xxxxx/merklemaker.py", line 670, in merkleMaker_I
    self.merkleMaker_II()
  File "/home/xxxxx/merklemaker.py", line 648, in merkleMaker_II
    return self._updateMerkleTree()
  File "/home/xxxxx/merklemaker.py", line 536, in _updateMerkleTree
    self._updateMerkleTree_I()
  File "/home/xxxxx/merklemaker.py", line 506, in _updateMerkleTree_I
    r = self._updateMerkleTree_fromTS(TS)
  File "/home/xxx/merklemaker.py", line 485, in _updateMerkleTree_fromTS
    AcceptRatio = AcceptedScore / TotalScore
ZeroDivisionError: int division or modulo by zero

?

Quote
2013-02-23 16:14:17,978 JSONRPCHandler  ERROR   Error during JSON-RPC call (UA=b'cgminer 2.10.2', IP=::ffff:xx.xx.41.73): doJSON_submitblock['02000000d6b2ca723dd01ffffffff025d5988ac00000000', {}]
Traceback (most recent call last):
  File "/home/xxxx/jsonrpcserver.py", line 200, in _doJSON_i
    rv = getattr(self, method)(*params)
  File "/home/xxxxx/jsonrpc_getblocktemplate.py", line 91, in doJSON_submitblock
    data = bytes.fromhex(data)
ValueError: non-hexadecimal number found in fromhex() arg at position 166

i think it is bug in cgminer 2.10.2 ?

Quote
2013-02-23 16:29:37,753 JSONRPCServer   INFO    Longpoll woke up 2 clients in 0.272 seconds
2013-02-23 16:30:45,122 merkleMaker     ERROR   Upstream 'primary' rejected proposed block from 'primary': stale-prevblk
2013-02-23 16:30:45,132 merkleMaker     CRITICAL        Traceback (most recent call last):
  File "/home/xxxx/merklemaker.py", line 680, in run
    self.merkleMaker_I()
  File "/home/xxxxx/merklemaker.py", line 670, in merkleMaker_I
    self.merkleMaker_II()
  File "/home/xxxxx/merklemaker.py", line 648, in merkleMaker_II
    return self._updateMerkleTree()
  File "/home/xxxxxx/merklemaker.py", line 536, in _updateMerkleTree
    self._updateMerkleTree_I()
  File "/home/xxxx/merklemaker.py", line 522, in _updateMerkleTree_I
    raise RuntimeError('Failed to create usable template')
RuntimeError: Failed to create usable template
?



and in stratum
Quote
2013-02-23 14:33:47,374 merkleMaker     WARNING Transaction-longpoll requested 22 seconds ago, and still not ready. Is your server fast enough to keep up with your configured WorkQueueSizeRegular maximum? (doing longpoll merkle roots)
2013-02-23 14:33:47,374 merkleMaker     WARNING Haven't updated the merkle tree in at least 22 seconds! Is your server fast enough to keep up with your configured work queue minimums? (doing longpoll merkle roots)
2013-02-23 14:33:49,320 JSONRPCServer   INFO    Nobody to longpoll
2013-02-23 14:34:26,101 StratumServer   ERROR   Traceback (most recent call last):
  File "/home/yyyyyyy/networkserver.py", line 413, in serve_forever
    o.handle_read()
  File "/home/yyyyy/networkserver.py", line 59, in handle_read
    self.handle_readbuf()
  File "/homeyyyyy/networkserver.py", line 111, in handle_readbuf
    self.found_terminator()
  File "/home/yyyyyy/stratumserver.py", line 60, in found_terminator
    inbuf = b"".join(self.incoming).decode('ascii')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb9 in position 32: ordinal not in range(128)


Luke-Jr (OP)
Legendary
*
Offline Offline

Activity: 2576
Merit: 1186



View Profile
February 23, 2013, 07:14:32 PM
 #93

Quote
2013-02-23 14:04:49,958 merkleMaker     INFO    New block: 00000000000002323fa1359645f9c26ec005792f9d463faa55931f32cde12020 (height: 222693; bits: 1a04985c)
2013-02-23 14:04:50,111 JSONRPCServer   INFO    Longpoll woke up 6 clients in 0.042 seconds
2013-02-23 14:04:50,126 merkleMaker     CRITICAL        Traceback (most recent call last):
  File "/home/xxxxxx/merklemaker.py", line 680, in run
    self.merkleMaker_I()
  File "/home/xxxxx/merklemaker.py", line 670, in merkleMaker_I
    self.merkleMaker_II()
  File "/home/xxxxx/merklemaker.py", line 648, in merkleMaker_II
    return self._updateMerkleTree()
  File "/home/xxxxx/merklemaker.py", line 536, in _updateMerkleTree
    self._updateMerkleTree_I()
  File "/home/xxxxx/merklemaker.py", line 506, in _updateMerkleTree_I
    r = self._updateMerkleTree_fromTS(TS)
  File "/home/xxx/merklemaker.py", line 485, in _updateMerkleTree_fromTS
    AcceptRatio = AcceptedScore / TotalScore
ZeroDivisionError: int division or modulo by zero
Fixed in git.

Quote
2013-02-23 16:14:17,978 JSONRPCHandler  ERROR   Error during JSON-RPC call (UA=b'cgminer 2.10.2', IP=::ffff:xx.xx.41.73): doJSON_submitblock['02000000d6b2ca723dd01ffffffff025d5988ac00000000', {}]
Traceback (most recent call last):
  File "/home/xxxx/jsonrpcserver.py", line 200, in _doJSON_i
    rv = getattr(self, method)(*params)
  File "/home/xxxxx/jsonrpc_getblocktemplate.py", line 91, in doJSON_submitblock
    data = bytes.fromhex(data)
ValueError: non-hexadecimal number found in fromhex() arg at position 166

i think it is bug in cgminer 2.10.2 ?
Yep.

Quote
2013-02-23 16:29:37,753 JSONRPCServer   INFO    Longpoll woke up 2 clients in 0.272 seconds
2013-02-23 16:30:45,122 merkleMaker     ERROR   Upstream 'primary' rejected proposed block from 'primary': stale-prevblk
2013-02-23 16:30:45,132 merkleMaker     CRITICAL        Traceback (most recent call last):
  File "/home/xxxx/merklemaker.py", line 680, in run
    self.merkleMaker_I()
  File "/home/xxxxx/merklemaker.py", line 670, in merkleMaker_I
    self.merkleMaker_II()
  File "/home/xxxxx/merklemaker.py", line 648, in merkleMaker_II
    return self._updateMerkleTree()
  File "/home/xxxxxx/merklemaker.py", line 536, in _updateMerkleTree
    self._updateMerkleTree_I()
  File "/home/xxxx/merklemaker.py", line 522, in _updateMerkleTree_I
    raise RuntimeError('Failed to create usable template')
RuntimeError: Failed to create usable template
Happens sometimes. bitcoind has found a new block, so is reporting our proposal stale. I'm assuming it's followed very quickly with a new block notification?

Quote
2013-02-23 14:33:47,374 merkleMaker     WARNING Transaction-longpoll requested 22 seconds ago, and still not ready. Is your server fast enough to keep up with your configured WorkQueueSizeRegular maximum? (doing longpoll merkle roots)
2013-02-23 14:33:47,374 merkleMaker     WARNING Haven't updated the merkle tree in at least 22 seconds! Is your server fast enough to keep up with your configured work queue minimums? (doing longpoll merkle roots)
2013-02-23 14:33:49,320 JSONRPCServer   INFO    Nobody to longpoll
2013-02-23 14:34:26,101 StratumServer   ERROR   Traceback (most recent call last):
  File "/home/yyyyyyy/networkserver.py", line 413, in serve_forever
    o.handle_read()
  File "/home/yyyyy/networkserver.py", line 59, in handle_read
    self.handle_readbuf()
  File "/homeyyyyy/networkserver.py", line 111, in handle_readbuf
    self.found_terminator()
  File "/home/yyyyyy/stratumserver.py", line 60, in found_terminator
    inbuf = b"".join(self.incoming).decode('ascii')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb9 in position 32: ordinal not in range(128)
Sounds like bad data sent to the server.

tomaszsz
Member
**
Offline Offline

Activity: 76
Merit: 10


View Profile
February 23, 2013, 08:48:32 PM
 #94

Quote
2013-02-23 16:29:37,753 JSONRPCServer   INFO    Longpoll woke up 2 clients in 0.272 seconds
2013-02-23 16:30:45,122 merkleMaker     ERROR   Upstream 'primary' rejected proposed block from 'primary': stale-prevblk
2013-02-23 16:30:45,132 merkleMaker     CRITICAL        Traceback (most recent call last):
  File "/home/xxxx/merklemaker.py", line 680, in run
    self.merkleMaker_I()
  File "/home/xxxxx/merklemaker.py", line 670, in merkleMaker_I
    self.merkleMaker_II()
  File "/home/xxxxx/merklemaker.py", line 648, in merkleMaker_II
    return self._updateMerkleTree()
  File "/home/xxxxxx/merklemaker.py", line 536, in _updateMerkleTree
    self._updateMerkleTree_I()
  File "/home/xxxx/merklemaker.py", line 522, in _updateMerkleTree_I
    raise RuntimeError('Failed to create usable template')
RuntimeError: Failed to create usable template
Happens sometimes. bitcoind has found a new block, so is reporting our proposal stale. I'm assuming it's followed very quickly with a new block notification?


i don't think that is after new block notyfication  about minute after  new block ?

and usualy new block is annouced without this message , just normal like this:


Quote
2013-02-23 20:14:03,307 JSONRPCServer   INFO    Longpoll woke up 8 clients in 0.030 seconds
2013-02-23 20:22:16,810 merkleMaker     INFO    New block: 00000000000000112079f0792 (height: 222748; bits: 1a04985c)
2013-02-23 20:22:16,956 JSONRPCServer   INFO    Longpoll woke up 8 clients in 0.081 seconds
2013-02-23 20:22:17,951 JSONRPCServer   INFO    Waiting 4 seconds to longpoll
2013-02-23 20:22:21,972 JSONRPCServer   INFO    Longpoll woke up 7 clients in 0.010 seconds
2013-02-23 20:27:41,546 merkleMaker     INFO    New block: 00000000000001d403f01 (height: 222749; bits: 1a04985c)
2013-02-23 20:27:41,769 JSONRPCServer   INFO    Longpoll woke up 8 clients in 0.089 seconds
2013-02-23 20:27:44,384 JSONRPCServer   INFO    Waiting 2.39 seconds to longpoll
2013-02-23 20:27:58,363 JSONRPCServer   INFO    Longpoll woke up 7 clients in 0.062 seconds
smracer
Donator
Legendary
*
Offline Offline

Activity: 1057
Merit: 1021



View Profile
February 27, 2013, 04:27:33 AM
 #95

2013-02-26 22:19:38,420 jsonrpc_getwork WARNING Error importing 'midstate' module; work will not provide midstates

2013-02-26 22:19:38,440 sharelogging    ERROR   Error setting up share logger sql: (<class 'ImportError'>, ImportError('No module named psycopg2',), <traceback object at 0x1c2ab48>)
>>> 2013-02-26 22:19:38,441     sharelogging    ERROR   Error setting up share logger sql: (<class 'ImportError'>, ImportError('No module named pymysql',), <traceback object at 0x1c2ac20>)
2013-02-26 22:19:38,473 merkleMaker     INFO    New block: 0000000000000015f4b9cf9b1c9e8b1e95460cdf6397ab2cf2e8a67d7228b655 (height: 223339; bits: 1a04985c)
2013-02-26 22:19:38,476 JSONRPCServer   INFO    Waiting 15 seconds to longpoll
2013-02-26 22:19:39,441 JSONRPCServer   INFO    Ignoring longpoll attempt while another is waiting
2013-02-26 22:19:53,465 JSONRPCServer   INFO    Nobody to longpoll
2013-02-26 22:21:40,147 merkleMaker     INFO    New block: 000000000000039c13a0e83af734cf6c0c5accc06b83ed0cb6c77ff9bd38e0f4 (height: 223340; bits: 1a04985c)
2013-02-26 22:21:40,150 JSONRPCServer   INFO    Nobody to longpoll
2013-02-26 22:21:40,708 JSONRPCServer   INFO    Nobody to longpoll


What am I doing wrong? 
tomaszsz
Member
**
Offline Offline

Activity: 76
Merit: 10


View Profile
March 03, 2013, 06:04:10 PM
 #96

probably you dont have midstate module (compile this from source file midstate.so needed )
and no sql libs pymysql etc (install python modules)
dreamwatcher
Legendary
*
Offline Offline

Activity: 1064
Merit: 1000


View Profile WWW
March 03, 2013, 07:43:24 PM
 #97

2013-02-26 22:19:38,420 jsonrpc_getwork WARNING Error importing 'midstate' module; work will not provide midstates

2013-02-26 22:19:38,440 sharelogging    ERROR   Error setting up share logger sql: (<class 'ImportError'>, ImportError('No module named psycopg2',), <traceback object at 0x1c2ab48>)
>>> 2013-02-26 22:19:38,441     sharelogging    ERROR   Error setting up share logger sql: (<class 'ImportError'>, ImportError('No module named pymysql',), <traceback object at 0x1c2ac20>)
2013-02-26 22:19:38,473 merkleMaker     INFO    New block: 0000000000000015f4b9cf9b1c9e8b1e95460cdf6397ab2cf2e8a67d7228b655 (height: 223339; bits: 1a04985c)
2013-02-26 22:19:38,476 JSONRPCServer   INFO    Waiting 15 seconds to longpoll
2013-02-26 22:19:39,441 JSONRPCServer   INFO    Ignoring longpoll attempt while another is waiting
2013-02-26 22:19:53,465 JSONRPCServer   INFO    Nobody to longpoll
2013-02-26 22:21:40,147 merkleMaker     INFO    New block: 000000000000039c13a0e83af734cf6c0c5accc06b83ed0cb6c77ff9bd38e0f4 (height: 223340; bits: 1a04985c)
2013-02-26 22:21:40,150 JSONRPCServer   INFO    Nobody to longpoll
2013-02-26 22:21:40,708 JSONRPCServer   INFO    Nobody to longpoll


What am I doing wrong? 

You need to install the python3 psycopg2 module.

sudo apt-get install python3-psycopg2

or

sudo aptitude install python3-psycopg2

ocminer
Legendary
*
Offline Offline

Activity: 2688
Merit: 1240



View Profile WWW
March 10, 2013, 11:27:57 AM
 #98

As this is the - interesting - open source backend.. Is there also an open source frontend based on this pool software and php / mysql ?

suprnova pools - reliable mining pools - #suprnova on freenet
https://www.suprnova.cc - FOLLOW us @ Twitter ! twitter.com/SuprnovaPools
Inaba
Legendary
*
Offline Offline

Activity: 1260
Merit: 1000



View Profile WWW
March 10, 2013, 04:48:38 PM
 #99

Nope

If you're searching these lines for a point, you've probably missed it.  There was never anything there in the first place.
ocminer
Legendary
*
Offline Offline

Activity: 2688
Merit: 1240



View Profile WWW
March 10, 2013, 06:11:12 PM
 #100

lend me yours ;-)

ok i'll put something up when i got time...

suprnova pools - reliable mining pools - #suprnova on freenet
https://www.suprnova.cc - FOLLOW us @ Twitter ! twitter.com/SuprnovaPools
Pages: « 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!