From f3e2d7caee06e74ea7bf5f0004520ec46d7eff1b Mon Sep 17 00:00:00 2001 From: Duke Leto Date: Mon, 7 Dec 2020 08:19:41 -0500 Subject: [PATCH] Disable sending alerts, lulz --- src/sendalert.cpp | 117 +++------------------------------------------- 1 file changed, 7 insertions(+), 110 deletions(-) diff --git a/src/sendalert.cpp b/src/sendalert.cpp index b626f5b05..1513f40e0 100644 --- a/src/sendalert.cpp +++ b/src/sendalert.cpp @@ -1,6 +1,8 @@ // Copyright (c) 2019-2020 The Hush developers // Copyright (c) 2016 The Zcash developers // Original code from: https://gist.github.com/laanwj/0e689cfa37b52bcbbb44 +// 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. * @@ -54,20 +56,20 @@ the bad alert. */ +// Copyright (c) 2019-2020 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 #include "main.h" #include "net.h" #include "alert.h" #include "init.h" - #include "util.h" #include "utiltime.h" #include "key.h" #include "clientversion.h" #include "chainparams.h" - #include "alertkeys.h" - static const int64_t DAYS = 24 * 60 * 60; void ThreadSendAlert() @@ -75,112 +77,7 @@ void ThreadSendAlert() if (!mapArgs.count("-sendalert") && !mapArgs.count("-printalert")) return; - //TODO: wait until KOMODO_IN_SYNC - MilliSleep(60*1000); // Wait a minute so we get connected + fprintf(stderr,"Sending alerts not supported!\n"); + return; - // Alerts are relayed around the network until nRelayUntil, flood - // filling to every node. - // After the relay time is past, new nodes are told about alerts - // when they connect to peers, until either nExpiration or - // the alert is cancelled by a newer alert. - // Nodes never save alerts to disk, they are in-memory-only. - // - CAlert alert; - alert.nRelayUntil = GetTime() + 15 * 60; - alert.nExpiration = GetTime() + 10 * 365 * 24 * 60 * 60; - alert.nID = 1005; // HUSH3 has never had any alert id's - alert.nCancel = 1004; // cancels previous messages up to this ID number - - // These versions are protocol versions - // 170002 : 1.0.0 - alert.nMinVer = 170002; - alert.nMaxVer = 170004; - - // - // main.cpp: - // 1000 for Misc warnings like out of disk space and clock is wrong - // 2000 for longer invalid proof-of-work chain - // Higher numbers mean higher priority - // 4000 or higher will put the RPC into safe mode - alert.nPriority = 4000; - alert.strComment = ""; - alert.strStatusBar = "Your client version has degraded networking behavior. Please update to the most recent version of Hush (3.5.0 or later)."; - alert.strRPCError = alert.strStatusBar; - - // Set specific client version/versions here. If setSubVer is empty, no filtering on subver is done: - // alert.setSubVer.insert(std::string("/MagicBean:0.7.2/")); - const std::vector useragents = {}; //{"MagicBean", "BeanStalk", "AppleSeed" }; - - BOOST_FOREACH(const std::string& useragent, useragents) { - } - - // Sanity check - assert(alert.strComment.length() <= 65536); // max length in alert.h - assert(alert.strStatusBar.length() <= 256); - assert(alert.strRPCError.length() <= 256); - - // Sign - const CChainParams& chainparams = Params(); - std::string networkID = chainparams.NetworkIDString(); - bool fIsTestNet = networkID.compare("test") == 0; - std::vector vchTmp(ParseHex(fIsTestNet ? pszTestNetPrivKey : pszPrivKey)); - CPrivKey vchPrivKey(vchTmp.begin(), vchTmp.end()); - - CDataStream sMsg(SER_NETWORK, CLIENT_VERSION); - sMsg << *(CUnsignedAlert*)&alert; - alert.vchMsg = std::vector(sMsg.begin(), sMsg.end()); - CKey key; - if (!key.SetPrivKey(vchPrivKey, false)) - { - printf("ThreadSendAlert() : key.SetPrivKey failed\n"); - return; - } - if (!key.Sign(Hash(alert.vchMsg.begin(), alert.vchMsg.end()), alert.vchSig)) - { - printf("ThreadSendAlert() : key.Sign failed\n"); - return; - } - - // Test - CDataStream sBuffer(SER_NETWORK, CLIENT_VERSION); - sBuffer << alert; - CAlert alert2; - sBuffer >> alert2; - if (!alert2.CheckSignature(chainparams.AlertKey())) - { - printf("ThreadSendAlert() : CheckSignature failed\n"); - return; - } - assert(alert2.vchMsg == alert.vchMsg); - assert(alert2.vchSig == alert.vchSig); - alert.SetNull(); - printf("\nThreadSendAlert:\n"); - printf("hash=%s\n", alert2.GetHash().ToString().c_str()); - printf("%s\n", alert2.ToString().c_str()); - printf("vchMsg=%s\n", HexStr(alert2.vchMsg).c_str()); - printf("vchSig=%s\n", HexStr(alert2.vchSig).c_str()); - - // Confirm - if (!mapArgs.count("-sendalert")) - return; - while (vNodes.size() < 1 && !ShutdownRequested()) - MilliSleep(500); - if (ShutdownRequested()) - return; - - // Send - printf("ThreadSendAlert() : Sending alert\n"); - int nSent = 0; - { - LOCK(cs_vNodes); - BOOST_FOREACH(CNode* pnode, vNodes) - { - if (alert2.RelayTo(pnode)) - { - printf("ThreadSendAlert() : Sent alert to %s\n", pnode->addr.ToString().c_str()); - nSent++; - } - } - } - printf("ThreadSendAlert() : Alert sent to %d nodes\n", nSent); }