[Dev] Documenting Feathercoin Specific Software settings - Part 20
-
Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*
Fixed #159 - Creates Feathercoin Unit Test Files :: commit
unit tests compile creates test_bitcoin files #159
https://github.com/FeatherCoin/Feathercoin/commit/c2e3140c274037ab50ae1c498208ab4b7e64ab3e
src/test/test_feathercoin.cpp
+// Copyright (c) 2011-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#define BOOST_TEST_MODULE Bitcoin Test Suite + + + +#include "main.h" +#include "txdb.h" +#include "ui_interface.h" +#include "util.h" +#ifdef ENABLE_WALLET +#include "db.h" +#include "wallet.h" +#endif + +#include <boost/filesystem.hpp> +#include <boost/test/unit_test.hpp> + + +CWallet* pwalletMain; + +extern bool fPrintToConsole; +extern void noui_connect(); + +struct TestingSetup { + CCoinsViewDB *pcoinsdbview; + boost::filesystem::path pathTemp; + boost::thread_group threadGroup; + + TestingSetup() { + fPrintToDebugLog = false; // don't want to write to debug.log file + noui_connect(); +#ifdef ENABLE_WALLET + bitdb.MakeMock(); +#endif + pathTemp = GetTempPath() / strprintf("test_bitcoin_%lu_%i", (unsigned long)GetTime(), (int)(GetRand(100000))); + boost::filesystem::create_directories(pathTemp); + mapArgs["-datadir"] = pathTemp.string(); + pblocktree = new CBlockTreeDB(1 << 20, true); + pcoinsdbview = new CCoinsViewDB(1 << 23, true); + pcoinsTip = new CCoinsViewCache(*pcoinsdbview); + InitBlockIndex(); +#ifdef ENABLE_WALLET + bool fFirstRun; + pwalletMain = new CWallet("wallet.dat"); + pwalletMain->LoadWallet(fFirstRun); + RegisterWallet(pwalletMain); +#endif + nScriptCheckThreads = 3; + for (int i=0; i < nScriptCheckThreads-1; i++) + threadGroup.create_thread(&ThreadScriptCheck); + RegisterNodeSignals(GetNodeSignals()); + } + ~TestingSetup() + { + threadGroup.interrupt_all(); + threadGroup.join_all(); + UnregisterNodeSignals(GetNodeSignals()); +#ifdef ENABLE_WALLET + delete pwalletMain; + pwalletMain = NULL; +#endif + delete pcoinsTip; + delete pcoinsdbview; + delete pblocktree; +#ifdef ENABLE_WALLET + bitdb.Flush(true); +#endif + boost::filesystem::remove_all(pathTemp); + } +}; + +BOOST_GLOBAL_FIXTURE(TestingSetup); + +void Shutdown(void* parg) +{ + exit(0); +} + +void StartShutdown() +{ + exit(0); +} + +bool ShutdownRequested() +{ + return false; +} +
New Feathercoin Test cpp file
-
Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*
Creates Feathercoin-qt Unit Test Files :: commit
https://github.com/FeatherCoin/Feathercoin/commit/039a35fda83c47b03885092bb954170f7a6447af
src/qt/test/Makefile.am
-bin_PROGRAMS = test_bitcoin-qt +bin_PROGRAMS = test_feathercoin-qt -TESTS = test_bitcoin-qt +TESTS = test_feathercoin-qt
Code replaced
+test_feathercoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(QT_INCLUDES) $(QT_TEST_INCLUDES) +test_feathercoin_qt_SOURCES = \ +test_feathercoin_qt_SOURCES += \ +nodist_test_feathercoin_qt_SOURCES = $(TEST_QT_MOC_CPP) +test_feathercoin_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_SERVER) +test_feathercoin_qt_LDADD += $(LIBBITCOIN_WALLET) +test_feathercoin_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBLEVELDB) \ +test_feathercoin_qt_LDFLAGS = $(AM_LDFLAGS) $(QT_LDFLAGS)
Code replaced Feathercoin interface name change
-
Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*
Fixed test_feathercoin build error :: commit
https://github.com/FeatherCoin/Feathercoin/commit/301894eb369591ad7338f081b712de640d3e3aa7
src/qt/test/Makefile.am
- LIBS="$LIBS $BOOST_UNIT_TEST_FRAMEWORK_LIB" + LIBS="$LIBS $BOOST_LDFLAGS $BOOST_UNIT_TEST_FRAMEWORK_LIB"
Code replaced
-
Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*
Updated README :: commit
https://github.com/FeatherCoin/Feathercoin/commit/bdd22e917baeb5f6f3e6e533a8f21bd3ea0bf356
src/test/README
+unit testing framework, and since feathercoin already uses boost, it makes +The build system is setup to compile an executable called "test_feathercoin" +test_feathercoin.cpp, which simply includes other files that contain the
Code replaced. Name change to Feathercoin
Updated README :: commit
https://github.com/FeatherCoin/Feathercoin/commit/4295097fc4a6eee56ce501471bd06a94541b01b2
src/test/README
+unit testing framework, and since feathercoin already uses boost, it makes +test_feathercoin.cpp, which simply includes other files that contain the
Code replaced. Name change to Feathercoin
-
Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*
Updating from upstream :: commit
https://github.com/FeatherCoin/Feathercoin/commit/032be41eb396751d069abf6951329d84eda90fc0
src/test/README
+ LIBS="$LIBS $BOOST_LDFLAGS $BOOST_UNIT_TEST_FRAMEWORK_LIB"
Code replaced
src/qt/test/Makefile.am
+bin_PROGRAMS = test_feathercoin-qt +TESTS = test_feathercoin-qt
Code replaced name to Feathercoin
+test_feathercoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(QT_INCLUDES) $(QT_TEST_INCLUDES) +test_feathercoin_qt_SOURCES = \ +test_feathercoin_qt_SOURCES += \ +nodist_test_feathercoin_qt_SOURCES = $(TEST_QT_MOC_CPP) +test_feathercoin_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_SERVER) +test_feathercoin_qt_LDADD += $(LIBBITCOIN_WALLET) +test_feathercoin_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBLEVELDB) \ +test_feathercoin_qt_LDFLAGS = $(AM_LDFLAGS) $(QT_LDFLAGS)
Code replaced
src/test/Makefile.am
+bin_PROGRAMS = test_feathercoin +TESTS = test_feathercoin +# test_feathercoin binary # +test_feathercoin_CPPFLAGS = $(AM_CPPFLAGS) $(TESTDEFS) +test_feathercoin_LDADD = $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBLEVELDB) $(LIBMEMENV) \ +test_feathercoin_LDADD += $(LIBBITCOIN_WALLET) +test_feathercoin_LDADD += $(BDB_LIBS) +test_feathercoin_SOURCES = \ + test_feathercoin.cpp \ +test_feathercoin_SOURCES += \ +nodist_test_feathercoin_SOURCES = $(BUILT_SOURCES)
Code replaced
** src/test/README**
+unit testing framework, and since feathercoin already uses boost, it makes +The build system is setup to compile an executable called "test_feathercoin" +test_feathercoin.cpp, which simply includes other files that contain the
Code replaced
src/test/README.md
+unit testing framework, and since feathercoin already uses boost, it makes +The build system is setup to compile an executable called "test_feathercoin" +test_feathercoin.cpp, which simply includes other files that contain the
Code replaced
src/test/test_feathercoin.cpp
New file name change
+// Copyright (c) 2011-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#define BOOST_TEST_MODULE Bitcoin Test Suite + + + +#include "main.h" +#include "txdb.h" +#include "ui_interface.h" +#include "util.h" +#ifdef ENABLE_WALLET +#include "db.h" +#include "wallet.h" +#endif + +#include <boost/filesystem.hpp> +#include <boost/test/unit_test.hpp> + + +CWallet* pwalletMain; + +extern bool fPrintToConsole; +extern void noui_connect(); + +struct TestingSetup { + CCoinsViewDB *pcoinsdbview; + boost::filesystem::path pathTemp; + boost::thread_group threadGroup; + + TestingSetup() { + fPrintToDebugLog = false; // don't want to write to debug.log file + noui_connect(); +#ifdef ENABLE_WALLET + bitdb.MakeMock(); +#endif + pathTemp = GetTempPath() / strprintf("test_bitcoin_%lu_%i", (unsigned long)GetTime(), (int)(GetRand(100000))); + boost::filesystem::create_directories(pathTemp); + mapArgs["-datadir"] = pathTemp.string(); + pblocktree = new CBlockTreeDB(1 << 20, true); + pcoinsdbview = new CCoinsViewDB(1 << 23, true); + pcoinsTip = new CCoinsViewCache(*pcoinsdbview); + InitBlockIndex(); +#ifdef ENABLE_WALLET + bool fFirstRun; + pwalletMain = new CWallet("wallet.dat"); + pwalletMain->LoadWallet(fFirstRun); + RegisterWallet(pwalletMain); +#endif + nScriptCheckThreads = 3; + for (int i=0; i < nScriptCheckThreads-1; i++) + threadGroup.create_thread(&ThreadScriptCheck); + RegisterNodeSignals(GetNodeSignals()); + } + ~TestingSetup() + { + threadGroup.interrupt_all(); + threadGroup.join_all(); + UnregisterNodeSignals(GetNodeSignals()); +#ifdef ENABLE_WALLET + delete pwalletMain; + pwalletMain = NULL; +#endif + delete pcoinsTip; + delete pcoinsdbview; + delete pblocktree; +#ifdef ENABLE_WALLET + bitdb.Flush(true); +#endif + boost::filesystem::remove_all(pathTemp); + } +}; + +BOOST_GLOBAL_FIXTURE(TestingSetup); + +void Shutdown(void* parg) +{ + exit(0); +} + +void StartShutdown() +{ + exit(0); +} + +bool ShutdownRequested() +{ + return false; +} +
New file for Feathercoin Test
-
Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*
Fixed issue #160 :: commit
This was seen on the Windows x64 version. I’m currently unable to check MAC or Linux GUI.
On the MultiSig page, I think the ‘b’ in ‘Total balance’ should be a capital ‘B’. Also there should be a space after the ‘:’ and before the ‘0.00’. Same for Addresses:0.
It should read “Total Balance: 0.00 FTC Addresses: 0”
https://github.com/FeatherCoin/Feathercoin/commit/3d35337dc5d047853890773c15e69a1c752097bc
src/qt/forms/multisigdialog.ui
- <string>Total balance:</string> + <string>Total Balance:</string>
Code replaced … review fix made in translations?
small adjustments :: commit
https://github.com/FeatherCoin/Feathercoin/commit/b367fd1431e9c01172d4a44b19086526427e7913
src/qt/forms/multisigdialog.ui
- <string>Total Balance:</string> + <string>Total Balance: </string> - <item> + <item alignment="Qt::AlignHCenter|Qt::AlignVCenter">
Code replaced
+ <property name="margin"> + <number>0</number> + </property> + <property name="indent"> + <number>-1</number> + </property>
Code added
+ <item alignment="Qt::AlignVCenter"> + <string> Addresses: </string> + </property> + <property name="indent"> + <number>-1</number> + <item alignment="Qt::AlignVCenter"> + <property name="indent"> + <number>-1</number> + </property>
Code updated replaced
-
Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*
Added test binraries to ignore file :: commit
https://github.com/FeatherCoin/Feathercoin/commit/37b2b3cba72fe5e5dd919c3b5b1aee759873eb12
.gitignore
+src/qt/test/test_feathercoin-qt +src/test/test_feathercoin
Code added
-
Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*
Added new hardcoded checkpoint :: commit
https://github.com/FeatherCoin/Feathercoin/commit/bc48012456bc95275747e4561ba9b5a50a2f24a9
src/checkpoints.cpp
+ ( 1776411, uint256("0x4f6de194bd2f4580e2ac9337289c7cca348d3f35c9079af2760b288315b82feb"))
Code added
- 1457105972, // * UNIX timestamp of last checkpoint block - 3361886, // * total number of transactions between genesis and last checkpoint - // (the tx=... number in the SetBestChain debug.log lines) - 2150.0 // * estimated number of transactions per day after checkpoint + 1498636263, // * UNIX timestamp of last checkpoint block + 3660284, // * total number of transactions between genesis and last checkpoint + // (the tx=... number in the SetBestChain or Updatetip debug.log lines) + 1500.0 // * estimated number of transactions per day after checkpoint
Code replaced
-
Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*
Added release notes for 0.9.6.1 :: commit
https://github.com/FeatherCoin/Feathercoin/commit/b42a02cac3db219d97e0f2c427023b472787c97a
doc/release-notes/release-notes-0.9.6.1.md
+Feathercoin Core version 0.9.0 is now available from: + + https://feathercoin.org/bin/0.9.0/ + +This is a new minor version release, bringing bug fixes. + +Please report bugs using the issue tracker at github: + + https://github.com/FeatherCoin/Feathercoin/issues + +How to Upgrade +-------------- + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes for older versions), uninstall all +earlier versions of Feathercoin, then run the installer (on Windows/Linux/Mac) or just copy +over /Applications/Feathercoin-Qt (on Mac) or feathercoind/feathercoin-qt (on Linux). + +If you are upgrading from version 0.8.x or earlier, the first time you run +0.9.6.1 your blockchain files will be re-indexed, which will take anywhere from +30 minutes to several hours, depending on the speed of your machine. + +On Windows, do not forget to uninstall all earlier versions of the Feathercoin +client first, especially if you are switching to the 64-bit version. + +Windows +------- +0.9.6.1 Windows binaries are not code-signed; use PGP +and the SHA256SUMS.asc file to make sure your binaries are correct. + + +OSX 10.5 / 32-bit no longer supported +------------------------------------- + +0.9.x drops support for older Macs. The minimum requirements are now: +* A 64-bit-capable CPU (see http://support.apple.com/kb/ht3696); +* Mac OS 10.6 or later (see https://support.apple.com/kb/ht1633). + +Downgrading warnings +-------------------- + +The 'chainstate' for this release is not always compatible with previous +releases, so if you run 0.9 and then decide to switch back to a +0.8.x release you might get a blockchain validation error when starting the +old release (due to 'pruned outputs' being omitted from the index of +unspent transaction outputs). + +Running the old release with the -reindex option will rebuild the chainstate +data structures and correct the problem. + +Also, the first time you run a 0.8.x release on a 0.9 wallet it will rescan +the blockchain for missing spent coins, which will take a long time (tens +of minutes on a typical machine). + + + + +Autotools build system +----------------------- + +For 0.9.0 we switched to an autotools-based build system instead of individual +(q)makefiles. + +Using the standard "./autogen.sh; ./configure; make" to build Feathercoin-Qt and +feathercoind makes it easier for experienced open source developers to contribute +to the project. + +Be sure to check doc/build-*.md for your platform before building from source. + +Feathercoin-cli +------------- + +Another change in the 0.9 release is moving away from the feathercoind executable +functioning both as a server and as a RPC client. The RPC client functionality +("tell the running feathercoin daemon to do THIS") was split into a separate +executable, 'feathercoin-cli'. The RPC client code will eventually be removed from +feathercoind, but will be kept for backwards compatibility for a release or two. + +Bux Fixes: +---------- + +- When a 0.11.x node connects, the connection will be with 'invalid pchMessageStart in 0.9.6 +and earlier versions. (Github Issue #171) +This has been fixed by implementing pchMessageStartNew constant to allow future 0.11.x nodes to connect. + +- The configuration parameter 'enfoce checkpoint was not handled correctly in 0.9.6, when set. +(Github issues #169,#170) + +- A formating error on the Multisig GUI page was fixed (Github issue #160) + +- Log messages get id numbers (Github issue #157) + +- Test section was updated ( Github issues #120 - #127) +
Notes added
-
Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*
Changed required boost version from 1.58 to 1.54 Debian only has 1.55 :: commit
https://github.com/FeatherCoin/Feathercoin/commit/414e8733cb0428b69971538277e45025d8c2af87
m4/ax_boost_base.m4
- boost_lib_version_req=ifelse([$1], ,1.58.0,$1) + boost_lib_version_req=ifelse([$1], ,1.54.0,$1)
Code replaced
-
Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*
Moved m4 directory to src/m4 for travis compatibility :: commit
https://github.com/FeatherCoin/Feathercoin/commit/4805854a469a89522ae34ed66d760f8cced0766b
aclocal.m4
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd`
Code replaced
m4/ax_boost_base.m4
File moved / deleted ~300 lines
m4/bitcoin_subdir_to_include.m4
File moved /deleted ~14 lines
src/m4/ax_boost_base.m4
- boost_lib_version_req=ifelse([$1], ,1.58.0,$1) + boost_lib_version_req=ifelse([$1], ,1.54.0,$1)
Code replaced