It was the Bitcointalk forum that inspired us to create Bitcointalksearch.org - Bitcointalk is an excellent site that should be the default page for anybody dealing in cryptocurrency, since it is a virtual gold-mine of data. However, our experience and user feedback led us create our site; Bitcointalk's search is slow, and difficult to get the results you need, because you need to log in first to find anything useful - furthermore, there are rate limiters for their search functionality.
The aim of our project is to create a faster website that yields more results and faster without having to create an account and eliminate the need to log in - your personal data, therefore, will never be in jeopardy since we are not asking for any of your data and you don't need to provide them to use our site with all of its capabilities.
We created this website with the sole purpose of users being able to search quickly and efficiently in the field of cryptocurrency so they will have access to the latest and most accurate information and thereby assisting the crypto-community at large.
logfunc = getattr(checkShare.logger, 'info' if blkhashn <= networkTarget else 'debug')
logfunc('BLKHASH: %64x' % (blkhashn,))
logfunc(' TARGET: %64x' % (networkTarget,))
### Settings relating to server identity
# Name of the server
ServerName = 'mrb 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 = 0x0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
# 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 = '1xxx'
# 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 server for getmemorypool
UpstreamURI = 'http://: @localhost:8332'
# 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', 8333)
# Network ID for the primary blockchain
#UpstreamNetworkId = b'\xFA\xBF\xB5\xDA' # testnet
UpstreamNetworkId = b'\xF9\xBE\xB4\xD9' # mainnet
# 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 = 0x0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
# 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
# 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 = (
('', 28332),
)
# 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 = (
('', 28333),
)
# 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",
},
)
git reset --hard HEAD^
def _makeOne(self, putf, merkleTree, checkBlock, height):
MT = self.currentMerkleTree
myblock = self.currentBlock
MR = self.makeMerkleRoot(MT, height=height)
if checkBlock:
# Only add it if the block hasn't changed in the meantime, to avoid a race
if self.currentBlock != myblock:
return
else:
# Only add it if the height hasn't changed in the meantime, to avoid a race
if self.currentBlock[1] != height:
return
putf(MR)
def makeClear(self):
self._doing('clear merkle roots')
self._makeOne(self.clearMerkleRoots.put, self.curClearMerkleTree, False, height=self.currentBlock[1])
def makeNext(self):
self._doing('longpoll merkle roots')
self._makeOne(self.nextMerkleRoots.put, self.nextMerkleTree, False, height=self.currentBlock[1] + 1)
def makeRegular(self):
self._doing('regular merkle roots')
self._makeOne(self.merkleRoots.append, self.currentMerkleTree, True, height=self.currentBlock[1])
# Network ID for the primary blockchain
UpstreamNetworkId = b'\xF9\xBE\xB4\xD9' # testnet
Traceback (most recent call last):
File "eloipool.py", line 149, in
from merklemaker import merkleMaker
File "/tmp/eloipool/merklemaker.py", line 448
self._makeOne(self.clearMerkleRoots.put, self.curClearMerkleTree, height=self.currentBlock[1], False)
SyntaxError: non-keyword arg after keyword arg
2012-11-29 12:44:43,877 merkleMaker WARNING Transaction-longpoll requested 100 seconds ago, and still not ready. Is your server fast enough to keep up with your configured WorkQueueSizeRegular maximum? (doing longpoll merkle roots)
2012-11-29 12:44:43,878 merkleMaker WARNING Haven't updated the merkle tree in at least 100 seconds! Is your server fast enough to keep up with your configured work queue minimums? (doing longpoll merkle roots)