diff --git a/configure.ac b/configure.ac
index 794c486c0..801d7be75 100644
--- a/configure.ac
+++ b/configure.ac
@@ -151,12 +151,6 @@ AC_ARG_ENABLE([glibc-back-compat],
[use_glibc_compat=$enableval],
[use_glibc_compat=no])
-AC_ARG_ENABLE([zmq],
- [AS_HELP_STRING([--disable-zmq],
- [disable ZMQ notifications])],
- [use_zmq=$enableval],
- [use_zmq=yes])
-
AC_ARG_ENABLE([experimental-asm],
[AS_HELP_STRING([--enable-experimental-asm],
[Enable experimental assembly routines (default is no)])],
@@ -673,15 +667,6 @@ if test x$use_pkgconfig = xyes; then
fi
fi
- if test "x$use_zmq" = "xyes"; then
- PKG_CHECK_MODULES([ZMQ],[libzmq >= 4],
- [AC_DEFINE([ENABLE_ZMQ],[1],[Define to 1 to enable ZMQ functions])],
- [AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
- AC_MSG_WARN([libzmq version 4.x or greater not found, disabling])
- use_zmq=no])
- else
- AC_DEFINE_UNQUOTED([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
- fi
]
)
else
@@ -718,28 +703,7 @@ fi
#AC_CHECK_HEADER([gmpxx.h],,AC_MSG_ERROR(libgmpxx headers missing))
#AC_CHECK_LIB([gmpxx],[main],GMPXX_LIBS=-lgmpxx, [AC_MSG_ERROR(libgmpxx missing)])
- if test "x$use_zmq" = "xyes"; then
- AC_CHECK_HEADER([zmq.h],
- [AC_DEFINE([ENABLE_ZMQ],[1],[Define to 1 to enable ZMQ functions])],
- [AC_MSG_WARN([zmq.h not found, disabling zmq support])
- use_zmq=no
- AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])])
- AC_CHECK_LIB([zmq],[zmq_ctx_shutdown],ZMQ_LIBS=-lzmq,
- [AC_MSG_WARN([libzmq >= 4.0 not found, disabling zmq support])
- use_zmq=no
- AC_DEFINE([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])])
- else
- AC_DEFINE_UNQUOTED([ENABLE_ZMQ],[0],[Define to 1 to enable ZMQ functions])
- fi
- if test "x$use_zmq" = "xyes"; then
- dnl Assume libzmq was built for static linking
- case $host in
- *mingw*)
- ZMQ_CFLAGS="$ZMQ_CFLAGS -DZMQ_STATIC"
- ;;
- esac
- fi
fi
# These packages don't provide pkgconfig config files across all
@@ -824,8 +788,6 @@ else
AC_MSG_RESULT(no)
fi
-AM_CONDITIONAL([ENABLE_ZMQ], [test "x$use_zmq" = "xyes"])
-
AC_MSG_CHECKING([whether to build test_bitcoin])
if test x$use_tests = xyes; then
AC_MSG_RESULT([yes])
@@ -894,7 +856,6 @@ AC_SUBST(CRYPTO_LIBS)
AC_SUBST(SSL_LIBS)
AC_SUBST(EVENT_LIBS)
AC_SUBST(EVENT_PTHREADS_LIBS)
-AC_SUBST(ZMQ_LIBS)
AC_SUBST(GMP_LIBS)
AC_SUBST(GMPXX_LIBS)
AC_SUBST(LIBZCASH_LIBS)
@@ -944,7 +905,6 @@ esac
echo
echo "Options used to compile and link:"
echo " with wallet = $enable_wallet"
-echo " with zmq = $use_zmq"
echo " with test = $use_tests"
echo " debug enabled = $enable_debug"
echo " werror = $enable_werror"
diff --git a/contrib/debian/copyright b/contrib/debian/copyright
index f2d71c287..7bf3a707c 100644
--- a/contrib/debian/copyright
+++ b/contrib/debian/copyright
@@ -23,19 +23,6 @@ Copyright: 1990, 2016 Oracle and/or its affiliates;
2000-2005 INRIA, France Telecom
License: BDB
-Files: depends/sources/zeromq-*.tar.gz
-Copyright:
- 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
- 2007-2014 iMatix Corporation
- 2009-2011 250bpm s.r.o.
- 2010-2011 Miru Limited
- 2011 VMware, Inc.
- 2012 Spotify AB
- 2013 Ericsson AB
- 2014 AppDynamics Inc.
- 2015-2016 Brocade Communications Systems Inc.
-License: LGPL-with-ZeroMQ-exception
-
Files: depends/sources/google*.tar.gz
Copyright: 2008 Google Inc.
License: BSD-3clause-Google
@@ -1056,35 +1043,6 @@ Comment:
You should have received a copy of the GNU General Public License
along with this program. If not, see .
-License: LGPL-with-ZeroMQ-exception
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
- .
- On Debian systems the GNU Lesser General Public License (LGPL) is
- located in '/usr/share/common-licenses/LGPL'.
- .
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- --------------------------------------------------------------------------------
- SPECIAL EXCEPTION GRANTED BY COPYRIGHT HOLDERS
- .
- As a special exception, copyright holders give you permission to link this
- library with independent modules to produce an executable, regardless of
- the license terms of these independent modules, and to copy and distribute
- the resulting executable under terms of your choice, provided that you also
- meet, for each linked independent module, the terms and conditions of
- the license of that module. An independent module is a module which is not
- derived from or based on this library. If you modify this library, you must
- extend this exception to your version of the library.
-
- Note: this exception relieves you of any obligations under sections 4 and 5
- of this license, and section 6 of the GNU General Public License.
-Comment:
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
License: GNU-All-permissive-License
Copying and distribution of this file, with or without modification, are
permitted in any medium without royalty provided the copyright notice
diff --git a/contrib/zmq/zmq_sub.py b/contrib/zmq/zmq_sub.py
deleted file mode 100755
index 902fc73c5..000000000
--- a/contrib/zmq/zmq_sub.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env python2
-# Copyright (c) 2014-2016 The Bitcoin Core 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
-
-import array
-import binascii
-import zmq
-import struct
-
-port = 28332
-
-zmqContext = zmq.Context()
-zmqSubSocket = zmqContext.socket(zmq.SUB)
-zmqSubSocket.setsockopt(zmq.SUBSCRIBE, "hashblock")
-zmqSubSocket.setsockopt(zmq.SUBSCRIBE, "hashtx")
-zmqSubSocket.setsockopt(zmq.SUBSCRIBE, "rawblock")
-zmqSubSocket.setsockopt(zmq.SUBSCRIBE, "rawtx")
-zmqSubSocket.connect("tcp://127.0.0.1:%i" % port)
-
-try:
- while True:
- msg = zmqSubSocket.recv_multipart()
- topic = str(msg[0])
- body = msg[1]
- sequence = "Unknown";
- if len(msg[-1]) == 4:
- msgSequence = struct.unpack('
#include
#include
-
-#if ENABLE_ZMQ
-#include "zmq/zmqnotificationinterface.h"
-#endif
-
#include "librustzcash.h"
using namespace std;
@@ -103,10 +98,6 @@ CWallet* pwalletMain = NULL;
#endif
bool fFeeEstimatesInitialized = false;
-#if ENABLE_ZMQ
-static CZMQNotificationInterface* pzmqNotificationInterface = NULL;
-#endif
-
#ifdef WIN32
// Win32 LevelDB doesn't use file descriptors, and the ones used for
// accessing block files don't count towards the fd_set size limit
@@ -269,14 +260,6 @@ void Shutdown()
pwalletMain->Flush(true);
#endif
-#if ENABLE_ZMQ
- if (pzmqNotificationInterface) {
- UnregisterValidationInterface(pzmqNotificationInterface);
- delete pzmqNotificationInterface;
- pzmqNotificationInterface = NULL;
- }
-#endif
-
#ifndef WIN32
try {
boost::filesystem::remove(GetPidFile());
@@ -491,14 +474,6 @@ std::string HelpMessage(HelpMessageMode mode)
" " + _("(1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data)"));
#endif
-#if ENABLE_ZMQ
- strUsage += HelpMessageGroup(_("ZeroMQ notification options:"));
- strUsage += HelpMessageOpt("-zmqpubhashblock=", _("Enable publish hash block in "));
- strUsage += HelpMessageOpt("-zmqpubhashtx=", _("Enable publish hash transaction in "));
- strUsage += HelpMessageOpt("-zmqpubrawblock=", _("Enable publish raw block in "));
- strUsage += HelpMessageOpt("-zmqpubrawtx=", _("Enable publish raw transaction in "));
-#endif
-
strUsage += HelpMessageGroup(_("Debugging/Testing options:"));
if (showDebug)
{
@@ -512,7 +487,7 @@ std::string HelpMessage(HelpMessageMode mode)
strUsage += HelpMessageOpt("-stopafterblockimport", strprintf("Stop running after importing blocks from disk (default: %u)", 0));
strUsage += HelpMessageOpt("-nuparams=hexBranchId:activationHeight", "Use given activation height for specified network upgrade (regtest-only)");
}
- string debugCategories = "addrman, alert, bench, coindb, db, deletetx, estimatefee, http, libevent, lock, mempool, net, tls, partitioncheck, pow, proxy, prune, rand, randomx, reindex, rpc, selectcoins, stratum, tor, zmq, zrpc, zrpcunsafe (implies zrpc)"; // Don't translate these
+ string debugCategories = "addrman, alert, bench, coindb, db, deletetx, estimatefee, http, libevent, lock, mempool, net, tls, partitioncheck, pow, proxy, prune, rand, randomx, reindex, rpc, selectcoins, stratum, tor, zrpc, zrpcunsafe (implies zrpc)"; // Don't translate these
strUsage += HelpMessageOpt("-debug=", strprintf(_("Output debugging information (default: %u, supplying is optional)"), 0) + ". " +
_("If is not supplied or if = 1, output all debugging information.") + " " + _(" can be:") + " " + debugCategories + ".");
strUsage += HelpMessageOpt("-experimentalfeatures", _("Enable use of experimental features"));
@@ -1728,14 +1703,6 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)
return InitError(strprintf(_("Cannot find trusted certificates directory: '%s'"), pathTLSTrustredDir.string()));
}
-#if ENABLE_ZMQ
- pzmqNotificationInterface = CZMQNotificationInterface::CreateWithArguments(mapArgs);
-
- if (pzmqNotificationInterface) {
- RegisterValidationInterface(pzmqNotificationInterface);
- }
-#endif
-
if ( HUSH_NSPV_SUPERLITE )
{
std::vector vImportFiles;
diff --git a/src/zmq/zmqabstractnotifier.cpp b/src/zmq/zmqabstractnotifier.cpp
deleted file mode 100644
index b2f1d0833..000000000
--- a/src/zmq/zmqabstractnotifier.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (c) 2015 The Bitcoin Core developers
-// Distributed under the GPLv3 software license, see the accompanying
-// file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
-
-#include "zmqabstractnotifier.h"
-#include "util.h"
-
-
-CZMQAbstractNotifier::~CZMQAbstractNotifier()
-{
- assert(!psocket);
-}
-
-bool CZMQAbstractNotifier::NotifyBlock(const CBlockIndex * /*CBlockIndex*/)
-{
- return true;
-}
-
-bool CZMQAbstractNotifier::NotifyBlock(const CBlock &)
-{
- return true;
-}
-
-bool CZMQAbstractNotifier::NotifyTransaction(const CTransaction &/*transaction*/)
-{
- return true;
-}
diff --git a/src/zmq/zmqabstractnotifier.h b/src/zmq/zmqabstractnotifier.h
deleted file mode 100644
index d9d3cb0de..000000000
--- a/src/zmq/zmqabstractnotifier.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (c) 2015 The Bitcoin Core developers
-// Distributed under the GPLv3 software license, see the accompanying
-// file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
-
-#ifndef HUSH_ZMQ_ZMQABSTRACTNOTIFIER_H
-#define HUSH_ZMQ_ZMQABSTRACTNOTIFIER_H
-
-#include "zmqconfig.h"
-
-class CBlockIndex;
-class CZMQAbstractNotifier;
-
-typedef CZMQAbstractNotifier* (*CZMQNotifierFactory)();
-
-class CZMQAbstractNotifier
-{
-public:
- CZMQAbstractNotifier() : psocket(0) { }
- virtual ~CZMQAbstractNotifier();
-
- template
- static CZMQAbstractNotifier* Create()
- {
- return new T();
- }
-
- std::string GetType() const { return type; }
- void SetType(const std::string &t) { type = t; }
- std::string GetAddress() const { return address; }
- void SetAddress(const std::string &a) { address = a; }
-
- virtual bool Initialize(void *pcontext) = 0;
- virtual void Shutdown() = 0;
-
- virtual bool NotifyBlock(const CBlockIndex *pindex);
- virtual bool NotifyBlock(const CBlock& pblock);
- virtual bool NotifyTransaction(const CTransaction &transaction);
-
-protected:
- void *psocket;
- std::string type;
- std::string address;
-};
-
-#endif // HUSH_ZMQ_ZMQABSTRACTNOTIFIER_H
diff --git a/src/zmq/zmqconfig.h b/src/zmq/zmqconfig.h
deleted file mode 100644
index e561b0e7b..000000000
--- a/src/zmq/zmqconfig.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (c) 2015 The Bitcoin Core developers
-// Distributed under the GPLv3 software license, see the accompanying
-// file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
-
-#ifndef HUSH_ZMQ_ZMQCONFIG_H
-#define HUSH_ZMQ_ZMQCONFIG_H
-
-#if defined(HAVE_CONFIG_H)
-#include "config/bitcoin-config.h"
-#endif
-
-#include
-#include
-
-#if ENABLE_ZMQ
-#include
-#endif
-
-#include "primitives/block.h"
-#include "primitives/transaction.h"
-
-void zmqError(const char *str);
-
-#endif // HUSH_ZMQ_ZMQCONFIG_H
diff --git a/src/zmq/zmqnotificationinterface.cpp b/src/zmq/zmqnotificationinterface.cpp
deleted file mode 100644
index 50838c9c9..000000000
--- a/src/zmq/zmqnotificationinterface.cpp
+++ /dev/null
@@ -1,181 +0,0 @@
-// Copyright (c) 2015 The Bitcoin Core developers
-// Distributed under the GPLv3 software license, see the accompanying
-// file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
-
-#include "zmqnotificationinterface.h"
-#include "zmqpublishnotifier.h"
-
-#include "version.h"
-#include "main.h"
-#include "streams.h"
-#include "util.h"
-
-void zmqError(const char *str)
-{
- LogPrint("zmq", "zmq: Error: %s, errno=%s\n", str, zmq_strerror(errno));
-}
-
-CZMQNotificationInterface::CZMQNotificationInterface() : pcontext(NULL)
-{
-}
-
-CZMQNotificationInterface::~CZMQNotificationInterface()
-{
- Shutdown();
-
- for (std::list::iterator i=notifiers.begin(); i!=notifiers.end(); ++i)
- {
- delete *i;
- }
-}
-
-CZMQNotificationInterface* CZMQNotificationInterface::CreateWithArguments(const std::map &args)
-{
- CZMQNotificationInterface* notificationInterface = NULL;
- std::map factories;
- std::list notifiers;
-
- factories["pubhashblock"] = CZMQAbstractNotifier::Create;
- factories["pubhashtx"] = CZMQAbstractNotifier::Create;
- factories["pubrawblock"] = CZMQAbstractNotifier::Create;
- factories["pubrawtx"] = CZMQAbstractNotifier::Create;
- factories["pubcheckedblock"] = CZMQAbstractNotifier::Create;
-
- for (std::map::const_iterator i=factories.begin(); i!=factories.end(); ++i)
- {
- std::map::const_iterator j = args.find("-zmq" + i->first);
- if (j!=args.end())
- {
- CZMQNotifierFactory factory = i->second;
- std::string address = j->second;
- CZMQAbstractNotifier *notifier = factory();
- notifier->SetType(i->first);
- notifier->SetAddress(address);
- notifiers.push_back(notifier);
- }
- }
-
- if (!notifiers.empty())
- {
- notificationInterface = new CZMQNotificationInterface();
- notificationInterface->notifiers = notifiers;
-
- if (!notificationInterface->Initialize())
- {
- delete notificationInterface;
- notificationInterface = NULL;
- }
- }
-
- return notificationInterface;
-}
-
-// Called at startup to conditionally set up ZMQ socket(s)
-bool CZMQNotificationInterface::Initialize()
-{
- LogPrint("zmq", "zmq: Initialize notification interface\n");
- assert(!pcontext);
-
- pcontext = zmq_init(1);
-
- if (!pcontext)
- {
- zmqError("Unable to initialize context");
- return false;
- }
-
- std::list::iterator i=notifiers.begin();
- for (; i!=notifiers.end(); ++i)
- {
- CZMQAbstractNotifier *notifier = *i;
- if (notifier->Initialize(pcontext))
- {
- LogPrint("zmq", " Notifier %s ready (address = %s)\n", notifier->GetType(), notifier->GetAddress());
- }
- else
- {
- LogPrint("zmq", " Notifier %s failed (address = %s)\n", notifier->GetType(), notifier->GetAddress());
- break;
- }
- }
-
- if (i!=notifiers.end())
- {
- return false;
- }
-
- return true;
-}
-
-// Called during shutdown sequence
-void CZMQNotificationInterface::Shutdown()
-{
- LogPrint("zmq", "zmq: Shutdown notification interface\n");
- if (pcontext)
- {
- for (std::list::iterator i=notifiers.begin(); i!=notifiers.end(); ++i)
- {
- CZMQAbstractNotifier *notifier = *i;
- LogPrint("zmq", " Shutdown notifier %s at %s\n", notifier->GetType(), notifier->GetAddress());
- notifier->Shutdown();
- }
- zmq_ctx_destroy(pcontext);
-
- pcontext = 0;
- }
-}
-
-void CZMQNotificationInterface::UpdatedBlockTip(const CBlockIndex *pindex)
-{
- for (std::list::iterator i = notifiers.begin(); i!=notifiers.end(); )
- {
- CZMQAbstractNotifier *notifier = *i;
- if (notifier->NotifyBlock(pindex))
- {
- i++;
- }
- else
- {
- notifier->Shutdown();
- i = notifiers.erase(i);
- }
- }
-}
-
-void CZMQNotificationInterface::BlockChecked(const CBlock& block, const CValidationState& state)
-{
- if (state.IsInvalid()) {
- return;
- }
-
- for (std::list::iterator i = notifiers.begin(); i!=notifiers.end(); )
- {
- CZMQAbstractNotifier *notifier = *i;
- if (notifier->NotifyBlock(block))
- {
- i++;
- }
- else
- {
- notifier->Shutdown();
- i = notifiers.erase(i);
- }
- }
-}
-
-void CZMQNotificationInterface::SyncTransaction(const CTransaction &tx, const CBlock *pblock)
-{
- for (std::list::iterator i = notifiers.begin(); i!=notifiers.end(); )
- {
- CZMQAbstractNotifier *notifier = *i;
- if (notifier->NotifyTransaction(tx))
- {
- i++;
- }
- else
- {
- notifier->Shutdown();
- i = notifiers.erase(i);
- }
- }
-}
diff --git a/src/zmq/zmqnotificationinterface.h b/src/zmq/zmqnotificationinterface.h
deleted file mode 100644
index 14542a983..000000000
--- a/src/zmq/zmqnotificationinterface.h
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (c) 2015 The Bitcoin Core developers
-// Distributed under the GPLv3 software license, see the accompanying
-// file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
-
-#ifndef HUSH_ZMQ_ZMQNOTIFICATIONINTERFACE_H
-#define HUSH_ZMQ_ZMQNOTIFICATIONINTERFACE_H
-
-#include "validationinterface.h"
-#include "consensus/validation.h"
-#include
-#include