Skip to content
Permalink
Browse files

Merge branch 'dev' into release

  • Loading branch information
gandrewstone committed Oct 10, 2019
2 parents 5a37149 + 729d1f4 commit e455c779eda9e5a9b8ff40a60a4fc7c0baca593a
Showing with 18,311 additions and 4,526 deletions.
  1. +4 −0 .gitignore
  2. +9 −8 .travis.yml
  3. +2 −2 .travis/install.sh
  4. +1 −1 .travis/script_a.sh
  5. +4 −2 .travis/script_b.sh
  6. +6 −4 README.md
  7. +0 −27 config/forks.csv
  8. +16 −3 configure.ac
  9. +15 −15 contrib/devtools/optimize-pngs.py
  10. +12 −12 contrib/devtools/remove-using-namespace-std.py
  11. +9 −10 contrib/devtools/trailing-comment.py
  12. +37 −12 contrib/electrs/build_electrs.py
  13. +2 −2 contrib/gitian-descriptors/gitian-arm.yml
  14. +2 −2 contrib/gitian-descriptors/gitian-linux.yml
  15. +2 −2 contrib/gitian-descriptors/gitian-osx.yml
  16. +2 −2 contrib/gitian-descriptors/gitian-win.yml
  17. +2 −2 contrib/qt_translations.py
  18. +20 −19 contrib/zmq/zmq_sub.py
  19. +2 −2 depends/packages/rust.mk
  20. +31 −19 doc/bu-electrum-integration.md
  21. +2 −2 doc/build-unix-rpm.md
  22. +1 −1 doc/dependencies.md
  23. +350 −0 doc/graphene-specification-v2.1.mediawiki
  24. +114 −0 doc/iblt.md
  25. +1 −1 doc/miner.md
  26. +360 −185 doc/release-notes-bucash.md
  27. +416 −0 doc/release-notes/release-notes-bucash1.7.0.md
  28. +36 −0 doc/unconfirmedTxChainLimits.md
  29. +52 −0 doc/variable-fast-filter.md
  30. +41 −0 patches/libsecp256k1/android.diff
  31. +19 −6 qa/pull-tester/rpc-tests.py
  32. +13 −0 qa/pull-tester/test_classes.py
  33. +14 −56 qa/rpc-tests/{bip68-sequence.py → bip68_sequence.py}
  34. +210 −0 qa/rpc-tests/data/rpc_getblockstats.json
  35. +27 −2 qa/rpc-tests/electrum_basics.py
  36. +96 −0 qa/rpc-tests/electrum_cashaccount.py
  37. +79 −0 qa/rpc-tests/electrum_shutdownonerror.py
  38. +4 −4 qa/rpc-tests/getlogcategories.py
  39. +19 −3 qa/rpc-tests/graphene_versions.py
  40. +39 −1 qa/rpc-tests/invalidateblock.py
  41. +20 −3 qa/rpc-tests/mempool_accept.py
  42. +170 −0 qa/rpc-tests/mempool_push.py
  43. +17 −0 qa/rpc-tests/mempool_reorg.py
  44. +335 −0 qa/rpc-tests/mempool_validate.py
  45. +67 −0 qa/rpc-tests/mempoolsync.py
  46. +262 −0 qa/rpc-tests/minimaldata-activation.py
  47. +181 −0 qa/rpc-tests/rpc_getblockstats.py
  48. +385 −0 qa/rpc-tests/schnorrmultisig-activation.py
  49. +0 −324 qa/rpc-tests/segwit-recovery-activation.py
  50. +299 −0 qa/rpc-tests/segwit_recovery.py
  51. +1 −1 qa/rpc-tests/smartfees.py
  52. +13 −3 qa/rpc-tests/test_framework/blocktools.py
  53. +196 −0 qa/rpc-tests/test_framework/cashaddr.py
  54. +38 −36 qa/rpc-tests/test_framework/cashlib/cashlib.py
  55. +59 −2 qa/rpc-tests/test_framework/electrumutil.py
  56. +23 −2 qa/rpc-tests/test_framework/key.py
  57. +150 −0 qa/rpc-tests/test_framework/mininode.py
  58. +16 −5 qa/rpc-tests/test_framework/nodemessages.py
  59. +8 −0 qa/rpc-tests/test_framework/script.py
  60. +22 −8 qa/rpc-tests/test_framework/test_framework.py
  61. +40 −0 qa/rpc-tests/test_framework/test_node.py
  62. +17 −9 qa/rpc-tests/test_framework/util.py
  63. +194 −0 qa/rpc-tests/txindex.py
  64. +3 −0 qa/rpc-tests/wallet-hd.py
  65. +1 −1 qa/rpc-tests/wallet.py
  66. +1 −1 qa/rpc-tests/zapwallettxes.py
  67. +2 −1 qa/rpc-tests/zmq_test.py
  68. BIN share/pixmaps/bitcoin128.png
  69. BIN share/pixmaps/bitcoin16.png
  70. BIN share/pixmaps/bitcoin24.png
  71. BIN share/pixmaps/bitcoin256.png
  72. BIN share/pixmaps/bitcoin32.png
  73. BIN share/pixmaps/bitcoin512.png
  74. BIN share/pixmaps/bitcoin64.png
  75. +15 −0 src/.formatted-files
  76. +46 −7 src/Makefile.am
  77. +3 −0 src/Makefile.qt.include
  78. +13 −1 src/Makefile.test.include
  79. +13 −13 src/addrman.h
  80. +10 −5 src/allowed_args.cpp
  81. +1 −6 src/bench/bench_bitcoin.cpp
  82. +2 −2 src/bench/rollingbloom.cpp
  83. +2 −8 src/bitcoin-cli.cpp
  84. +121 −35 src/bitcoin-miner.cpp
  85. +3 −8 src/bitcoin-tx.cpp
  86. +29 −0 src/bitmanip.h
  87. +35 −32 src/blockrelay/blockrelay_common.cpp
  88. +4 −3 src/blockrelay/blockrelay_common.h
  89. +8 −9 src/blockrelay/compactblock.cpp
  90. +23 −32 src/blockrelay/graphene.cpp
  91. +16 −7 src/blockrelay/graphene.h
  92. +77 −16 src/blockrelay/graphene_set.cpp
  93. +31 −4 src/blockrelay/graphene_set.h
  94. +510 −0 src/blockrelay/mempool_sync.cpp
  95. +201 −0 src/blockrelay/mempool_sync.h
  96. +14 −16 src/blockrelay/thinblock.cpp
  97. +33 −17 src/blockstorage/blockstorage.cpp
  98. +7 −0 src/blockstorage/blockstorage.h
  99. +3 −2 src/blockstorage/sequential_files.cpp
  100. +4 −0 src/bloom.cpp
  101. +2 −0 src/bloom.h
  102. +123 −0 src/cashlib/CMakeLists.txt
  103. +99 −0 src/cashlib/buildBoostAndroid.sh
  104. +588 −14 src/cashlib/cashlib.cpp
  105. +45 −0 src/cashlib/cashlib.h
  106. +166 −0 src/cashlib/libsecp256k1-config.h
  107. +4 −0 src/chain.h
  108. +14 −5 src/chainparams.cpp
  109. +42 −0 src/chainparams.h
  110. +34 −4 src/clientversion.cpp
  111. +4 −2 src/clientversion.h
  112. +38 −13 src/coins.cpp
  113. +12 −2 src/coins.h
  114. +21 −0 src/compat.h
  115. +11 −11 src/consensus/params.h
  116. +5 −0 src/consensus/tx_verify.cpp
  117. +2 −0 src/consensus/tx_verify.h
  118. +2 −0 src/consensus/validation.h
  119. +3 −0 src/dbwrapper.h
  120. +40 −0 src/deadlock-detection/locklocation.cpp
  121. +161 −0 src/deadlock-detection/locklocation.h
  122. +126 −0 src/deadlock-detection/lockorder.cpp
  123. +100 −0 src/deadlock-detection/lockorder.h
  124. +658 −0 src/deadlock-detection/threaddeadlock.cpp
  125. +129 −0 src/deadlock-detection/threaddeadlock.h
  126. +57 −4 src/electrum/electrs.cpp
  127. +1 −1 src/electrum/electrumrpcinfo.h
  128. +14 −1 src/electrum/electrumserver.cpp
  129. +3 −0 src/electrum/electrumserver.h
  130. +16 −0 src/fs.h
  131. +61 −15 src/globals.cpp
  132. +1 −0 src/hashwrapper.cpp
  133. +6 −6 src/httpserver.cpp
  134. +2 −2 src/httpserver.h
  135. +28 −22 src/iblt.cpp
  136. +88 −6 src/iblt.h
  137. +279 −0 src/index/txindex.cpp
  138. +81 −0 src/index/txindex.h
  139. +87 −39 src/init.cpp
  140. +124 −21 src/key.cpp
  141. +31 −10 src/key.h
  142. +1 −1 src/keystore.cpp
  143. +11 −29 src/main.cpp
  144. +3 −35 src/main.h
  145. +185 −12 src/miner.cpp
  146. +50 −1 src/miner.h
  147. +135 −56 src/net.cpp
  148. +69 −31 src/net.h
  149. +101 −39 src/net_processing.cpp
  150. +7 −2 src/net_processing.h
  151. +2 −0 src/netaddress.h
  152. +3 −3 src/nodestate.cpp
  153. +11 −8 src/nodestate.h
  154. +5 −5 src/parallel.cpp
  155. +4 −4 src/parallel.h
  156. +2 −2 src/policy/fees.cpp
  157. +14 −4 src/policy/policy.h
  158. +1 −15 src/pow.cpp
  159. +1 −0 src/pow.h
  160. +17 −0 src/primitives/block.cpp
  161. +4 −0 src/primitives/block.h
  162. +16 −0 src/primitives/transaction.h
  163. +6 −0 src/protocol.cpp
  164. +18 −0 src/protocol.h
  165. +18 −15 src/pubkey.cpp
  166. +22 −15 src/pubkey.h
  167. +23 −7 src/qt/clientmodel.cpp
  168. +3 −4 src/qt/clientmodel.h
  169. +1,145 −6 src/qt/forms/debugwindow.ui
  170. +3 −3 src/qt/forms/optionsdialog.ui
  171. +3 −0 src/qt/guiutil.cpp
  172. BIN src/qt/res/icons/bitcoin.png
  173. BIN src/qt/res/icons/chevron.png
  174. BIN src/qt/res/icons/hd_disabled.png
  175. BIN src/qt/res/icons/hd_enabled.png
  176. +61 −6 src/qt/rpcconsole.cpp
  177. +4 −1 src/qt/rpcconsole.h
  178. +401 −0 src/qt/transactiongraphwidget.cpp
  179. +78 −0 src/qt/transactiongraphwidget.h
  180. +1 −1 src/qt/walletmodel.cpp
  181. +1 −0 src/random.cpp
  182. +47 −11 src/requestManager.cpp
  183. +10 −2 src/requestManager.h
  184. +1 −1 src/respend/respenddetector.cpp
  185. +2 −2 src/respend/respendrelayer.cpp
  186. +4 −7 src/rest.cpp
  187. +442 −24 src/rpc/blockchain.cpp
  188. +23 −0 src/rpc/blockchain.h
  189. +56 −17 src/rpc/mining.cpp
  190. +244 −6 src/rpc/rawtransaction.cpp
  191. +106 −23 src/rpc/server.cpp
  192. +39 −0 src/script/bitfield.cpp
  193. +15 −0 src/script/bitfield.h
  194. +229 −163 src/script/interpreter.cpp
  195. +8 −6 src/script/interpreter.h
  196. +43 −0 src/script/script.cpp
  197. +62 −1 src/script/script.h
  198. +19 −1 src/script/script_error.cpp
  199. +20 −0 src/script/script_error.h
  200. +1 −1 src/script/sigcache.cpp
  201. +0 −1 src/script/sigcommon.cpp
  202. +2 −2 src/script/standard.cpp
  203. +2 −2 src/secp256k1/src/num.h
  204. +4 −0 src/secp256k1/src/util.h
  205. +25 −15 src/stat.h
  206. +4 −0 src/support/pagelocker.cpp
  207. +29 −2 src/support/pagelocker.h
  208. +27 −285 src/sync.cpp
  209. +127 −188 src/sync.h
  210. +7 −7 src/test/DoS_tests.cpp
  211. +49 −0 src/test/activation_tests.cpp
  212. +61 −0 src/test/bitmanip_tests.cpp
  213. +13 −1 src/test/checkblock_tests.cpp
  214. +5 −2 src/test/coins_tests.cpp
  215. +662 −734 src/test/data/script_tests.json
  216. +1 −1 src/test/data/tx_valid.json
  217. +18 −0 src/test/deadlock_tests/suite.h
  218. +83 −0 src/test/deadlock_tests/test1-4.cpp
  219. +62 −0 src/test/deadlock_tests/test10.cpp
  220. +70 −0 src/test/deadlock_tests/test5.cpp
  221. +86 −0 src/test/deadlock_tests/test6.cpp
  222. +110 −0 src/test/deadlock_tests/test7.cpp
  223. +109 −0 src/test/deadlock_tests/test8.cpp
  224. +52 −0 src/test/deadlock_tests/test9.cpp
  225. +33 −0 src/test/electrs_tests.cpp
  226. +56 −56 src/test/exploit_tests.cpp
  227. +74 −46 src/test/graphene_tests.cpp
  228. +226 −180 src/test/iblt_tests.cpp
  229. +48 −0 src/test/mempool_sync_tests.cpp
  230. +16 −30 src/test/mempool_tests.cpp
  231. +312 −5 src/test/miner_tests.cpp
  232. +83 −1 src/test/rpc_tests.cpp
  233. +11 −61 src/test/schnorr_tests.cpp
  234. +115 −0 src/test/script_bitfield_tests.cpp
  235. +699 −553 src/test/script_tests.cpp
  236. +2 −2 src/test/scriptflags.cpp
  237. +2 −2 src/test/sigcache_tests.cpp
  238. +0 −5 src/test/sigopcount_tests.cpp
  239. +7 −0 src/test/test_bitcoin.cpp
  240. +1 −1 src/test/transaction_tests.cpp
  241. +119 −34 src/test/txvalidationcache_tests.cpp
  242. +56 −14 src/test/util_tests.cpp
  243. +1 −1 src/torcontrol.cpp
  244. +397 −110 src/txadmission.cpp
  245. +7 −2 src/txadmission.h
  246. +229 −59 src/txdb.cpp
  247. +60 −20 src/txdb.h
  248. +318 −0 src/txdebugger.h
  249. +230 −76 src/txmempool.cpp
  250. +136 −19 src/txmempool.h
  251. +6 −6 src/txorphanpool.cpp
  252. +5 −5 src/txorphanpool.h
  253. +4 −1 src/uint256.h
  254. +114 −31 src/unlimited.cpp
  255. +11 −2 src/unlimited.h
  256. +13 −6 src/util.cpp
  257. +54 −39 src/util.h
  258. +16 −11 src/utiltime.cpp
  259. +19 −1 src/utiltime.h
  260. +8 −4 src/validation/forks.cpp
  261. +4 −2 src/validation/forks.h
  262. +255 −119 src/validation/validation.cpp
  263. +8 −1 src/validation/validation.h
  264. +2 −2 src/wallet/rpcwallet.cpp
  265. +12 −4 src/wallet/wallet.cpp
  266. +10 −0 src/xversionkeys.dat
  267. +1 −1 src/xversionmessage.cpp
