diff --git a/configure.ac b/configure.ac index 5f62a6e5e..3156d09e7 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 3) define(_CLIENT_VERSION_MINOR, 6) -define(_CLIENT_VERSION_REVISION, 1) +define(_CLIENT_VERSION_REVISION, 2) define(_CLIENT_VERSION_BUILD, 50) define(_ZC_BUILD_VAL, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, m4_incr(_CLIENT_VERSION_BUILD), m4_eval(_CLIENT_VERSION_BUILD < 50), 1, m4_eval(_CLIENT_VERSION_BUILD - 24), m4_eval(_CLIENT_VERSION_BUILD == 50), 1, , m4_eval(_CLIENT_VERSION_BUILD - 50))) define(_CLIENT_VERSION_SUFFIX, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, _CLIENT_VERSION_REVISION-beta$1, m4_eval(_CLIENT_VERSION_BUILD < 50), 1, _CLIENT_VERSION_REVISION-rc$1, m4_eval(_CLIENT_VERSION_BUILD == 50), 1, _CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION-$1))) diff --git a/contrib/asmap/README.md b/contrib/asmap/README.md new file mode 100644 index 000000000..c23d8da74 --- /dev/null +++ b/contrib/asmap/README.md @@ -0,0 +1,5 @@ +# asmap stuff + +Files relating to -asmap=... feature, to use ASNs + +Originally from https://github.com/sipa/asmap/blob/master/demo.map diff --git a/contrib/asmap/asmap.dat b/contrib/asmap/asmap.dat new file mode 100644 index 000000000..aaf3fdada Binary files /dev/null and b/contrib/asmap/asmap.dat differ diff --git a/contrib/devtools/gen-manpages.sh b/contrib/devtools/gen-manpages.sh index 494f8da68..4acce0959 100755 --- a/contrib/devtools/gen-manpages.sh +++ b/contrib/devtools/gen-manpages.sh @@ -12,8 +12,9 @@ HUSHTX=${HUSHTX:-$SRCDIR/hush-tx} [ ! -x $HUSHD ] && echo "$HUSHD not found or not executable." && exit 1 -HUSHVER="v3.6.1" -#HUSHVER=$(./src/hushd --version|head -n2|tail -n1|cut -d' ' -f4|cut -d- -f1) +# use this if hushd is not running +#HUSHVER="v3.6.2" +HUSHVER=$(./src/hushd --version|head -n1|cut -d' ' -f4|cut -d- -f1) # Create a footer file with copyright content. # This gets autodetected fine for hushd if --version-string is not set, diff --git a/doc/man/hush-cli.1 b/doc/man/hush-cli.1 index 53029b0f3..857dbde06 100644 --- a/doc/man/hush-cli.1 +++ b/doc/man/hush-cli.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.10. -.TH HUSH-CLI "1" "January 2021" "hush-cli v3.6.1" "User Commands" +.TH HUSH-CLI "1" "February 2021" "hush-cli v3.6.2" "User Commands" .SH NAME -hush-cli \- manual page for hush-cli v3.6.1 +hush-cli \- manual page for hush-cli v3.6.2 .SH DESCRIPTION -Hush RPC client version v3.6.1\-cf5736569\-dirty +Hush RPC client version v3.6.2\-e2e6e44ca\-dirty .PP In order to ensure you are adequately protecting your privacy when using Hush, please see . diff --git a/doc/man/hush-tx.1 b/doc/man/hush-tx.1 index 178d7eb09..6d4ac2f11 100644 --- a/doc/man/hush-tx.1 +++ b/doc/man/hush-tx.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.10. -.TH HUSH-TX "1" "January 2021" "hush-tx v3.6.1" "User Commands" +.TH HUSH-TX "1" "February 2021" "hush-tx v3.6.2" "User Commands" .SH NAME -hush-tx \- manual page for hush-tx v3.6.1 +hush-tx \- manual page for hush-tx v3.6.2 .SH DESCRIPTION -hush\-tx utility version v3.6.1\-cf5736569\-dirty +hush\-tx utility version v3.6.2\-e2e6e44ca\-dirty .SS "Usage:" .TP hush\-tx [options] [commands] diff --git a/doc/man/hushd.1 b/doc/man/hushd.1 index 2d5e5d2e5..54780a095 100644 --- a/doc/man/hushd.1 +++ b/doc/man/hushd.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.10. -.TH HUSHD "1" "January 2021" "hushd v3.6.1" "User Commands" +.TH HUSHD "1" "February 2021" "hushd v3.6.2" "User Commands" .SH NAME -hushd \- manual page for hushd v3.6.1 +hushd \- manual page for hushd v3.6.2 .SH DESCRIPTION -Hush Daemon version v3.6.1\-cf5736569\-dirty +Hush Daemon version v3.6.2\-e2e6e44ca\-dirty .PP In order to ensure you are adequately protecting your privacy when using Hush, please see . @@ -37,7 +37,7 @@ How thorough the block verification of \fB\-checkblocks\fR is (0\-4, default: 3) .HP \fB\-clientname=\fR .IP -Full node client name, default 'MagicBean' +Full node client name, default 'GoldenSandtrout' .HP \fB\-conf=\fR .IP @@ -143,7 +143,7 @@ Add a node to connect to and attempt to keep the connection open \fB\-asmap=\fR .IP Specify asn mapping used for bucketing of the peers (default: -ip_asn.map). Relative paths will be prefixed by the net\-specific datadir +asmap.dat). Relative paths will be prefixed by the net\-specific datadir location. .HP \fB\-banscore=\fR diff --git a/src/chainparams.cpp b/src/chainparams.cpp index b956ec17f..fcd23a576 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -557,7 +557,7 @@ void *chainparams_commandline() { { boost::assign::map_list_of (0, pCurrentParams->consensus.hashGenesisBlock) - // Generated at 1600532337 via hush3 contrib/checkpoints.pl by Duke Leto + // Last updated at 1613482505 via hush3 contrib/checkpoints.pl by Duke Leto (5000, uint256S("0x000000018f8543066baa9c5f83e981749da4cb625fad02c187b4a9c4693ebd60")) (10000, uint256S("0x00000002d177d1cbfeaf7c27a2a32766ea9063d222cbcc7623dc08355b07a3ad")) (15000, uint256S("0x000000008dbfbd5d5e27d819bf2989c5658c3494608bfa1320ad0b090660cd44")) @@ -690,10 +690,42 @@ void *chainparams_commandline() { (399000, uint256S("0x0000000d6741914a85e696364cda252340747a3b47f955b99c29e8163192c4cb")) (400000, uint256S("0x00000004956ccd26d7532b6bf229777675f326523b904f4e1f40b9535a124641")) (401000, uint256S("0x0000000a974824aa14a61c3b442a15d6bdf0aaa75f5c280d94e43898ef143463")) - (402000, uint256S("0x0000000c071f67605a6764573fd6524fd90628f9ea339ff55c7a20567093251e")), - (int64_t) 1611465410, // time of last checkpointed block - (int64_t) 708317, // total txs - (double) 1540 // txs in the last day before block 402232 + (402000, uint256S("0x0000000c071f67605a6764573fd6524fd90628f9ea339ff55c7a20567093251e")) + (403000, uint256S("0x00000000532805ef6cb2c755149a7fbf8b855528fcb513942fa7f5463bfc6cc4")) + (404000, uint256S("0x00000000a2638bf8b0a48d705b117f9ce7457e6fab16b16f70c66d9a50390a53")) + (405000, uint256S("0x0000001cb3b08ce66003deb4d05182ef6f74e4e17dceaf3fd272184cbc6118a4")) + (406000, uint256S("0x0000001292e18ce355fd9c608b029cf16ef459c47503899db896ea5aebf78e34")) + (407000, uint256S("0x0000000efdeebe216c58ac94d9d9bc5aa0d772509e98a256014ecfe1002d31d3")) + (408000, uint256S("0x00000009a0d66c11cc08a8f1d96c7acbd0a97165176045421eba3bc017a42e93")) + (409000, uint256S("0x00000001df73a93028f836593d32511b047e3f4abd73fb92db02809c751457cb")) + (410000, uint256S("0x0000000306911b54cfec6f566e0b8bed99a177ed10e4cc4ca9ff855c906e4b73")) + (411000, uint256S("0x0000000b273b786e21e636c40d4c979b754e97eb3ce9e76d22b8a1901f74a46a")) + (412000, uint256S("0x0000000e850a5c492e1aa8137a721b650297bc599886167def5663abe5804315")) + (413000, uint256S("0x00000005d8c4d2404a301aa254302e70d7f74dde1661279a1f55c0009c48bc94")) + (414000, uint256S("0x000000197263852a1d5f46fa495853723393a36e9c35230c681619aeb9935bf9")) + (415000, uint256S("0x000000119792e3de106d9cd0a91bb922ca1e2717816cd3d3b350578c99985698")) + (416000, uint256S("0x00000005b112e5e5adc86b0dd453cf55038656c0fad340c3a5177923d2f4b0cd")) + (417000, uint256S("0x0000001e947478180ca348d8b6ae653727092327d592d25dbde33fd1cf4ed8cb")) + (418000, uint256S("0x00000018ea0c59fcb9ef2946f6b44eae6794da0a9fa2327258748c5ff0d1ad0d")) + (419000, uint256S("0x0000001dee9250903e8c2bea76ac144dc2dbbeca60d7041dcd5706597ddd5e38")) + (420000, uint256S("0x000000047d784123e1ac2a5b7687b72a8bcf0ff43b02d71db52f7c8f967e3179")) + (421000, uint256S("0x00000015f35a10a8baefd4f0291742f68f84ce0417491c4be3a006cb4c3959e9")) + (422000, uint256S("0x00000004f8fb248fc0e9bf3d99e5379a8e8120c18357f52eabc74553deb7b1c5")) + (423000, uint256S("0x00000010239e5fc5489d350496950b27ab5f34e3774c424a12353bba7440d78e")) + (424000, uint256S("0x0000000a43a0a4a68b2cd61d20065eea7d8a27c20d64555c8320cd4a45d769e7")) + (425000, uint256S("0x000000104d409a2b87617ad6f7638d5000b6ec8aad5f54dee6d6b13e0f7f66b3")) + (426000, uint256S("0x0000000bdddcaaa58568a7d5da4380c5735b9d9374e8e393e14303fca51e374f")) + (427000, uint256S("0x00000002195dafd6ba01b4089c55e35521fed90bf95420abdb73e9edb0c7e779")) + (428000, uint256S("0x00000002ea968e35749a7f41c52e61b0f4635384020a82282d997594b017d446")) + (429000, uint256S("0x00000007e213a5778b3a942016a7d7576c6c141f913342a1f627417c4f334224")) + (430000, uint256S("0x0000000f827d7a004367c15c973814cc47e32287b727ebe3a4cb581703979593")) + (431000, uint256S("0x0000000d709ec810da6a2f55ff5d10bff9a5580ffe4fee8ce27abaf175cb6312")) + (432000, uint256S("0x000000007d91ea56e7e129991aa33e57224d0f898a5a46b02efb81f40aae5ed8")) + (433000, uint256S("0x00000009da7df1aad22c96ed458fa7feae1216811568fb0e9c2f09db25dee3f0")) + (434000, uint256S("0x0000001003f3460d4b0414f94e35025c76f72b8607e0ea00c7790e10172ef8e3")), + (int64_t) 1613879454, // time of last checkpointed block + (int64_t) 752357, // total txs + (double) 1187 // txs in the last day before block 434429 }; } else { checkpointData = //(Checkpoints::CCheckpointData) diff --git a/src/clientversion.h b/src/clientversion.h index f7aeedc3f..98075253d 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -26,11 +26,11 @@ // client versioning and copyright year //! These need to be macros, as clientversion.cpp's and bitcoin*-res.rc's voodoo requires it -// Must be kept in sync with configure.ac ! +// Must be kept in sync with configure.ac , ugh! #define CLIENT_VERSION_MAJOR 3 #define CLIENT_VERSION_MINOR 6 -#define CLIENT_VERSION_REVISION 1 -#define CLIENT_VERSION_BUILD 25 +#define CLIENT_VERSION_REVISION 2 +#define CLIENT_VERSION_BUILD 50 //! Set to true for release, false for prerelease or test build #define CLIENT_VERSION_IS_RELEASE true @@ -39,7 +39,7 @@ * Copyright year (2009-this) * Todo: update this when changing our copyright comments in the source */ -#define COPYRIGHT_YEAR 2020 +#define COPYRIGHT_YEAR 2021 #endif //HAVE_CONFIG_H diff --git a/src/hushd b/src/hushd index ee773e005..477477d49 100755 --- a/src/hushd +++ b/src/hushd @@ -86,6 +86,7 @@ $KMD -ac_name=$NAME \ -ac_supply=$SUPPLY \ -ac_perc=$PERC \ -clientname=$CLIENTNAME \ + -asmap \ -addnode=$NODE1 \ -addnode=$NODE2 \ -addnode=$NODE3 \ diff --git a/src/init.cpp b/src/init.cpp index 0c1937b88..7ecfe9dbd 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -122,7 +122,7 @@ enum BindFlags { static const char* FEE_ESTIMATES_FILENAME="fee_estimates.dat"; -static const char* DEFAULT_ASMAP_FILENAME="ip_asn.map"; +static const char* DEFAULT_ASMAP_FILENAME="asmap.dat"; CClientUIInterface uiInterface; // Declared but not defined in ui_interface.h @@ -1089,8 +1089,15 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler) // Read asmap file if configured if (mapArgs.count("-asmap")) { fs::path asmap_path = fs::path(GetArg("-asmap", "")); + + char cwd[1024]; + bool ret = getcwd(cwd, sizeof(cwd)); + fs::path pwd = fs::path(cwd); + fs::path contrib = pwd / ".." / "contrib" / "asmap"; + + // if no filepath, use the default in contrib if (asmap_path.empty()) { - asmap_path = DEFAULT_ASMAP_FILENAME; + asmap_path = contrib / DEFAULT_ASMAP_FILENAME; } if (!asmap_path.is_absolute()) { asmap_path = GetDataDir() / asmap_path; @@ -1105,10 +1112,12 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler) return false; } const uint256 asmap_version = SerializeHash(asmap); + printf("%s: asmap version=%s with %lu mappings\n", __func__, asmap_version.ToString().c_str(), asmap.size()); addrman.m_asmap = std::move(asmap); // //node.connman->SetAsmap(std::move(asmap)); LogPrintf("Using asmap version %s for IP bucketing\n", asmap_version.ToString()); + } else { - LogPrintf("Using /16 prefix for IP bucketing\n"); + LogPrintf("Using /16 prefix for IP bucketing, but why?\n"); } if (GetBoolArg("-salvagewallet", false)) { diff --git a/src/rpc/net.cpp b/src/rpc/net.cpp index 49498bc93..46c3cf24d 100644 --- a/src/rpc/net.cpp +++ b/src/rpc/net.cpp @@ -1,8 +1,7 @@ // Copyright (c) 2009-2014 The Bitcoin Core developers -// Copyright (c) 2016-2020 The Hush developers +// Copyright (c) 2016-2021 The Hush developers // Distributed under the GPLv3 software license, see the accompanying // file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html - /****************************************************************************** * Copyright © 2014-2019 The SuperNET Developers. * * * @@ -241,8 +240,8 @@ UniValue addnode(const UniValue& params, bool fHelp, const CPubKey& mypk) "1. \"node\" (string, required) The node (see getpeerinfo for nodes)\n" "2. \"command\" (string, required) 'add' to add a node to the list, 'remove' to remove a node from the list, 'onetry' to try a connection to the node once\n" "\nExamples:\n" - + HelpExampleCli("addnode", "\"192.168.0.6:8233\" \"onetry\"") - + HelpExampleRpc("addnode", "\"192.168.0.6:8233\", \"onetry\"") + + HelpExampleCli("addnode", "\"192.168.0.6:18030\" \"onetry\"") + + HelpExampleRpc("addnode", "\"192.168.0.6:18030\", \"onetry\"") ); string strNode = params[0].get_str(); @@ -285,8 +284,8 @@ UniValue disconnectnode(const UniValue& params, bool fHelp, const CPubKey& mypk) "\nArguments:\n" "1. \"node\" (string, required) The node (see getpeerinfo for nodes)\n" "\nExamples:\n" - + HelpExampleCli("disconnectnode", "\"192.168.0.6:8233\"") - + HelpExampleRpc("disconnectnode", "\"192.168.0.6:8233\"") + + HelpExampleCli("disconnectnode", "\"192.168.0.6:18030\"") + + HelpExampleRpc("disconnectnode", "\"192.168.0.6:18030\"") ); CNode* pNode = FindNode(params[0].get_str()); @@ -317,7 +316,7 @@ UniValue getaddednodeinfo(const UniValue& params, bool fHelp, const CPubKey& myp " \"connected\" : true|false, (boolean) If connected\n" " \"addresses\" : [\n" " {\n" - " \"address\" : \"192.168.0.201:8233\", (string) The Hush server host and port\n" + " \"address\" : \"192.168.0.201:18030\", (string) The Hush server host and port\n" " \"connected\" : \"outbound\" (string) connection, inbound or outbound\n" " }\n" " ,...\n" diff --git a/src/util.cpp b/src/util.cpp index 9dea639b3..1f9383907 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -846,13 +846,13 @@ void AllocateFileRange(FILE *file, unsigned int offset, unsigned int length) { void ShrinkDebugFile() { - fprintf(stderr,"Shrinking %s\n", GetDataDir().c_str() ); // Scroll debug.log if it's getting too big boost::filesystem::path pathLog = GetDataDir() / "debug.log"; FILE* file = fopen(pathLog.string().c_str(), "r"); - unsigned int MAX_DEBUG_LOG_SIZE = 100*(1024*1024); // 100MB - if (file && boost::filesystem::file_size(pathLog) > MAX_DEBUG_LOG_SIZE ) - { + int maxlogsize = GetArg("-maxdebugfilesize", 15); + unsigned int MAX_DEBUG_LOG_SIZE = maxlogsize*(1024*1024); // convert to MB + if (file && boost::filesystem::file_size(pathLog) > MAX_DEBUG_LOG_SIZE ) { + fprintf(stderr,"Shrinking %s to be at most %d bytes\n", GetDataDir().c_str(), MAX_DEBUG_LOG_SIZE ); // Restart the file with some of the end std::vector vch(200000,0); fseek(file, -((long)vch.size()), SEEK_END); @@ -865,9 +865,9 @@ void ShrinkDebugFile() fwrite(begin_ptr(vch), 1, nBytes, file); fclose(file); } - } - else if (file != NULL) + } else if (file != NULL) { fclose(file); + } } #ifdef _WIN32