diff options
-rw-r--r-- | depends/packages/native_biplist.mk | 5 | ||||
-rw-r--r-- | depends/patches/native_biplist/sorted_list.patch | 29 | ||||
-rw-r--r-- | doc/release-notes.md | 5 | ||||
-rw-r--r-- | src/wallet/wallet.cpp | 6 |
4 files changed, 39 insertions, 6 deletions
diff --git a/depends/packages/native_biplist.mk b/depends/packages/native_biplist.mk index eb8672d556..3c6e8900f6 100644 --- a/depends/packages/native_biplist.mk +++ b/depends/packages/native_biplist.mk @@ -4,6 +4,11 @@ $(package)_download_path=https://pypi.python.org/packages/source/b/biplist $(package)_file_name=biplist-$($(package)_version).tar.gz $(package)_sha256_hash=b57cadfd26e4754efdf89e9e37de87885f9b5c847b2615688ca04adfaf6ca604 $(package)_install_libdir=$(build_prefix)/lib/python/dist-packages +$(package)_patches=sorted_list.patch + +define $(package)_preprocess_cmds + patch -p1 < $($(package)_patch_dir)/sorted_list.patch +endef define $(package)_build_cmds python setup.py build diff --git a/depends/patches/native_biplist/sorted_list.patch b/depends/patches/native_biplist/sorted_list.patch new file mode 100644 index 0000000000..89abdb1b71 --- /dev/null +++ b/depends/patches/native_biplist/sorted_list.patch @@ -0,0 +1,29 @@ +--- a/biplist/__init__.py 2014-10-26 19:03:11.000000000 +0000 ++++ b/biplist/__init__.py 2016-07-19 19:30:17.663521999 +0000 +@@ -541,7 +541,7 @@ + return HashableWrapper(n) + elif isinstance(root, dict): + n = {} +- for key, value in iteritems(root): ++ for key, value in sorted(iteritems(root)): + n[self.wrapRoot(key)] = self.wrapRoot(value) + return HashableWrapper(n) + elif isinstance(root, list): +@@ -616,7 +616,7 @@ + elif isinstance(obj, dict): + size = proc_size(len(obj)) + self.incrementByteCount('dictBytes', incr=1+size) +- for key, value in iteritems(obj): ++ for key, value in sorted(iteritems(obj)): + check_key(key) + self.computeOffsets(key, asReference=True) + self.computeOffsets(value, asReference=True) +@@ -714,7 +714,7 @@ + keys = [] + values = [] + objectsToWrite = [] +- for key, value in iteritems(obj): ++ for key, value in sorted(iteritems(obj)): + keys.append(key) + values.append(value) + for key in keys: diff --git a/doc/release-notes.md b/doc/release-notes.md index b251e8355a..bb9118762b 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -122,7 +122,7 @@ Support for block relay using the Compact Blocks protocol has been implemented in PR 8068. The primary goal is reducing the bandwidth spikes at relay time, though in many -cases it also reduces propagation relay. It is automatically enabled between +cases it also reduces propagation delay. It is automatically enabled between compatible peers. [BIP 152](https://github.com/bitcoin/bips/blob/master/bip-0152.mediawiki) @@ -232,7 +232,7 @@ Low-level P2P changes instantly, while queueing up the rest and sending them out in batch. As this resulted in chains of dependent transactions being reordered, it systematically hurt transaction relay. The relay code was redesigned in PRs - #7840 and #8082, and now always batches transactions announcements while also + \#7840 and #8082, and now always batches transactions announcements while also sorting them according to dependency order. This significantly reduces orphan transactions. To compensate for the removal of instant relay, the frequency of batch sending was doubled for outgoing peers. @@ -727,7 +727,6 @@ Thanks to everyone who directly contributed to this release: - James O'Beirne - Jarret Dyrbye - Jeremy Rand -- jl2012 - jloughry - jmacwhyte - Joao Fonseca diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index a76085de30..5908dfeace 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -1170,6 +1170,9 @@ bool CWallet::SetHDMasterKey(const CKey& key) { LOCK(cs_wallet); + // ensure this wallet.dat can only be opened by clients supporting HD + SetMinVersion(FEATURE_HD); + // store the key as normal "key"/"ckey" object // in the database // key metadata is not required @@ -3299,9 +3302,6 @@ bool CWallet::InitLoadWallet() key.MakeNewKey(true); if (!walletInstance->SetHDMasterKey(key)) throw std::runtime_error("CWallet::GenerateNewKey(): Storing master key failed"); - - // ensure this wallet.dat can only be opened by clients supporting HD - walletInstance->SetMinVersion(FEATURE_HD); } CPubKey newDefaultKey; if (walletInstance->GetKeyFromPool(newDefaultKey)) { |