@@ -126,3 +126,7 @@ libbitcoinconsensus.pc
# IDE files
*.sublime-project
*.sublime-workspace

# Visual Studio 2015/2017/2019 cache/options directory
.vs/
src/.vs/
@@ -27,6 +27,7 @@ env:
- PYTHON_DEBUG=1
- WINEDEBUG=fixme-all
- DOCKER_PACKAGES="build-essential libtool autotools-dev automake pkg-config bsdmainutils curl git ca-certificates ccache python3"
- DOCKER_PACKAGES_RPM="build-essential libtool autotools-dev automake pkg-config bsdmainutils curl git ca-certificates ccache"
- DIST=DEB
- CACHE_ERR_MSG="Error! Initial build successful, but not enough time remains to run later build stages and tests. Please manually re-run this job by using the travis restart button or asking a bitcoin maintainer to restart. The next run should not time out because the build cache has been saved."

@@ -78,7 +79,7 @@ matrix:
- DPKG_ADD_ARCH="i386"
- DEP_OPTS="NO_QT=1"
- PACKAGES="python3 nsis g++-mingw-w64-i686 wine32 wine-binfmt"
- RUN_TESTS=true GOAL="install"
- RUN_TESTS=false GOAL="install"
- BITCOIN_CONFIG="--enable-reduce-exports"
#Win64
- compiler: gcc
@@ -87,7 +88,7 @@ matrix:
- HOST=x86_64-w64-mingw32
- DEP_OPTS="NO_QT=1"
- PACKAGES="python3 nsis g++-mingw-w64-x86-64 wine64 wine-binfmt"
- RUN_TESTS=false GOAL="install"
- RUN_TESTS=true GOAL="install"
- BITCOIN_CONFIG="--enable-reduce-exports"
#Linux32-bit + dash
- compiler: gcc
@@ -98,13 +99,13 @@ matrix:
- DEP_OPTS="NO_QT=1" RUN_TESTS=true GOAL="install"
- BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++"
- USE_SHELL="/bin/dash"
#x86_64 Linux, No wallet (uses qt5 dev package instead of depends Qt to speed up build and avoid timeout)
#x86_64 Linux + deps as via system lib
- compiler: gcc
env:
- CXX=g++ CC=gcc
- HOST=x86_64-unknown-linux-gnu
- PACKAGES="python3 qtbase5-dev qttools5-dev-tools protobuf-compiler libdbus-1-dev libharfbuzz-dev libprotobuf-dev libdb5.3++-dev"
- DEP_OPTS="NO_WALLET=1 NO_QT=1 ALLOW_HOST_PACKAGES=1"
- PACKAGES="python3-zmq libzmq3-dev qttools5-dev-tools qttools5-dev libssl1.0-dev libevent-dev bsdmainutils libboost-system-dev libboost-program-options-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libprotobuf-dev protobuf-compiler libqrencode-dev"
- NODEPENDS=true
- RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-debug --with-incompatible-bdb --with-gui=qt5 --enable-glibc-back-compat --enable-reduce-exports"
#Cross-Mac
- compiler: gcc
@@ -118,10 +119,10 @@ matrix:
env:
- CXX=g++ CC=gcc
- HOST=x86_64-unknown-linux-gnu
- DOCKER_NAME_TAG=centos:latest
- DOCKER_NAME_TAG=centos:7.6.1810
- DIST=RPM
- DEP_OPTS="ALLOW_HOST_PACKAGES=1"
- PACKAGES="libtool libevent-devel autoconf automake openssl-devel python36u libdb4-devel libdb4-cxx-devel devtoolset-6-gcc* miniupnpc-devel zeromq-devel"
- PACKAGES="libtool libevent-devel autoconf automake openssl-devel python36u libdb4-devel libdb4-cxx-devel devtoolset-7-gcc* miniupnpc-devel zeromq-devel"
- RUN_TESTS=false GOAL="install"
- BITCOIN_CONFIG="--enable-zmq --with-gui=no --disable-bench"
- NODEPENDS=true
@@ -136,7 +137,7 @@ script:
- export CONTINUE=1
- if [ $SECONDS -gt 1980 ]; then export CONTINUE=0; fi # Likely the depends build took very long
- if [ $CONTINUE = "1" ]; then set -o errexit; source .travis/script_a.sh; else set +o errexit; echo "$CACHE_ERR_MSG"; false; fi
- if [ $SECONDS -gt 1980 ]; then export CONTINUE=0; fi # Likely the build took very long
- if [ $SECONDS -gt 2300 -a "$RUN_TESTS"="true" ]; then export CONTINUE=0; echo "$SECONDS"; fi # Likely the build took very long
- if [ $CONTINUE = "1" ]; then set -o errexit; source .travis/script_b.sh; else set +o errexit; echo "$CACHE_ERR_MSG"; false; fi

