-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add gensieveroundlimitms config parameter, commit eda38d62ad571be0209…
…5ce44469c0cc26a2b3675, made orogen patch optional
- Loading branch information
Showing
4 changed files
with
206 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
81 changes: 81 additions & 0 deletions
81
net-p2p/primecoind/files/eda38d62ad571be02095ce44469c0cc26a2b3675.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
From eda38d62ad571be02095ce44469c0cc26a2b3675 Mon Sep 17 00:00:00 2001 | ||
From: Sunny King <sunnyking9999@gmail.com> | ||
Date: Wed, 10 Jul 2013 23:45:16 +0100 | ||
Subject: [PATCH] Primecoin: Add gensieveroundlimitms config parameter | ||
Further limit sieve round to default 1 second Check new block | ||
arrival when preparing sieve (courtesy Mike270) | ||
|
||
--- | ||
src/main.cpp | 9 ++++++--- | ||
src/prime.cpp | 9 ++++++--- | ||
2 files changed, 12 insertions(+), 6 deletions(-) | ||
|
||
diff --git a/src/main.cpp b/src/main.cpp | ||
index 801fe86..f56d37d 100644 | ||
--- a/src/main.cpp | ||
+++ b/src/main.cpp | ||
@@ -4435,7 +4435,8 @@ CBlockTemplate* CreateNewBlock(CReserveKey& reservekey) | ||
|
||
nLastBlockTx = nBlockTx; | ||
nLastBlockSize = nBlockSize; | ||
- printf("CreateNewBlock(): total size %"PRI64u"\n", nBlockSize); | ||
+ if (fDebug && GetBoolArg("-printmining")) | ||
+ printf("CreateNewBlock(): total size %"PRI64u"\n", nBlockSize); | ||
pblock->nBits = GetNextWorkRequired(pindexPrev, pblock); | ||
pblock->vtx[0].vout[0].nValue = GetBlockValue(pblock->nBits, nFees); | ||
pblocktemplate->vTxFees[0] = -nFees; | ||
@@ -4594,7 +4595,8 @@ void static BitcoinMiner(CWallet *pwallet) | ||
CBlock *pblock = &pblocktemplate->block; | ||
IncrementExtraNonce(pblock, pindexPrev, nExtraNonce); | ||
|
||
- printf("Running PrimecoinMiner with %"PRIszu" transactions in block (%u bytes)\n", pblock->vtx.size(), | ||
+ if (fDebug && GetBoolArg("-printmining")) | ||
+ printf("Running PrimecoinMiner with %"PRIszu" transactions in block (%u bytes)\n", pblock->vtx.size(), | ||
::GetSerializeSize(*pblock, SER_NETWORK, PROTOCOL_VERSION)); | ||
|
||
// | ||
@@ -4712,7 +4714,8 @@ void static BitcoinMiner(CWallet *pwallet) | ||
nTimeExpected = nTimeExpected * max(1u, nRoundTests) / max(1u, nRoundPrimesHit); | ||
for (unsigned int n = 1; n < TargetGetLength(pblock->nBits); n++) | ||
nTimeExpected = nTimeExpected * max(1u, nRoundTests) * 3 / max(1u, nRoundPrimesHit); | ||
- printf("PrimecoinMiner() : Round primorial=%u tests=%u primes=%u expected=%us\n", nPrimorialMultiplier, nRoundTests, nRoundPrimesHit, (unsigned int)(nTimeExpected/1000000)); | ||
+ if (fDebug && GetBoolArg("-printmining")) | ||
+ printf("PrimecoinMiner() : Round primorial=%u tests=%u primes=%u expected=%us\n", nPrimorialMultiplier, nRoundTests, nRoundPrimesHit, (unsigned int)(nTimeExpected/1000000)); | ||
} } | ||
catch (boost::thread_interrupted) | ||
{ | ||
diff --git a/src/prime.cpp b/src/prime.cpp | ||
index 3a278d0..b15f314 100644 | ||
--- a/src/prime.cpp | ||
+++ b/src/prime.cpp | ||
@@ -352,13 +352,16 @@ bool MineProbablePrimeChain(CBlock& block, CBigNum& bnFixedMultiplier, bool& fNe | ||
fNewBlock = false; | ||
|
||
int64 nStart, nCurrent; // microsecond timer | ||
+ CBlockIndex* pindexPrev = pindexBest; | ||
if (psieve.get() == NULL) | ||
{ | ||
// Build sieve | ||
nStart = GetTimeMicros(); | ||
psieve.reset(new CSieveOfEratosthenes(nMaxSieveSize, block.nBits, block.GetHeaderHash(), bnFixedMultiplier)); | ||
- while (psieve->Weave() && (GetTimeMicros() - nStart < 3000000)); | ||
- printf("MineProbablePrimeChain() : new sieve (%u/%u@%u%%) ready in %uus\n", psieve->GetCandidateCount(), nMaxSieveSize, psieve->GetProgressPercentage(), (unsigned int) (GetTimeMicros() - nStart)); | ||
+ int64 nSieveRoundLimit = (int)GetArg("-gensieveroundlimitms", 1000); | ||
+ while (psieve->Weave() && pindexPrev == pindexBest && (GetTimeMicros() - nStart < 1000 * nSieveRoundLimit)); | ||
+ if (fDebug && GetBoolArg("-printmining")) | ||
+ printf("MineProbablePrimeChain() : new sieve (%u/%u@%u%%) ready in %uus\n", psieve->GetCandidateCount(), nMaxSieveSize, psieve->GetProgressPercentage(), (unsigned int) (GetTimeMicros() - nStart)); | ||
} | ||
|
||
CBigNum bnChainOrigin; | ||
@@ -366,7 +369,7 @@ bool MineProbablePrimeChain(CBlock& block, CBigNum& bnFixedMultiplier, bool& fNe | ||
nStart = GetTimeMicros(); | ||
nCurrent = nStart; | ||
|
||
- while (nCurrent - nStart < 10000 && nCurrent >= nStart) | ||
+ while (nCurrent - nStart < 10000 && nCurrent >= nStart && pindexPrev == pindexBest) | ||
{ | ||
nTests++; | ||
if (!psieve->GetNextCandidateMultiplier(nTriedMultiplier)) | ||
-- | ||
1.8.1.6 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
# Copyright 2010-2013 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
# $Header: /var/cvsroot/gentoo-x86/net-p2p/bitcoind/bitcoind-0.8.2.ebuild,v 1.1 2013/06/14 18:49:59 blueness Exp $ | ||
|
||
EAPI="4" | ||
|
||
DB_VER="4.8" | ||
|
||
inherit db-use eutils versionator toolchain-funcs | ||
|
||
MyPV="${PV/_/}" | ||
MyPN="primecoin" | ||
MyP="${MyPN}-${MyPV}-linux" | ||
|
||
DESCRIPTION="Primecoin crypto-currency wallet for automated services" | ||
HOMEPAGE="http://primecoin.org/" | ||
SRC_URI="mirror://sourceforge/${MyPN}/${MyP}.tar.gz" | ||
|
||
LICENSE="MIT ISC GPL-2" | ||
SLOT="0" | ||
KEYWORDS="~amd64 ~arm ~x86" | ||
IUSE="examples ipv6 logrotate orogen upnp" | ||
|
||
RDEPEND=" | ||
>=dev-libs/boost-1.41.0[threads(+)] | ||
dev-libs/openssl:0[-bindist] | ||
logrotate? ( | ||
app-admin/logrotate | ||
) | ||
upnp? ( | ||
net-libs/miniupnpc | ||
) | ||
sys-libs/db:$(db_ver_to_slot "${DB_VER}")[cxx] | ||
=dev-libs/leveldb-1.9.0*[-snappy] | ||
" | ||
DEPEND="${RDEPEND} | ||
>=app-shells/bash-4.1 | ||
sys-apps/sed | ||
" | ||
|
||
S="${WORKDIR}/${MyP}/src" | ||
|
||
pkg_setup() { | ||
local UG='primecoin' | ||
enewgroup "${UG}" | ||
enewuser "${UG}" -1 -1 /var/lib/primecoin "${UG}" | ||
} | ||
|
||
src_prepare() { | ||
epatch "${FILESDIR}/${PV}-sys_leveldb.patch" | ||
epatch "${FILESDIR}/338e61568a32e74fa112edf1f3d8eee8d6780ae9.patch" | ||
epatch "${FILESDIR}/eda38d62ad571be02095ce44469c0cc26a2b3675.patch" | ||
|
||
if use orogen; then | ||
epatch "${FILESDIR}/orogen-optimization.patch" | ||
fi | ||
|
||
rm -r src/leveldb | ||
|
||
if has_version '>=dev-libs/boost-1.52'; then | ||
sed -i 's/\(-l db_cxx\)/-l boost_chrono$(BOOST_LIB_SUFFIX) \1/' src/makefile.unix | ||
fi | ||
} | ||
|
||
src_compile() { | ||
OPTS=() | ||
|
||
OPTS+=("DEBUGFLAGS=") | ||
OPTS+=("CXXFLAGS=${CXXFLAGS}") | ||
OPTS+=("LDFLAGS=${LDFLAGS}") | ||
|
||
OPTS+=("BDB_INCLUDE_PATH=$(db_includedir "${DB_VER}")") | ||
OPTS+=("BDB_LIB_SUFFIX=-${DB_VER}") | ||
|
||
if use upnp; then | ||
OPTS+=(USE_UPNP=1) | ||
else | ||
OPTS+=(USE_UPNP=) | ||
fi | ||
use ipv6 || OPTS+=("USE_IPV6=-") | ||
|
||
OPTS+=("USE_SYSTEM_LEVELDB=1") | ||
|
||
cd src || die | ||
emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" -f makefile.unix "${OPTS[@]}" ${PN} | ||
} | ||
|
||
src_test() { | ||
cd src || die | ||
emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" -f makefile.unix "${OPTS[@]}" test_primecoin | ||
./test_primecoin || die 'Tests failed' | ||
} | ||
|
||
src_install() { | ||
dobin src/${PN} | ||
|
||
insinto /etc/primecoin | ||
newins "${FILESDIR}/primecoin.conf" primecoin.conf | ||
fowners primecoin:primecoin /etc/primecoin/primecoin.conf | ||
fperms 600 /etc/primecoin/primecoin.conf | ||
|
||
newconfd "${FILESDIR}/primecoin.confd" ${PN} | ||
newinitd "${FILESDIR}/primecoin.initd" ${PN} | ||
|
||
keepdir /var/lib/primecoin/.primecoin | ||
fperms 700 /var/lib/primecoin | ||
fowners primecoin:primecoin /var/lib/primecoin/ | ||
fowners primecoin:primecoin /var/lib/primecoin/.primecoin | ||
dosym /etc/primecoin/primecoin.conf /var/lib/primecoin/.primecoin/primecoin.conf | ||
|
||
dodoc doc/README.md doc/release-notes.md | ||
|
||
if use examples; then | ||
docinto examples | ||
dodoc -r contrib/{bitrpc,pyminer,spendfrom,tidy_datadir.sh,wallettools} | ||
fi | ||
|
||
if use logrotate; then | ||
insinto /etc/logrotate.d | ||
newins "${FILESDIR}/primecoind.logrotate" primecoind | ||
fi | ||
} |