mirror of
https://github.com/dogecoin/dogecoin.git
synced 2026-02-18 19:28:48 +00:00
Merge pull request #1207 from rnicoll/1.10-bitcoin
Bring client up to date with Bitcoin Core 0.11.0
This commit is contained in:
commit
2bb124df3f
@ -438,7 +438,7 @@ if test x$TARGET_OS = xdarwin; then
|
||||
AX_CHECK_LINK_FLAG([[-Wl,-dead_strip]], [LDFLAGS="$LDFLAGS -Wl,-dead_strip"])
|
||||
fi
|
||||
|
||||
AC_CHECK_HEADERS([endian.h byteswap.h stdio.h stdlib.h unistd.h strings.h sys/types.h sys/stat.h sys/select.h sys/prctl.h])
|
||||
AC_CHECK_HEADERS([endian.h sys/endian.h byteswap.h stdio.h stdlib.h unistd.h strings.h sys/types.h sys/stat.h sys/select.h sys/prctl.h])
|
||||
AC_SEARCH_LIBS([getaddrinfo_a], [anl], [AC_DEFINE(HAVE_GETADDRINFO_A, 1, [Define this symbol if you have getaddrinfo_a])])
|
||||
AC_SEARCH_LIBS([inet_pton], [nsl resolv], [AC_DEFINE(HAVE_INET_PTON, 1, [Define this symbol if you have inet_pton])])
|
||||
|
||||
@ -447,6 +447,8 @@ AC_CHECK_DECLS([strnlen])
|
||||
AC_CHECK_DECLS([le16toh, le32toh, le64toh, htole16, htole32, htole64, be16toh, be32toh, be64toh, htobe16, htobe32, htobe64],,,
|
||||
[#if HAVE_ENDIAN_H
|
||||
#include <endian.h>
|
||||
#elif HAVE_SYS_ENDIAN_H
|
||||
#include <sys/endian.h>
|
||||
#endif])
|
||||
|
||||
AC_CHECK_DECLS([bswap_16, bswap_32, bswap_64],,,
|
||||
|
||||
@ -2,8 +2,7 @@ Format: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?rev=174
|
||||
Upstream-Name: Bitcoin
|
||||
Upstream-Contact: Satoshi Nakamoto <satoshin@gmx.com>
|
||||
irc://#bitcoin@freenode.net
|
||||
Source: http://sourceforge.net/projects/bitcoin/files/
|
||||
https://github.com/bitcoin/bitcoin
|
||||
Source: https://github.com/bitcoin/bitcoin
|
||||
|
||||
Files: *
|
||||
Copyright: 2009-2012, Bitcoin Core Developers
|
||||
|
||||
39
contrib/gitian-descriptors/gitian-win-signer.yml
Normal file
39
contrib/gitian-descriptors/gitian-win-signer.yml
Normal file
@ -0,0 +1,39 @@
|
||||
---
|
||||
name: "bitcoin-win-signer"
|
||||
suites:
|
||||
- "precise"
|
||||
architectures:
|
||||
- "amd64"
|
||||
packages:
|
||||
- "libssl-dev"
|
||||
- "autoconf"
|
||||
reference_datetime: "2015-06-01 00:00:00"
|
||||
remotes:
|
||||
- "url": "https://github.com/bitcoin/bitcoin-detached-sigs.git"
|
||||
"dir": "signature"
|
||||
files:
|
||||
- "osslsigncode-1.7.1.tar.gz"
|
||||
- "osslsigncode-Backports-to-1.7.1.patch"
|
||||
- "bitcoin-win-unsigned.tar.gz"
|
||||
script: |
|
||||
BUILD_DIR=`pwd`
|
||||
SIGDIR=${BUILD_DIR}/signature/win
|
||||
UNSIGNED_DIR=${BUILD_DIR}/unsigned
|
||||
|
||||
echo "f9a8cdb38b9c309326764ebc937cba1523a3a751a7ab05df3ecc99d18ae466c9 osslsigncode-1.7.1.tar.gz" | sha256sum -c
|
||||
echo "a8c4e9cafba922f89de0df1f2152e7be286aba73f78505169bc351a7938dd911 osslsigncode-Backports-to-1.7.1.patch" | sha256sum -c
|
||||
|
||||
mkdir -p ${UNSIGNED_DIR}
|
||||
tar -C ${UNSIGNED_DIR} -xf bitcoin-win-unsigned.tar.gz
|
||||
|
||||
tar xf osslsigncode-1.7.1.tar.gz
|
||||
cd osslsigncode-1.7.1
|
||||
patch -p1 < ${BUILD_DIR}/osslsigncode-Backports-to-1.7.1.patch
|
||||
|
||||
./configure --without-gsf --without-curl --disable-dependency-tracking
|
||||
make
|
||||
find ${UNSIGNED_DIR} -name "*-unsigned.exe" | while read i; do
|
||||
INFILE="`basename "${i}"`"
|
||||
OUTFILE="`echo "${INFILE}" | sed s/-unsigned//`"
|
||||
./osslsigncode attach-signature -in "${i}" -out "${OUTDIR}/${OUTFILE}" -sigin "${SIGDIR}/${INFILE}.pem"
|
||||
done
|
||||
@ -84,6 +84,8 @@ script: |
|
||||
pushd temp
|
||||
tar xf ../$SOURCEDIST
|
||||
find bitcoin-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST
|
||||
mkdir -p $OUTDIR/src
|
||||
cp ../$SOURCEDIST $OUTDIR/src
|
||||
popd
|
||||
|
||||
ORIGPATH="$PATH"
|
||||
@ -109,7 +111,8 @@ script: |
|
||||
find ${DISTNAME} -type f | sort | zip -X@ ${OUTDIR}/${DISTNAME}-${i}.zip
|
||||
cd ../..
|
||||
done
|
||||
mkdir -p $OUTDIR/src
|
||||
mv $SOURCEDIST $OUTDIR/src
|
||||
cd $OUTDIR
|
||||
rename 's/-setup\.exe$/-setup-unsigned.exe/' *-setup.exe
|
||||
find . -name "*-setup-unsigned.exe" | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-win-unsigned.tar.gz
|
||||
mv ${OUTDIR}/${DISTNAME}-x86_64-*.zip ${OUTDIR}/${DISTNAME}-win64.zip
|
||||
mv ${OUTDIR}/${DISTNAME}-i686-*.zip ${OUTDIR}/${DISTNAME}-win32.zip
|
||||
|
||||
@ -3,7 +3,7 @@ name: bitcoin
|
||||
urls:
|
||||
- http://bitcoin.org/bitcoin-latest-linux-gitian.zip
|
||||
rss:
|
||||
- url: http://sourceforge.net/api/file/index/project-id/244765/mtime/desc/limit/100/rss
|
||||
- url:
|
||||
xpath: //item/link/text()
|
||||
pattern: bitcoin-\d+.\d+.\d+-linux-gitian.zip
|
||||
signers:
|
||||
|
||||
@ -3,7 +3,7 @@ name: bitcoin
|
||||
urls:
|
||||
- http://bitcoin.org/bitcoin-latest-win32-gitian.zip
|
||||
rss:
|
||||
- url: http://sourceforge.net/api/file/index/project-id/244765/mtime/desc/limit/100/rss
|
||||
- url:
|
||||
xpath: //item/link/text()
|
||||
pattern: bitcoin-\d+.\d+.\d+-win32-gitian.zip
|
||||
signers:
|
||||
|
||||
@ -6,7 +6,7 @@ The following is a list of assets used in the bitcoin source and their proper at
|
||||
### Info
|
||||
* Icon Pack: Typicons (http://typicons.com)
|
||||
* Designer: Stephen Hutchings (and more)
|
||||
* License: CC BY-SA
|
||||
* License: MIT
|
||||
* Site: [https://github.com/stephenhutchings/typicons.font](https://github.com/stephenhutchings/typicons.font)
|
||||
|
||||
### Assets Used
|
||||
@ -30,7 +30,7 @@ Jonas Schnelli
|
||||
### Info
|
||||
* Designer: Jonas Schnelli
|
||||
* Bitcoin Icon: (based on the original bitcoin logo from Bitboy)
|
||||
* Some icons are based on Stephan Hutchings Typicons (these are under CC BY-SA license)
|
||||
* Some icons are based on Stephan Hutchings Typicons
|
||||
* License: MIT
|
||||
|
||||
### Assets Used
|
||||
|
||||
@ -43,7 +43,8 @@ related to the DNS seed operation.
|
||||
|
||||
If these expectations cannot be satisfied the operator should
|
||||
discontinue providing services and contact the active Bitcoin
|
||||
Core development team as well as posting on bitcoin-development.
|
||||
Core development team as well as posting on
|
||||
[bitcoin-dev](https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev).
|
||||
|
||||
Behavior outside of these expectations may be reasonable in some
|
||||
situations but should be discussed in public in advance.
|
||||
|
||||
@ -44,6 +44,36 @@ supported and may break as soon as the older version attempts to reindex.
|
||||
This does not affect wallet forward or backward compatibility. There are no
|
||||
known problems when downgrading from 0.11.x to 0.10.x.
|
||||
|
||||
Important information
|
||||
======================
|
||||
|
||||
Transaction flooding
|
||||
---------------------
|
||||
|
||||
At the time of this release, the P2P network is being flooded with low-fee
|
||||
transactions. This causes a ballooning of the mempool size.
|
||||
|
||||
If this growth of the mempool causes problematic memory use on your node, it is
|
||||
possible to change a few configuration options to work around this. The growth
|
||||
of the mempool can be monitored with the RPC command `getmempoolinfo`.
|
||||
|
||||
One is to increase the minimum transaction relay fee `minrelaytxfee`, which
|
||||
defaults to 0.00001. This will cause transactions with fewer BTC/kB fee to be
|
||||
rejected, and thus fewer transactions entering the mempool.
|
||||
|
||||
The other is to restrict the relaying of free transactions with
|
||||
`limitfreerelay`. This option sets the number of kB/minute at which
|
||||
free transactions (with enough priority) will be accepted. It defaults to 15.
|
||||
Reducing this number reduces the speed at which the mempool can grow due
|
||||
to free transactions.
|
||||
|
||||
For example, add the following to `bitcoin.conf`:
|
||||
|
||||
minrelaytxfee=0.00005
|
||||
limitfreerelay=5
|
||||
|
||||
More robust solutions are being worked on for a follow-up release.
|
||||
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
@ -125,12 +155,23 @@ There have been many changes in this release to reduce the default memory usage
|
||||
of a node, among which:
|
||||
|
||||
- Accurate UTXO cache size accounting (#6102); this makes the option `-dbcache`
|
||||
precise, where is did a gross underestimation of memory usage before
|
||||
precise where this grossly underestimated memory usage before
|
||||
- Reduce size of per-peer data structure (#6064 and others); this increases the
|
||||
number of connections that can be supported with the same amount of memory
|
||||
- Reduce the number of threads (#5964, #5679); lowers the amount of (esp.
|
||||
virtual) memory needed
|
||||
|
||||
Fee estimation changes
|
||||
----------------------
|
||||
|
||||
This release improves the algorithm used for fee estimation. Previously, -1
|
||||
was returned when there was insufficient data to give an estimate. Now, -1
|
||||
will also be returned when there is no fee or priority high enough for the
|
||||
desired confirmation target. In those cases, it can help to ask for an estimate
|
||||
for a higher target number of blocks. It is not uncommon for there to be no
|
||||
fee or priority high enough to be reliably (85%) included in the next block and
|
||||
for this reason, the default for `-txconfirmtarget=n` has changed from 1 to 2.
|
||||
|
||||
Privacy: Disable wallet transaction broadcast
|
||||
----------------------------------------------
|
||||
|
||||
@ -151,6 +192,8 @@ transaction (re)broadcast:
|
||||
One such application is selective Tor usage, where the node runs on the normal
|
||||
internet but transactions are broadcasted over Tor.
|
||||
|
||||
For an example script see [bitcoin-submittx](https://github.com/laanwj/bitcoin-submittx).
|
||||
|
||||
Privacy: Stream isolation for Tor
|
||||
----------------------------------
|
||||
|
||||
@ -230,6 +273,7 @@ git merge commit are mentioned.
|
||||
- #5985 `37b4e42` Fix removing of orphan transactions
|
||||
- #6221 `6cb70ca` Prune: Support noncontiguous block files
|
||||
- #6256 `fce474c` Use best header chain timestamps to detect partitioning
|
||||
- #6233 `a587606` Advance pindexLastCommonBlock for blocks in chainActive
|
||||
|
||||
### P2P protocol and network code
|
||||
- #5507 `844ace9` Prevent DOS attacks on in-flight data structures
|
||||
@ -245,6 +289,7 @@ git merge commit are mentioned.
|
||||
- #5976 `9f7809f` Reduce download timeouts as blocks arrive
|
||||
- #6172 `b4bbad1` Ignore getheaders requests when not synced
|
||||
- #5875 `304892f` Be stricter in processing unrequested blocks
|
||||
- #6333 `41bbc85` Hardcoded seeds update June 2015
|
||||
|
||||
### Validation
|
||||
- #5143 `48e1765` Implement BIP62 rule 6
|
||||
@ -267,6 +312,10 @@ git merge commit are mentioned.
|
||||
- #6269 `95aca44` gitian: Use the new bitcoin-detached-sigs git repo for OSX signatures
|
||||
- #6285 `ef1d506` Fix scheduler build with some boost versions.
|
||||
- #6280 `25c2216` depends: fix Boost 1.55 build on GCC 5
|
||||
- #6303 `b711599` gitian: add a gitian-win-signer descriptor
|
||||
- #6246 `8ea6d37` Fix build on FreeBSD
|
||||
- #6282 `daf956b` fix crash on shutdown when e.g. changing -txindex and abort action
|
||||
- #6354 `bdf0d94` Gitian windows signing normalization
|
||||
|
||||
### Wallet
|
||||
- #2340 `811c71d` Discourage fee sniping with nLockTime
|
||||
@ -364,6 +413,7 @@ git merge commit are mentioned.
|
||||
- #6210 `dfdb6dd` build: disable optional use of gmp in internal secp256k1 build
|
||||
- #6264 `94cd705` Remove translation for -help-debug options
|
||||
- #6286 `3902c15` Remove berkeley-db4 workaround in MacOSX build docs
|
||||
- #6319 `3f8fcc9` doc: update mailing list address
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
@ -25,7 +25,7 @@ Release Process
|
||||
|
||||
###update gitian
|
||||
|
||||
In order to take advantage of the new caching features in gitian, be sure to update to a recent version (e9741525c or higher is recommended)
|
||||
In order to take advantage of the new caching features in gitian, be sure to update to a recent version (`e9741525c` or later is recommended)
|
||||
|
||||
###perform gitian builds
|
||||
|
||||
@ -41,6 +41,8 @@ Release Process
|
||||
###fetch and build inputs: (first time, or when dependency versions change)
|
||||
|
||||
mkdir -p inputs
|
||||
wget -P inputs https://bitcoincore.org/cfields/osslsigncode-Backports-to-1.7.1.patch
|
||||
wget -P inputs http://downloads.sourceforge.net/project/osslsigncode/osslsigncode/osslsigncode-1.7.1.tar.gz
|
||||
|
||||
Register and download the Apple SDK: (see OSX Readme for details)
|
||||
|
||||
@ -64,20 +66,21 @@ Release Process
|
||||
./bin/gsign --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||
mv build/out/bitcoin-*.tar.gz build/out/src/bitcoin-*.tar.gz ../
|
||||
./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
|
||||
./bin/gsign --signer $SIGNER --release ${VERSION}-win --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
|
||||
./bin/gsign --signer $SIGNER --release ${VERSION}-win-unsigned --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
|
||||
mv build/out/bitcoin-*-win-unsigned.tar.gz inputs/bitcoin-win-unsigned.tar.gz
|
||||
mv build/out/bitcoin-*.zip build/out/bitcoin-*.exe ../
|
||||
./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||
./bin/gsign --signer $SIGNER --release ${VERSION}-osx-unsigned --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||
mv build/out/bitcoin-*-unsigned.tar.gz inputs/bitcoin-osx-unsigned.tar.gz
|
||||
mv build/out/bitcoin-*-osx-unsigned.tar.gz inputs/bitcoin-osx-unsigned.tar.gz
|
||||
mv build/out/bitcoin-*.tar.gz build/out/bitcoin-*.dmg ../
|
||||
popd
|
||||
Build output expected:
|
||||
|
||||
1. source tarball (bitcoin-${VERSION}.tar.gz)
|
||||
2. linux 32-bit and 64-bit binaries dist tarballs (bitcoin-${VERSION}-linux[32|64].tar.gz)
|
||||
3. windows 32-bit and 64-bit installers and dist zips (bitcoin-${VERSION}-win[32|64]-setup.exe, bitcoin-${VERSION}-win[32|64].zip)
|
||||
4. OSX unsigned installer (bitcoin-${VERSION}-osx-unsigned.dmg)
|
||||
5. Gitian signatures (in gitian.sigs/${VERSION}-<linux|win|osx-unsigned>/(your gitian key)/
|
||||
2. linux 32-bit and 64-bit dist tarballs (bitcoin-${VERSION}-linux[32|64].tar.gz)
|
||||
3. windows 32-bit and 64-bit unsigned installers and dist zips (bitcoin-${VERSION}-win[32|64]-setup-unsigned.exe, bitcoin-${VERSION}-win[32|64].zip)
|
||||
4. OSX unsigned installer and dist tarball (bitcoin-${VERSION}-osx-unsigned.dmg, bitcoin-${VERSION}-osx64.tar.gz)
|
||||
5. Gitian signatures (in gitian.sigs/${VERSION}-<linux|{win,osx}-unsigned>/(your gitian key)/
|
||||
|
||||
###Next steps:
|
||||
|
||||
@ -85,15 +88,15 @@ Commit your signature to gitian.sigs:
|
||||
|
||||
pushd gitian.sigs
|
||||
git add ${VERSION}-linux/${SIGNER}
|
||||
git add ${VERSION}-win/${SIGNER}
|
||||
git add ${VERSION}-win-unsigned/${SIGNER}
|
||||
git add ${VERSION}-osx-unsigned/${SIGNER}
|
||||
git commit -a
|
||||
git push # Assuming you can push to the gitian.sigs tree
|
||||
popd
|
||||
|
||||
Wait for OSX detached signature:
|
||||
Once the OSX build has 3 matching signatures, it will be signed with the Apple App-Store key.
|
||||
A detached signature will then be committed to the bitcoin-detached-sigs repository, which can be combined with the unsigned app to create a signed binary.
|
||||
Wait for Windows/OSX detached signatures:
|
||||
Once the Windows/OSX builds each have 3 matching signatures, they will be signed with their respective release keys.
|
||||
Detached signatures will then be committed to the bitcoin-detached-sigs repository, which can be combined with the unsigned apps to create signed binaries.
|
||||
|
||||
Create the signed OSX binary:
|
||||
|
||||
@ -103,10 +106,20 @@ Commit your signature to gitian.sigs:
|
||||
mv build/out/bitcoin-osx-signed.dmg ../bitcoin-${VERSION}-osx.dmg
|
||||
popd
|
||||
|
||||
Commit your signature for the signed OSX binary:
|
||||
Create the signed Windows binaries:
|
||||
|
||||
pushd ./gitian-builder
|
||||
./bin/gbuild -i --commit signature=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml
|
||||
./bin/gsign --signer $SIGNER --release ${VERSION}-win-signed --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml
|
||||
mv build/out/bitcoin-*win64-setup.exe ../bitcoin-${VERSION}-win64-setup.exe
|
||||
mv build/out/bitcoin-*win32-setup.exe ../bitcoin-${VERSION}-win32-setup.exe
|
||||
popd
|
||||
|
||||
Commit your signature for the signed OSX/Windows binaries:
|
||||
|
||||
pushd gitian.sigs
|
||||
git add ${VERSION}-osx-signed/${SIGNER}
|
||||
git add ${VERSION}-win-signed/${SIGNER}
|
||||
git commit -a
|
||||
git push # Assuming you can push to the gitian.sigs tree
|
||||
popd
|
||||
@ -115,12 +128,6 @@ Commit your signature for the signed OSX binary:
|
||||
|
||||
### After 3 or more people have gitian-built and their results match:
|
||||
|
||||
- Perform code-signing.
|
||||
|
||||
- Code-sign Windows -setup.exe (in a Windows virtual machine using signtool)
|
||||
|
||||
Note: only Gavin has the code-signing keys currently.
|
||||
|
||||
- Create `SHA256SUMS.asc` for the builds, and GPG-sign it:
|
||||
```bash
|
||||
sha256sum * > SHA256SUMS
|
||||
|
||||
@ -15,6 +15,8 @@
|
||||
|
||||
#if defined(HAVE_ENDIAN_H)
|
||||
#include <endian.h>
|
||||
#elif defined(HAVE_SYS_ENDIAN_H)
|
||||
#include <sys/endian.h>
|
||||
#endif
|
||||
|
||||
#if defined(WORDS_BIGENDIAN)
|
||||
|
||||
@ -1420,13 +1420,13 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)
|
||||
#endif
|
||||
|
||||
StartNode(threadGroup, scheduler);
|
||||
#if 0 // Disable partition check for now, it triggers too often (issue #6251)
|
||||
|
||||
// Monitor the chain, and alert if we get blocks much quicker or slower than expected
|
||||
int64_t nPowTargetSpacing = Params().GetConsensus().nPowTargetSpacing;
|
||||
CScheduler::Function f = boost::bind(&PartitionCheck, &IsInitialBlockDownload,
|
||||
boost::ref(cs_main), boost::cref(pindexBestHeader), nPowTargetSpacing);
|
||||
scheduler.scheduleEvery(f, nPowTargetSpacing);
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_WALLET
|
||||
// Generate coins in the background
|
||||
if (pwalletMain)
|
||||
|
||||
@ -436,13 +436,14 @@ void FindNextBlocksToDownload(NodeId nodeid, unsigned int count, std::vector<CBl
|
||||
|
||||
// Iterate over those blocks in vToFetch (in forward direction), adding the ones that
|
||||
// are not yet downloaded and not in flight to vBlocks. In the mean time, update
|
||||
// pindexLastCommonBlock as long as all ancestors are already downloaded.
|
||||
// pindexLastCommonBlock as long as all ancestors are already downloaded, or if it's
|
||||
// already part of our chain (and therefore don't need it even if pruned).
|
||||
BOOST_FOREACH(CBlockIndex* pindex, vToFetch) {
|
||||
if (!pindex->IsValid(BLOCK_VALID_TREE)) {
|
||||
// We consider the chain that this peer is on invalid.
|
||||
return;
|
||||
}
|
||||
if (pindex->nStatus & BLOCK_HAVE_DATA) {
|
||||
if (pindex->nStatus & BLOCK_HAVE_DATA || chainActive.Contains(pindex)) {
|
||||
if (pindex->nChainTx)
|
||||
state->pindexLastCommonBlock = pindex;
|
||||
} else if (mapBlocksInFlight.count(pindex->GetBlockHash()) == 0) {
|
||||
|
||||
@ -43,7 +43,7 @@ void CDBEnv::EnvShutdown()
|
||||
if (ret != 0)
|
||||
LogPrintf("CDBEnv::EnvShutdown: Error %d shutting down database environment: %s\n", ret, DbEnv::strerror(ret));
|
||||
if (!fMockDb)
|
||||
DbEnv(0).remove(path.string().c_str(), 0);
|
||||
DbEnv(0).remove(strPath.c_str(), 0);
|
||||
}
|
||||
|
||||
void CDBEnv::Reset()
|
||||
@ -78,10 +78,10 @@ bool CDBEnv::Open(const boost::filesystem::path& pathIn)
|
||||
|
||||
boost::this_thread::interruption_point();
|
||||
|
||||
path = pathIn;
|
||||
boost::filesystem::path pathLogDir = path / "database";
|
||||
strPath = pathIn.string();
|
||||
boost::filesystem::path pathLogDir = pathIn / "database";
|
||||
TryCreateDirectory(pathLogDir);
|
||||
boost::filesystem::path pathErrorFile = path / "db.log";
|
||||
boost::filesystem::path pathErrorFile = pathIn / "db.log";
|
||||
LogPrintf("CDBEnv::Open: LogDir=%s ErrorFile=%s\n", pathLogDir.string(), pathErrorFile.string());
|
||||
|
||||
unsigned int nEnvFlags = 0;
|
||||
@ -98,7 +98,7 @@ bool CDBEnv::Open(const boost::filesystem::path& pathIn)
|
||||
dbenv->set_flags(DB_AUTO_COMMIT, 1);
|
||||
dbenv->set_flags(DB_TXN_WRITE_NOSYNC, 1);
|
||||
dbenv->log_set_config(DB_LOG_AUTO_REMOVE, 1);
|
||||
int ret = dbenv->open(path.string().c_str(),
|
||||
int ret = dbenv->open(strPath.c_str(),
|
||||
DB_CREATE |
|
||||
DB_INIT_LOCK |
|
||||
DB_INIT_LOG |
|
||||
@ -455,7 +455,7 @@ void CDBEnv::Flush(bool fShutdown)
|
||||
dbenv->log_archive(&listp, DB_ARCH_REMOVE);
|
||||
Close();
|
||||
if (!fMockDb)
|
||||
boost::filesystem::remove_all(path / "database");
|
||||
boost::filesystem::remove_all(boost::filesystem::path(strPath) / "database");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -27,7 +27,9 @@ class CDBEnv
|
||||
private:
|
||||
bool fDbEnvInit;
|
||||
bool fMockDb;
|
||||
boost::filesystem::path path;
|
||||
// Don't change into boost::filesystem::path, as that can result in
|
||||
// shutdown problems/crashes caused by a static initialized internal pointer.
|
||||
std::string strPath;
|
||||
|
||||
void EnvShutdown();
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user