Merge branch 'bugfix_hicb_getMC'
[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 # Share hashes must be below this to be valid shares
9 ShareTarget = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
10
11 # Minimum and maximum of merkle roots to keep queued
12 WorkQueueSizeRegular = (0x100, 0x1000)
13
14 # Minimum and maximum of BLANK merkle roots to keep queued
15 # (used if we run out of populated ones)
16 WorkQueueSizeClear = (0x1000, 0x2000)
17
18 # Minimum and maximum of BLANK merkle roots to keep queued, one height up
19 # (used for longpolls)
20 WorkQueueSizeLongpoll = (0x1000, 0x2000)
21
22 # How long to wait between getmemorypool updates normally
23 MinimumTxnUpdateWait = 5
24
25 # How long to wait between retries if getmemorypool fails
26 TxnUpdateRetryWait = 1
27
28 # How long to sleep in idle loops (temporary!)
29 IdleSleepTime = 0.1
30
31 ### Settings relating to reward generation
32
33 # Address to generate rewards to
34 TrackerAddr = 'mrsP7M31efGkQHXb7nRiWLDjfV2M8oakf2'  # testnet
35
36 # Coinbaser command to control reward delegation
37 # NOTE: This example donates 1% of block rewards to Luke-Jr for Eloipool development
38 CoinbaserCmd = 'echo -e "1\\n$((%d / 100))\\n1579aXhdwvKZEMrAKoCZhzGuqMa8EonuXU"'
39
40 ### Settings relating to upstream data providers
41
42 # JSON-RPC server for getmemorypool
43 UpstreamURI = 'http://user:pass@localhost:18332'
44
45 # Bitcoin p2p server for announcing blocks found
46 UpstreamBitcoindNode = ('127.0.0.1', 18333)  # testnet
47
48 # Network ID for the primary blockchain
49 UpstreamNetworkId = b'\xFA\xBF\xB5\xDA'  # testnet
50
51 # Secret username allowed to use setworkaux
52 #SecretUser = ""
53
54 # URI to send gotwork with info for every share submission
55 #GotWorkURI = ''
56
57 # Share hashes must be below this to be submitted to gotwork
58 GotWorkTarget = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
59
60 # Aim to produce blocks with transaction counts that are a power of two
61 # This helps avoid any chance of someone abusing CVE-2012-2459 with them
62 # 1 = cut out feeless transactions; 2 = cut out even fee-included transactions (if possible)
63 POT = 2
64
65 # Avoid mining feeless transactions except to satisfy POT
66 # Note this only works if POT is in fact enabled in the first place
67 Greedy = False
68
69 ### Settings relating to network services
70
71 # Addresses to listen on for JSON-RPC getwork server
72 # Note that Eloipool only supports IPv6 sockets, and if you want to bind to an
73 # IPv4 address you will need to prepend it with ::ffff: eg ::ffff:192.168.1.2
74 JSONRPCAddresses = (
75         ('', 8337),
76 )
77
78 # Addresses to listen on for Bitcoin node
79 # Note that Eloipool only supports IPv6 sockets, and if you want to bind to an
80 # IPv4 address you will need to prepend it with ::ffff: eg ::ffff:192.168.1.2
81 BitcoinNodeAddresses = (
82         ('', 8338),
83 )
84
85 # Addresses that are allowed to "spoof" from address with the X-Forwarded-For header
86 TrustedForwarders = ('::ffff:127.0.0.1',)
87
88
89 # Logging of shares:
90 ShareLogging = (
91         {
92                 'type': 'logfile',
93                 'filename': 'share-logfile',
94                 'format': "{time} {Q(remoteHost)} {username} {YN(not(rejectReason))} {dash(YN(upstreamResult))} {dash(rejectReason)} {solution}\n",
95         },
96         {
97                 'type': 'sql',
98                 'engine': 'postgres',
99                 'dbopts': {
100                         'host': 'localhost',
101                         'database': 'pooldb',
102                         'user': 'eloipool',
103                         'password': 'somethingsecret',
104                 },
105                 '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'))",
106         },
107         {
108                 'type': 'sql',
109                 'engine': 'mysql',
110                 'dbopts': {
111                         'host': 'localhost',
112                         'db': 'pooldb',
113                         'user': 'eloipool',
114                         'password': 'somethingsecret',
115                 },
116                 '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}))",
117         },
118         {
119                 'type': 'sql',
120                 'engine': 'sqlite',
121                 'dbopts': {
122                         'database': 'share.db',
123                 },
124                 'statement': "insert into shares (remoteHost, username, rejectReason, upstreamResult, solution) values ({remoteHost}, {username}, {rejectReason}, {upstreamResult}, {solution})",
125         },
126 )
127