Merge branch 'dev' into duke
This commit is contained in:
14
INSTALL.md
14
INSTALL.md
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
To install a Debian package:
|
To install a Debian package:
|
||||||
|
|
||||||
dpkg -i hush-3.5.0-amd4.deb
|
dpkg -i hush-3.6.2-amd4.deb
|
||||||
|
|
||||||
To uninstall:
|
To uninstall:
|
||||||
|
|
||||||
@@ -42,6 +42,18 @@ cd hush3
|
|||||||
./build.sh -j$(nproc)
|
./build.sh -j$(nproc)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Building On Ubuntu 16.04 and older systems
|
||||||
|
|
||||||
|
Some older compilers may not be able to compile modern code, such as gcc 5.4 which comes with Ubuntu 16.04 by default. Here is how to install gcc 7 on Ubuntu 16.04. Run these commands as root:
|
||||||
|
|
||||||
|
```
|
||||||
|
add-apt-repository ppa:ubuntu-toolchain-r/test && \
|
||||||
|
apt update && \
|
||||||
|
apt-get install -y gcc-7 g++-7 && \
|
||||||
|
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 60 && \
|
||||||
|
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60
|
||||||
|
```
|
||||||
|
|
||||||
## Run a HUSH Node
|
## Run a HUSH Node
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
|
|||||||
AC_PREREQ([2.60])
|
AC_PREREQ([2.60])
|
||||||
define(_CLIENT_VERSION_MAJOR, 3)
|
define(_CLIENT_VERSION_MAJOR, 3)
|
||||||
define(_CLIENT_VERSION_MINOR, 6)
|
define(_CLIENT_VERSION_MINOR, 6)
|
||||||
define(_CLIENT_VERSION_REVISION, 2)
|
define(_CLIENT_VERSION_REVISION, 3)
|
||||||
define(_CLIENT_VERSION_BUILD, 50)
|
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(_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)))
|
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)))
|
||||||
|
|||||||
@@ -1,15 +1,23 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Copyright (c) 2016-2020 The Hush developers
|
# Copyright (c) 2016-2021 The Hush developers
|
||||||
# Released under the GPLv3
|
# Released under the GPLv3
|
||||||
|
|
||||||
#TODO: autodect version number, error handling
|
set -e
|
||||||
FILE="hush-3.6.0-linux-amd64.tar"
|
set -x
|
||||||
|
|
||||||
|
#TODO: autodect version number, error handling
|
||||||
|
FILE="hush-3.6.2-linux-amd64.tar"
|
||||||
|
TIME=$(perl -e 'print time')
|
||||||
|
|
||||||
|
mv build build.$TIME
|
||||||
mkdir build
|
mkdir build
|
||||||
|
cp contrib/asmap/asmap.dat build/
|
||||||
cp sapling*.params build/
|
cp sapling*.params build/
|
||||||
cd src
|
cd src
|
||||||
cp komodod komodo-cli komodo-tx hushd hush-cli hush-tx hush-smart-chain ../build
|
cp komodod komodo-cli komodo-tx hushd hush-cli hush-tx hush-smart-chain ../build
|
||||||
cd ../build
|
cd ../build
|
||||||
|
strip komodo*
|
||||||
tar -f $FILE -c *
|
tar -f $FILE -c *
|
||||||
gzip $FILE
|
gzip -9 $FILE
|
||||||
|
sha256sum *.gz
|
||||||
|
du -sh *.gz
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ endef
|
|||||||
#endef
|
#endef
|
||||||
|
|
||||||
define $(package)_build_cmds
|
define $(package)_build_cmds
|
||||||
$(MAKE) -j1 src/libwolfssl.la
|
$(MAKE) CPPFLAGS='-fPIC' -j1 src/libwolfssl.la
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_stage_cmds
|
define $(package)_stage_cmds
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2016-2020 The Hush developers
|
# Copyright 2016-2021 The Hush developers
|
||||||
# Distributed under the GPLv3 software license, see the accompanying
|
# Distributed under the GPLv3 software license, see the accompanying
|
||||||
# file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
|
# file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
|
||||||
|
|
||||||
@@ -483,8 +483,8 @@ nodist_libbitcoin_util_a_SOURCES = $(srcdir)/obj/build.h
|
|||||||
|
|
||||||
# komodod binary #
|
# komodod binary #
|
||||||
komodod_SOURCES = bitcoind.cpp
|
komodod_SOURCES = bitcoind.cpp
|
||||||
komodod_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
komodod_CPPFLAGS = -fPIC $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
||||||
komodod_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
komodod_CXXFLAGS = -fPIC $(AM_CXXFLAGS) $(PIE_FLAGS)
|
||||||
komodod_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
komodod_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
||||||
|
|
||||||
if TARGET_WINDOWS
|
if TARGET_WINDOWS
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||||
// Copyright (c) 2016-2017 The Zcash developers
|
// Copyright (c) 2016-2017 The Zcash developers
|
||||||
// Copyright (c) 2016-2020 The Hush developers
|
// Copyright (c) 2016-2021 The Hush developers
|
||||||
// Distributed under the GPLv3 software license, see the accompanying
|
// Distributed under the GPLv3 software license, see the accompanying
|
||||||
// file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
|
// file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
// Must be kept in sync with configure.ac , ugh!
|
// Must be kept in sync with configure.ac , ugh!
|
||||||
#define CLIENT_VERSION_MAJOR 3
|
#define CLIENT_VERSION_MAJOR 3
|
||||||
#define CLIENT_VERSION_MINOR 6
|
#define CLIENT_VERSION_MINOR 6
|
||||||
#define CLIENT_VERSION_REVISION 2
|
#define CLIENT_VERSION_REVISION 3
|
||||||
#define CLIENT_VERSION_BUILD 50
|
#define CLIENT_VERSION_BUILD 50
|
||||||
|
|
||||||
//! Set to true for release, false for prerelease or test build
|
//! Set to true for release, false for prerelease or test build
|
||||||
|
|||||||
55
src/init.cpp
55
src/init.cpp
@@ -1,8 +1,10 @@
|
|||||||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
// 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
|
// Distributed under the GPLv3 software license, see the accompanying
|
||||||
// file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
|
// file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
|
||||||
|
// What happened to the SuperNET devs, who were dedicated to privacy???
|
||||||
|
// Did they go the way of the dodo when they embraced KYC?
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* Copyright © 2014-2019 The SuperNET Developers. *
|
* Copyright © 2014-2019 The SuperNET Developers. *
|
||||||
* *
|
* *
|
||||||
@@ -1095,13 +1097,52 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)
|
|||||||
fs::path pwd = fs::path(cwd);
|
fs::path pwd = fs::path(cwd);
|
||||||
fs::path contrib = pwd / ".." / "contrib" / "asmap";
|
fs::path contrib = pwd / ".." / "contrib" / "asmap";
|
||||||
|
|
||||||
// if no filepath, use the default in contrib
|
// If no asmap given (default), look for one
|
||||||
|
// First we look in PWD, the most common case (binaries)
|
||||||
|
// Then we look in /usr/share/hush, for Debian packages
|
||||||
|
// then we look in ../contrib/asmap/ for compiling from source case
|
||||||
|
// finally we try the parent directory .. as a last resort
|
||||||
|
// if no asmap can be found, something is wrong, and we exit
|
||||||
if (asmap_path.empty()) {
|
if (asmap_path.empty()) {
|
||||||
asmap_path = contrib / DEFAULT_ASMAP_FILENAME;
|
// Most binaries will have it in PWD
|
||||||
}
|
asmap_path = pwd / DEFAULT_ASMAP_FILENAME;
|
||||||
if (!asmap_path.is_absolute()) {
|
printf("%s: looking for asmap file at %s\n", __func__, asmap_path.c_str() );
|
||||||
asmap_path = GetDataDir() / asmap_path;
|
if(fs::exists(asmap_path)) {
|
||||||
|
printf("%s: found asmap file at %s\n", __func__, asmap_path.c_str() );
|
||||||
|
} else {
|
||||||
|
// Debian Packages
|
||||||
|
asmap_path = fs::path("/usr/share/hush") / DEFAULT_ASMAP_FILENAME;
|
||||||
|
printf("%s: looking for asmap file at %s\n", __func__, asmap_path.c_str() );
|
||||||
|
if(fs::exists(asmap_path)) {
|
||||||
|
printf("%s: found asmap file at %s\n", __func__, asmap_path.c_str() );
|
||||||
|
} else {
|
||||||
|
// Source code
|
||||||
|
asmap_path = contrib / DEFAULT_ASMAP_FILENAME;
|
||||||
|
printf("%s: looking for asmap file at %s\n", __func__, asmap_path.c_str() );
|
||||||
|
if(fs::exists(asmap_path)) {
|
||||||
|
printf("%s: found asmap file at %s\n", __func__, asmap_path.c_str() );
|
||||||
|
} else {
|
||||||
|
// Last Resort: Check the parent directory
|
||||||
|
asmap_path = pwd / ".." / DEFAULT_ASMAP_FILENAME;
|
||||||
|
printf("%s: looking for asmap file at %s\n", __func__, asmap_path.c_str() );
|
||||||
|
if(fs::exists(asmap_path)) {
|
||||||
|
printf("%s: found asmap file at %s\n", __func__, asmap_path.c_str() );
|
||||||
|
} else {
|
||||||
|
// Shit is fucked up, die an honorable death
|
||||||
|
InitError(strprintf(_("Could not find any asmap file! Please report this bug to Hush Developers")));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!asmap_path.is_absolute()) {
|
||||||
|
asmap_path = GetDataDir() / asmap_path;
|
||||||
|
}
|
||||||
|
printf("%s: looking for custom asmap file at %s\n", __func__, asmap_path.c_str() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO: verify asmap_path is not a directory
|
||||||
if (!fs::exists(asmap_path)) {
|
if (!fs::exists(asmap_path)) {
|
||||||
InitError(strprintf(_("Could not find asmap file %s"), asmap_path));
|
InitError(strprintf(_("Could not find asmap file %s"), asmap_path));
|
||||||
return false;
|
return false;
|
||||||
@@ -1113,8 +1154,8 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)
|
|||||||
}
|
}
|
||||||
const uint256 asmap_version = SerializeHash(asmap);
|
const uint256 asmap_version = SerializeHash(asmap);
|
||||||
printf("%s: asmap version=%s with %lu mappings\n", __func__, asmap_version.ToString().c_str(), asmap.size());
|
printf("%s: asmap version=%s with %lu mappings\n", __func__, asmap_version.ToString().c_str(), asmap.size());
|
||||||
|
LogPrintf("Using asmap version %s for IP bucketing with %lu mappings\n", asmap_version.ToString(), asmap.size());
|
||||||
addrman.m_asmap = std::move(asmap); // //node.connman->SetAsmap(std::move(asmap));
|
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 {
|
} else {
|
||||||
LogPrintf("Using /16 prefix for IP bucketing, but why?\n");
|
LogPrintf("Using /16 prefix for IP bucketing, but why?\n");
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// Copyright (c) 2010 Satoshi Nakamoto
|
// Copyright (c) 2010 Satoshi Nakamoto
|
||||||
// Copyright (c) 2009-2015 The Bitcoin Core developers
|
// Copyright (c) 2009-2015 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
|
// Distributed under the GPLv3 software license, see the accompanying
|
||||||
// file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
|
// file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
@@ -1266,7 +1266,7 @@ UniValue sendrawtransaction(const UniValue& params, bool fHelp, const CPubKey& m
|
|||||||
if (fMissingInputs) {
|
if (fMissingInputs) {
|
||||||
throw JSONRPCError(RPC_TRANSACTION_ERROR, "Missing inputs");
|
throw JSONRPCError(RPC_TRANSACTION_ERROR, "Missing inputs");
|
||||||
}
|
}
|
||||||
throw JSONRPCError(RPC_TRANSACTION_ERROR, state.GetRejectReason());
|
throw JSONRPCError(RPC_TRANSACTION_ERROR, strprintf("Invalid state: %s", state.GetRejectReason()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (fHaveChain) {
|
} else if (fHaveChain) {
|
||||||
@@ -1274,9 +1274,7 @@ UniValue sendrawtransaction(const UniValue& params, bool fHelp, const CPubKey& m
|
|||||||
}
|
}
|
||||||
LogPrintf("%s: Relaying raw tx to mempool\n", __FUNCTION__);
|
LogPrintf("%s: Relaying raw tx to mempool\n", __FUNCTION__);
|
||||||
RelayTransaction(tx);
|
RelayTransaction(tx);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
NSPV_broadcast((char *)params[0].get_str().c_str());
|
NSPV_broadcast((char *)params[0].get_str().c_str());
|
||||||
}
|
}
|
||||||
return hashTx.GetHex();
|
return hashTx.GetHex();
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// Copyright (c) 2012-2014 The Bitcoin Core developers
|
// Copyright (c) 2012-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
|
// Distributed under the GPLv3 software license, see the accompanying
|
||||||
// file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
|
// file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
#define HUSH_VERSION_H
|
#define HUSH_VERSION_H
|
||||||
|
|
||||||
// network protocol versioning
|
// network protocol versioning
|
||||||
static const int PROTOCOL_VERSION = 1987420;
|
static const int PROTOCOL_VERSION = 1987421;
|
||||||
//! initial proto version, to be increased after version/verack negotiation
|
//! initial proto version, to be increased after version/verack negotiation
|
||||||
static const int INIT_PROTO_VERSION = 209;
|
static const int INIT_PROTO_VERSION = 209;
|
||||||
//! In this version, 'getheaders' was introduced.
|
//! In this version, 'getheaders' was introduced.
|
||||||
|
|||||||
@@ -1473,7 +1473,7 @@ bool CWallet::AddToWallet(const CWalletTx& wtxIn, bool fFromLoadWallet, CWalletD
|
|||||||
}
|
}
|
||||||
|
|
||||||
//// debug print
|
//// debug print
|
||||||
LogPrintf("AddToWallet %s %s%s\n", wtxIn.GetHash().ToString(), (fInsertedNew ? "new" : ""), (fUpdated ? "update" : ""));
|
LogPrintf("AddToWallet %s at height %d %s%s\n", wtxIn.GetHash().ToString(), hush_blockheight(wtxIn.hashBlock), (fInsertedNew ? "new" : ""), (fUpdated ? "update" : ""));
|
||||||
|
|
||||||
// Write to disk
|
// Write to disk
|
||||||
if (fInsertedNew || fUpdated)
|
if (fInsertedNew || fUpdated)
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ chmod 0755 -R $BUILD_DIR/*
|
|||||||
#cp $SRC_DEB/prerm $BUILD_DIR/DEBIAN
|
#cp $SRC_DEB/prerm $BUILD_DIR/DEBIAN
|
||||||
# Copy binaries. We prefix our komodod binaries with hush- to prevent conflicting with
|
# Copy binaries. We prefix our komodod binaries with hush- to prevent conflicting with
|
||||||
# a stock komodod or other flavors of KMD
|
# a stock komodod or other flavors of KMD
|
||||||
|
cp $SRC_PATH/contrib/asmap/asmap.dat $DEB_SHR
|
||||||
cp $SRC_PATH/sapling-spend.params $DEB_SHR
|
cp $SRC_PATH/sapling-spend.params $DEB_SHR
|
||||||
cp $SRC_PATH/sapling-output.params $DEB_SHR
|
cp $SRC_PATH/sapling-output.params $DEB_SHR
|
||||||
cp $SRC_PATH/src/komodod $DEB_BIN/hush-komodod
|
cp $SRC_PATH/src/komodod $DEB_BIN/hush-komodod
|
||||||
|
|||||||
Reference in New Issue
Block a user