after_script:
@@ -33,9 +33,9 @@ if [ $DIST = "RPM" ]; then
travis_retry DOCKER_EXEC yum install -y boost166-devel
# this is temporary until the default compiler on centos/rhel supports c++14
travis_retry DOCKER_EXEC yum install -y centos-release-scl
travis_retry DOCKER_EXEC yum install -y $PACKAGES $DOCKER_PACKAGES
travis_retry DOCKER_EXEC yum install -y $PACKAGES $DOCKER_PACKAGES_RPM
# this is temporary until the default compiler on centos/rhel supports c++14
travis_retry DOCKER_EXEC scl enable devtoolset-6 bash
travis_retry DOCKER_EXEC scl enable devtoolset-7 bash
fi
if [ $RUN_FORMATTING_CHECK = "true" ]; then
curl --location $LINTER_DEB_URL/libllvm3.8_3.8.1-27ubuntu1_amd64.deb -o llvm-3.8.deb;
@@ -11,7 +11,7 @@ fi

if [ $DIST = "RPM" ]; then
# this is temporary until the default compiler on centos/rhel supports c++14
DOCKER_EXEC ln -fs /opt/rh/devtoolset-6/root/bin/g++ /usr/bin/g++
DOCKER_EXEC ln -fs /opt/rh/devtoolset-7/root/bin/g++ /usr/bin/g++
DOCKER_EXEC ln -fs /usr/bin/python3.6 /usr/bin/python3
DOCKER_EXEC ln -fs /usr/bin/python3 /usr/bin/python
fi
@@ -11,9 +11,11 @@ fi

