New DelayLogForUpstream configuration option, and try submitblock(data) before getmem...
[bitcoin:eloipool.git] / config.py.example
1 ### Settings relating to server identity
2
3 # Name of the server
4 ServerName = 'Private Eloipool'
5
6 ### Settings relating to server scaling/load
7
8 # Minimum and maximum of merkle roots to keep queued
9 WorkQueueSizeRegular = (0x100, 0x1000)
10
11 # Minimum and maximum of BLANK merkle roots to keep queued
12 # (used if we run out of populated ones, usually after a block is found)
13 WorkQueueSizeLongpoll = (0x1000, 0x2000)
14
15 # How long to wait between getmemorypool updates normally
16 MinimumTxnUpdateWait = 5
17
18 # How long to wait between retries if getmemorypool fails
19 TxnUpdateRetryWait = 1
20
21 # How long to sleep in idle loops (temporary!)
22 IdleSleepTime = 0.1
23
24 ### Settings relating to reward generation
25
26 # Address to generate rewards to
27 TrackerAddr = 'mrsP7M31efGkQHXb7nRiWLDjfV2M8oakf2'  # testnet
28
29 # Coinbaser command to control reward delegation
30 # NOTE: This example donates 1% of block rewards to Luke-Jr for Eloipool development
31 CoinbaserCmd = 'echo "1\\n$((%d / 100))\\n1579aXhdwvKZEMrAKoCZhzGuqMa8EonuXU\\n"'
32
33 ### Settings relating to upstream data providers
34
35 # JSON-RPC server for getmemorypool
36 UpstreamURI = 'http://user:pass@localhost:18332'
37
38 # Set to True if you want shares meeting the upstream target to wait for a
39 # response from the upstream server before logging them. Otherwise, for such
40 # shares, upstreamResult will always be True and upstreamRejectReason will
41 # always be None. Note that enabling this may cause shares to be logged out of
42 # order, or with the wrong timestamp (if your share logger uses the log-time
43 # rather than share-time).
44 DelayLogForUpstream = False
45
46 # Bitcoin p2p server for announcing blocks found
47 UpstreamBitcoindNode = ('127.0.0.1', 18333)  # testnet
48
49 # Network ID for the primary blockchain
50 UpstreamNetworkId = b'\xFA\xBF\xB5\xDA'  # testnet
51
52 # Secret username allowed to use setworkaux
53 #SecretUser = ""
54
55 # URI to send gotwork with info for every share submission
56 #GotWorkURI = ''
57
58 # Share hashes must be below this to be submitted to gotwork
59 GotWorkTarget = 0x000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
60
61 ### Settings relating to network services
62
63 # Addresses to listen on for JSON-RPC getwork server
64 # Note that Eloipool only supports IPv6 sockets, and if you want to bind to an
65 # IPv4 address you will need to prepend it with ::ffff: eg ::ffff:192.168.1.2
66 JSONRPCAddresses = (
67         ('', 8337),
68 )
69
70 # Addresses to listen on for Bitcoin node
71 # Note that Eloipool only supports IPv6 sockets, and if you want to bind to an
72 # IPv4 address you will need to prepend it with ::ffff: eg ::ffff:192.168.1.2
73 BitcoinNodeAddresses = (
74         ('', 8338),
75 )
76
77 # Addresses that are allowed to "spoof" from address with the X-Forwarded-For header
78 TrustedForwarders = ('::ffff:127.0.0.1',)
79
80
81 # Logging of shares:
82 ShareLogging = (
83         {
84                 'type': 'logfile',
85                 'filename': 'share-logfile',
86                 'format': "{time} {Q(remoteHost)} {username} {YN(not(rejectReason))} {dash(YN(upstreamResult))} {dash(rejectReason)} {solution}\n",
87         },
88         {
89                 'type': 'sql',
90                 'engine': 'postgres',
91                 'dbopts': {
92                         'host': 'localhost',
93                         'database': 'pooldb',
94                         'user': 'eloipool',
95                         'password': 'somethingsecret',
96                 },
97                 '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'))",
98         },
99         {
100                 'type': 'sql',
101                 'engine': 'mysql',
102                 'dbopts': {
103                         'host': 'localhost',
104                         'db': 'pooldb',
105                         'user': 'eloipool',
106                         'password': 'somethingsecret',
107                 },
108                 '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}))",
109         },
110         {
111                 'type': 'sql',
112                 'engine': 'sqlite',
113                 'dbopts': {
114                         'database': 'share.db',
115                 },
116                 'statement': "insert into shares (remoteHost, username, rejectReason, upstreamResult, solution) values ({remoteHost}, {username}, {rejectReason}, {upstreamResult}, {solution})",
117         },
118 )
119