cd "build" || (echo "could not enter distdir build"; exit 1)

if [ "$RUN_TESTS" = "true" ] && ! { [ "$HOST" = "i686-w64-mingw32" ] || [ "$HOST" = "x86_64-w64-mingw32" ]; }; then
if [ "$RUN_TESTS" = "true" ]; then
BEGIN_FOLD unit-tests
DOCKER_EXEC LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib make $MAKEJOBS check VERBOSE=1;
if [ $HOST != "x86_64-w64-mingw32" ]; then
DOCKER_EXEC LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib make $MAKEJOBS check VERBOSE=1;
fi
END_FOLD
fi

@@ -1,11 +1,11 @@
[Website](https://www.bitcoinunlimited.info) | [Download](https://www.bitcoinunlimited.info/download) | [Setup](README.md) | [Xthin](doc/bu-xthin.md) | [Xpedited](doc/bu-xpedited-forwarding.md) | [Miner](doc/miner.md)
[Website](https://www.bitcoinunlimited.info) | [Download](https://www.bitcoinunlimited.info/download) | [Setup](README.md) | [Miner](doc/miner.md) | [ElectronCash](doc/bu-electrum-integration.md) | [UnconfirmedChains](doc/unconfirmedTxChainLimits.md)

[![Build Status](https://travis-ci.org/BitcoinUnlimited/BitcoinUnlimited.svg?branch=dev)](https://travis-ci.org/BitcoinUnlimited/BitcoinUnlimited)

# What is Bitcoin?
# What is Bitcoin Cash?

Bitcoin is an experimental new digital currency that enables instant payments to
anyone, anywhere in the world. Bitcoin uses peer-to-peer technology to operate
Bitcoin Cash is an experimental new digital currency that enables instant payments to
anyone, anywhere in the world. Bitcoin Cash uses peer-to-peer technology to operate
with no central authority: managing transactions and issuing money are carried
out collectively by the network. Bitcoin Unlimited is the name of open source
software which enables the use of this currency.
@@ -45,6 +45,8 @@ They are not complete guides, but include notes on the necessary libraries, comp

# Running / setup

- [Running large unconfirmed transaction chain limits](doc/unconfirmedTxChainLimits.md)
- [Running an electron cash protocol server](doc/bu-electrum-integration.md)
- [Getting the most out of Xtreme thinblocks](bu-xthin.md)
- [Setting up an Xpedited Relay Network](bu-xpedited-forwarding.md)
- [Tor Support](doc/tor.md)
@@ -3,37 +3,10 @@
; MODIFY AT OWN RISK - EXERCISE EXTREME CARE
; Line format:
; chainname,bit,name,starttime,timeout,windowsize,threshold,minlockedblocks,minlockedtime,gbtforce
; main network, 95% @ 2016 blocks:
; start sep 1, 2018, end sep 1, 2019, 90 day window, 75% threshold, 0, 90 day locked time
main,1,block_max_size_128mb,1535760000,1567296000, 12960, 9720, 0, 7776000, true
main,2,opcodes_mul_shift_invert,1535760000,1567296000, 12960, 9720, 0, 7776000, true
main,3,unrestricted_script_instructions,1535760000,1567296000, 12960, 9720, 0, 7776000, true
main,4,op_checkdatasig,1535760000,1567296000, 12960, 9720, 0, 7776000, true
main,5,tx_min_size_100,1535760000,1567296000, 12960, 9720, 0, 7776000, true
main,6,enforce_CTOR,1535760000,1567296000, 12960, 9720, 0, 7776000, true
main,7,enforce_scriptsig_push_only,1535760000,1567296000, 12960, 9720, 0, 7776000, true
;
; test network (testnet), 75% @ 2016 blocks:
;
; start sep 1, 2018, end sep 1, 2019, 14 day window, 75% threshold, 0, 7 day locked time
test,1,block_max_size_128mb,1535760000,1567296000, 2016, 1512, 0, 604800, true
test,2,opcodes_mul_shift_invert,1535760000,1567296000, 2016, 1512, 0, 604800, true
test,3,unrestricted_script_instructions,1535760000,1567296000, 2016, 1512, 0, 604800, true
test,4,op_checkdatasig,1535760000,1567296000, 2016, 1512, 0, 604800, true
test,5,tx_min_size_100,1535760000,1567296000, 2016, 1512, 0, 604800, true
test,6,enforce_CTOR,1535760000,1567296000, 2016, 1512, 0, 604800, true
test,7,enforce_scriptsig_push_only,1535760000,1567296000, 2016, 1512, 0, 604800, true
;
test,28,testdummy,1199145601,1230767999,2016,1512,2016,0,true
; regtest chain 75% @ 144 blocks:
;
; start Aug 29, 2018, end sep 1, 2019, 100 block window, 75% threshold, 0, 60 second
regtest,1,block_max_size_128mb,1535566484,1567296000, 100, 75, 0, 60, true
regtest,2,opcodes_mul_shift_invert,1535566484,1567296000, 100, 75, 0, 60, true
regtest,3,unrestricted_script_instructions,1535566484,1567296000, 100, 75, 0, 60, true
regtest,4,op_checkdatasig,1535566484,1567296000, 100, 75, 0, 60, true
regtest,5,tx_min_size_100,1535566484,1567296000, 100, 75, 0, 60, true
regtest,6,enforce_CTOR,1535566484,1567296000, 100, 75, 0, 60, true
regtest,7,enforce_scriptsig_push_only,1535566484,1567296000, 100, 75, 0, 60, true
;
regtest,28,testdummy,0,999999999999,144,108,108,0,true
@@ -10,9 +10,9 @@ esac
dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 1)
define(_CLIENT_VERSION_MINOR, 6)
define(_CLIENT_VERSION_MINOR, 7)
define(_CLIENT_VERSION_REVISION, 0)
define(_CLIENT_VERSION_BUILD, 1) # version 99 here indicates an unreleased version
define(_CLIENT_VERSION_BUILD, 0) # version 99 here indicates an unreleased version
define(_CLIENT_VERSION_RC, 0)
define(_CLIENT_VERSION_IS_RELEASE, true)
define(_COPYRIGHT_YEAR, 2019)
@@ -186,6 +186,12 @@ AC_ARG_ENABLE([gprof],
[use_gprof=yes],
[use_gprof=no])

AC_ARG_ENABLE([javacashlib],
[AS_HELP_STRING([--enable-javacashlib],
[enable java bindings for libbitcoincash (default is no)])],
[use_javacashlib=yes],
[use_javacashlib=no])

AC_ARG_ENABLE([mutrace],
[AS_HELP_STRING([--enable-mutrace],
[enable mutex profiler build (default is no)])],
@@ -241,7 +247,7 @@ AC_LANG_PUSH([C++])
AX_CHECK_COMPILE_FLAG([-Werror],[CXXFLAG_WERROR="-Werror"],[CXXFLAG_WERROR=""])

if test "x$enable_debug" = xyes; then
CPPFLAGS="$CPPFLAGS -DDEBUG -DDEBUG_LOCKORDER -DRSM_DEBUG_ASSERTION"
CPPFLAGS="$CPPFLAGS -DDEBUG -DDEBUG_LOCKORDER -DRSM_DEBUG_ASSERTION -DDEBUG_ASSERTION -DDEBUG_PAUSE"

# Clear default -g -O2 flags
if test "x$CXXFLAGS_overridden" = xno; then
@@ -475,6 +481,10 @@ case $host in
if test "x$use_mutrace" = "xyes"; then
AC_DEFINE([ENABLE_MUTRACE],[1],[Define to 1 to enable mutex tracing])
fi
if test "x$use_javacashlib" = "xyes"; then
AC_DEFINE([ENABLE_JAVACASHLIB],[1],[Define to 1 to enable java binding in cashlib])
fi

;;
*dragonfly*)
TARGET_OS=dragonfly
@@ -643,6 +653,8 @@ AC_CHECK_DECLS([bswap_16, bswap_32, bswap_64],,,
#include <byteswap.h>
#endif])

AC_CHECK_DECLS([ __builtin_popcount])

dnl Check for MSG_NOSIGNAL
AC_MSG_CHECKING(for MSG_NOSIGNAL)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]],
@@ -1027,6 +1039,7 @@ AM_CONDITIONAL([USE_LCOV],[test x$use_lcov = xyes])
AM_CONDITIONAL([ENABLE_GPERF],[test x$use_gperf = xyes])
AM_CONDITIONAL([ENABLE_GPROF],[test x$use_gprof = xyes])
AM_CONDITIONAL([ENABLE_MUTRACE],[test x$use_mutrace = xyes])
AM_CONDITIONAL([ENABLE_JAVACASHLIB],[test x$use_javacashlib = xyes])
AM_CONDITIONAL([GLIBC_BACK_COMPAT],[test x$use_glibc_compat = xyes])
AM_CONDITIONAL([HARDEN],[test x$use_hardening = xyes])
AM_CONDITIONAL([ENABLE_HWCRC32],[test x$enable_hwcrc32 = xyes])
@@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3
'''
Run this script every time you change one of the png files. Using pngcrush, it will optimize the png files, remove various color profiles, remove ancillary chunks (alla) and text chunks (text).
#pngcrush -brute -ow -rem gAMA -rem cHRM -rem iCCP -rem sRGB -rem alla -rem text
@@ -24,7 +24,7 @@ def content_hash(filename):
pngcrush = 'pngcrush'
git = 'git'
folders = ["src/qt/res/movies", "src/qt/res/icons", "share/pixmaps"]
basePath = subprocess.check_output([git, 'rev-parse', '--show-toplevel']).rstrip('\n')
basePath = subprocess.check_output([git, 'rev-parse', '--show-toplevel']).decode().rstrip('\n')
totalSaveBytes = 0
noHashChange = True

@@ -38,38 +38,38 @@ def content_hash(filename):
file_path = os.path.join(absFolder, file)
fileMetaMap = {'file' : file, 'osize': os.path.getsize(file_path), 'sha256Old' : file_hash(file_path)};
fileMetaMap['contentHashPre'] = content_hash(file_path)

pngCrushOutput = ""
try:
pngCrushOutput = subprocess.check_output(
[pngcrush, "-brute", "-ow", "-rem", "gAMA", "-rem", "cHRM", "-rem", "iCCP", "-rem", "sRGB", "-rem", "alla", "-rem", "text", file_path],
stderr=subprocess.STDOUT).rstrip('\n')
except:
print "pngcrush is not installed, aborting..."
stderr=subprocess.STDOUT).decode().rstrip('\n')
except Exception as e:
print("pngcrush is not installed (error: %s), aborting..." % str(e))
sys.exit(0)

#verify
if "Not a PNG file" in subprocess.check_output([pngcrush, "-n", "-v", file_path], stderr=subprocess.STDOUT):
print "PNG file "+file+" is corrupted after crushing, check out pngcursh version"
if "Not a PNG file" in subprocess.check_output([pngcrush, "-n", "-v", file_path], stderr=subprocess.STDOUT).decode():
print("PNG file "+file+" is corrupted after crushing, check out pngcursh version")
sys.exit(1)

fileMetaMap['sha256New'] = file_hash(file_path)
fileMetaMap['contentHashPost'] = content_hash(file_path)

if fileMetaMap['contentHashPre'] != fileMetaMap['contentHashPost']:
print "Image contents of PNG file "+file+" before and after crushing don't match"
print("Image contents of PNG file "+file+" before and after crushing don't match")
sys.exit(1)

fileMetaMap['psize'] = os.path.getsize(file_path)
outputArray.append(fileMetaMap)
print("done\n"),

print "summary:\n+++++++++++++++++"
print("summary:\n+++++++++++++++++")
for fileDict in outputArray:
oldHash = fileDict['sha256Old']
newHash = fileDict['sha256New']
totalSaveBytes += fileDict['osize'] - fileDict['psize']
noHashChange = noHashChange and (oldHash == newHash)
print fileDict['file']+"\n size diff from: "+str(fileDict['osize'])+" to: "+str(fileDict['psize'])+"\n old sha256: "+oldHash+"\n new sha256: "+newHash+"\n"
print "completed. Checksum stable: "+str(noHashChange)+". Total reduction: "+str(totalSaveBytes)+" bytes"
print(fileDict['file']+"\n size diff from: "+str(fileDict['osize'])+" to: "+str(fileDict['psize'])+"\n old sha256: "+oldHash+"\n new sha256: "+newHash+"\n")

print("completed. Checksum stable: "+str(noHashChange)+". Total reduction: "+str(totalSaveBytes)+" bytes")
@@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3
'''
This tool eliminates the need for "using namespace std" from c++ files by
prepending "std::" in front of all standard library types
@@ -127,17 +127,17 @@ def _replacer(match):
if match.group(3) is not None:
comments.append(match.group(3))
return commentTemp # return the temp comment string

# if the 2nd group (capturing quoted string) is not None,
# it means we have captured a quoted string.
elif match.group(2) is not None:
strings.append(match.group(2))
return stringTemp # return the temp string string

else: # otherwise, we will return the 1st group
includes.append(match.group(1))
return includeTemp # return the temp include string

return regex.sub(_replacer, string)

# Replaces comments one-at-a-time in the order we stored them during initial replacement
@@ -165,29 +165,29 @@ def callback_includes(match):
callback_strings.v=iter(strings)
comments[:] = []
callback_comments.v=iter(comments)

# Read in file content as one string
file = open(filename, mode='r').read()

# Remove comments, strings, and includes as we don't want to
# replace std:: types within these areas
noComment = remove_includes_comments_and_strings(file)

# Before we continue with replacement, and while all the comments and
# strings are removed, check to make sure the `using namespace std` line
# is actually in this code file. If it is not then changing the
# keywords to std:: is changing the definition of working non-std
# references, which isn't what we want.
if re.search(usingNamespace, noComment) is None:
print 'SKIPPED: %s' % filename
print('SKIPPED: %s' % filename)
continue

# Now perform std:: replacement
replaced = re.sub(keywords, replacement, noComment)

# Also remove the `using namespace std;` line
replacedNamespace = re.sub(usingNamespace, "", replaced)

# Now we need to restore the comments and strings
reComment = re.sub(commentTemp, callback_comments, replacedNamespace)
reString = re.sub(stringTemp, callback_strings, reComment)
@@ -197,4 +197,4 @@ def callback_includes(match):
with open(filename, mode='w') as f:
f.seek(0)
f.write(reInclude)
print 'COMPLETE: %s' % filename
print('COMPLETE: %s' % filename)

0 comments on commit e455c77

Please sign in to comment.
You can’t perform that action at this time.