Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sign and verify message with bitcoin address #524

Merged
merged 8 commits into from
Sep 30, 2011

Conversation

sipa
Copy link
Member

@sipa sipa commented Sep 20, 2011

This is a reworked version of #183

Adds two RPC commands:

  • signmessage [address] [message]: create a base64-encoded signature string
  • verifymessage [address] [signature] [message]: verify whether a signature string is valid

The signature string contains both the ECDSA pubkey and signature, to allow address-based verification.
Verifymessage simply returns true or false.

This pull request also contains a full inline base64 encoded and decoder, replacing the openssl-based code. The decoder is based on JoelKatz' base64 decoder from #430.

@gavinandresen
Copy link
Contributor

This seems like a perfect candidate for some unit tests, both for the base64 encoder/decoder and for the sign/verify.

A performance unit-test for the old versus new base64 code would be spiffy, too...

@ByteCoin
Copy link

I suggest that the code from sipa@6e223c4 be used to recover the public key from the ECDSA signature on verification. This means that the public key need not be base-64 encoded which makes signatures about 87 characters shorter. The verification step is simply to check that the inferred public key matches the address. See https://bitcointalk.org/index.php?topic=6428.msg536734#msg536734 for further justification and improvements.

JoelKatz and others added 8 commits September 27, 2011 19:47
This replaces the openssl-based base64 encoder and decoder with a more
efficient internal one. Tested against the rfc4648 test vectors.

Decoder is based on JoelKatz' version.
Add padding to input (fixed string + address) before hashing
Include the public key in the signature string, to allow verification
based on address.
Introduce a new type of signatures that are only 65 bytes long, and allow
reconstruction of the public key that was used to create the signature.
Instead of encoding the public key inside the signature string, use
key recovery to do verification. This allows 88-character base64-encoded
signature strings instead of 188-character ones.
@alexwaters
Copy link
Contributor

Ran the 10 test cases with no error.

I have testnet-in-a-box running and can sign and verify between the two clients.

Signed the same address with multiple messages, verified true:true and false:false (no true:false). TBH I don't know if this is even necessary, but why not.

Strict verification was tested (x to y or z etc.), observed expected behavior.

Any chance you could add Gavin's requested performance test?

@gavinandresen
Copy link
Contributor

ACK; I'd still like hard numbers on the performance of the base64 code, but that's not a show-stopper for pulling this.

@alexwaters
Copy link
Contributor

ACK

@sipa
Copy link
Member Author

sipa commented Sep 30, 2011

There is a bit of discussion on the forums still; see https://bitcointalk.org/index.php?topic=6428.msg550155#msg550155

gavinandresen added a commit that referenced this pull request Sep 30, 2011
Sign and verify message with bitcoin address
@gavinandresen gavinandresen merged commit f4769e4 into bitcoin:master Sep 30, 2011
coblee referenced this pull request in litecoin-project/litecoin Jul 17, 2012
Sign and verify message with bitcoin address
@gpmn
Copy link

gpmn commented Feb 8, 2014

I need the pubkey which has been encoded in the signed message

But now it just feedback a true or false.I saw the code,but I don't like to copy it in golang again.

Besides others tell me, is there any way to got the pubkey from message?

@gpmn
Copy link

gpmn commented Feb 8, 2014

I wish verifymessage could feed back the pubkey if user supply an extra param

sanch0panza pushed a commit to sanch0panza/bitcoin that referenced this pull request May 5, 2017
in unit tests, ensure XTHIN service is enabled when we are testing it
kallewoof pushed a commit to kallewoof/bitcoin that referenced this pull request Oct 4, 2019
…arent chain

aba54b3 Make validatepegin default to true if has parent chain (Steven Roose)

Pull request description:

Tree-SHA512: 9b28426c0b00c6a31b70dfe906841069a1a3c8725357c3cb5e0d2e7eebe8d8c289033bb74f2b65effe8ff4a51965a60c654557a716a767ca6c7c9cdc13f28e96
lateminer pushed a commit to lateminer/bitcoin that referenced this pull request Jul 17, 2020
KolbyML pushed a commit to KolbyML/bitcoin that referenced this pull request Sep 4, 2020
* Updated from PIVX v3.1.1 (bitcoin#49)

* Merge bitcoin#524: Add blocksizenotify command

44e4d2e Add blocksizenotify command (Jeremy)

Tree-SHA512: 0deb5a883c5d52d0b4e4681fd5ea6c845363ede4299bb59f10a22b23f00aff4e5bb62a7954b752d7d33db5a422ec169f60360868296aa833849cc3e35145250b

* Merge bitcoin#528: Readme changes

42fa274 Readme changes (Sieres)

Tree-SHA512: d5112531283a9554fd6c01ba75bda532cf8cebffc98ea16e7432663f88a9fe1378ba40eb242e6daf8b1666ba1f276f885bdd7a4a8c3300a04cf855d2150749ec

# Conflicts:
#	README.md

* Merge bitcoin#518: [Wallet] Combine fees when possible and fix autocombine insufficient funds

eb603b4 [Wallet] Fix autocombine (warrows)
3f9e746 [Wallet] Combine change to output when possible & provide it in autocombine (warrows)
10426c7 [Wallet] Increase fee margin to up to 10% of autocombine send (warrows)

Tree-SHA512: e3452b0862b30c5c7f21697d12485e7b009dda3b4225e9685209425cb4a16baf35dd9d591b39ece077c3314f7c344f23b3810e5d0d840a8003c7d7d09f5c7ae4

# Conflicts:
#	src/wallet.cpp

* Merge bitcoin#523: Give high priority to zerocoinspends to make it into the next block.

84a4f91 Give high priority to zerocoinspends to make it into the next block. (presstab)

Tree-SHA512: d7bf91433a2059d8acc4b322dc21b98ca97af7e03d47a7225a8fe0ccb1265c625aaab758071d2b950b07b4d11814e1baca384c213c49215d976d7d9f323e3660

* Merge bitcoin#533: [Doc] Update OSX build notes: zmq, libevent, and notes to handle possible glibtoolize error

fde9f94 osx build notes: libzmq -> zmq in brew install, add libevent (Tim Uy)

Tree-SHA512: eb44a499c3f42da2a296161bc01be49cd63fbd928c513018010a564cd1192e1000beb1987d536f4ab93782cd2930527552108418e973448c80e6c5a59c2a78ef

# Conflicts:
#	doc/build-osx.md

* Merge bitcoin#532: [Depends] Update depends package versions.

bc4ffd5 [Depends] Update depends package versions. (Fuzzbawls)

Tree-SHA512: 814f769d65657e1bd02daca583dd5b63fc3ee9af53afcabeaafa661fe9e584c484ebfef7763a59d41ac81b4ade03a9d85d40b86b25ab873bf578cfe8063acdd6

# Conflicts:
#	depends/patches/zeromq/0001-fix-build-with-older-mingw64.patch

* Merge bitcoin#538: [Qt] Fix warning dialog popup for the Blockchain Explorer

50088b8 [Qt] Fix warning dialog popup for the Blockchain Explorer (Fuzzbawls)

Tree-SHA512: 5bef022ea6ebbe36dfd58ccc6e0c0b48a2f1268934f4fb0ec34100e05be38b325d0a832e650104b2e1e2741c9d118e7d9894e99dafeb2bf7b5a43f180e597fff

# Conflicts:
#	src/qt/blockexplorer.cpp

* Merge bitcoin#542: [Network] Remove vfReachable and modify IsReachable to only use vfLimited.

38ed737 Remove vfReachable and modify IsReachable to only use vfLimited. (Patrick Strateman)

Tree-SHA512: 8aa61f9abd8356522f3ba71b35497aac07e10333a39ff4b98bb635d1246e6b1be6b0ee0b236944fbfaa558af0e6c0cc219e540eacb2232bc05db393e4a72b088

* Merge bitcoin#526: Refactor ConnectBlock() to segregate state tracking items

00cd668 Refactor ConnectBlock() to segregate state tracking items from the 'Just Check' section. (presstab)

Tree-SHA512: 457019024cd8e786810611efb776dc16e12ed7cb71c9df79bc52d5cab9fe32d55cefaf1653d11e3d348b8008456c613c1fc5f17f53520de5c157a6cc861e8379

# Conflicts:
#	src/main.cpp

* Rename coin name

* Fixed compiling error

* Merge bitcoin#535: [core] Minor refacturing + unused variable removed

7633516 [core] Minor refacturing + unused variable removed (Mrs-X)

Tree-SHA512: aa43dec1f95b56bfd8ae51ec3ea8e1a23e6011262b39a2492b006802a9da7f52aec99afd3d4e4259067911557a986ba52e18838feb4c7b117345610c3234a16a

* Merge bitcoin#543: [RPC] Segfault pivx-cli getinfo while loading block index

336e3d8 [RPC] Segfault pivx-cli getinfo while loading block index (Mrs-X)

Tree-SHA512: 30bf65f7f527ba78bdcd0e2fef4da77f15a049f605a0cb3000b565c0e19e8dd274a137d1371435c0793617004591757b6b5e31029ed7a247d46bb6368cfec88b

* Merge bitcoin#539: [RPC] Allow watchonly coins to be shown for listunspent

c3671b5 Allow rpc listunspent to have options for watchonly transactions (blondfrogs)

Tree-SHA512: 5c998c1c5d0da8c4245662e528cbee5f70855fb941baa82524610d6f52810df0a70b6c29677f3f666e33995bf823778a58b2cb3e7b4182a2c644f1b383ba8506

* Merge bitcoin#544: [Trivial] Add debug info for CWallet::ReconsiderZerocoins().

993fcee Add debug info for CWallet::ReconsiderZerocoins(). (presstab)

Tree-SHA512: 494803e04778eec487ae35e12efd2cf3b5acdc094c98913998563d8386d98142b7525d6703a41dabba10e5126041d56c6ddd61e2130ae6f439d23439b7c6ee2c

* Merge bitcoin#552: [Trivial] Fix errant LogPrint in UpdateZPIVSupply

2d5aa5b [Trivial] Fix errant LogPrint in UpdateZPIVSupply (Fuzzbawls)

Tree-SHA512: b514a5aaa04b573af991c2eec518db0593dedd26e917f6275d308719b83059728d51fb9f50b721011393f4a73412998f88315d0587008a1f0cb940a272df6ceb

* Merge bitcoin#551: [Consensus] Require standard transactions for testnet

d3c60aa [Consensus] Require standard transactions for testnet (Fuzzbawls)

Tree-SHA512: ef0d1ed46623ce15d59f63f0c857fbdda7d9cf52825957f631548908cfe03d79f18b9fc5c7cfb01ff14e90b1a6e2f41e190bc64d7f4561a83b5ab2e287ef75a9

* Merge bitcoin#554: [Docs] Added release notes for autocombine and proxy GUI.

68e1a20 [Docs] Added release notes for autocombine and proxy GUI. (warrows)

Tree-SHA512: 59baa3bfe46489c288cc06d4dc9d3fc5486c9d2de5e41574333f1ada5438a9087f754a0c33eabf6bfb92b91ec71ae60464db48b7bed27c00cf7fb683e6e86904

* Merge bitcoin#558: [Core] Remove Gitan-OSX warning for High Sierra builds

390e49b [Core] Remove Gitan-OSX warning for High Sierra builds (Mrs-X)

Tree-SHA512: d914f13ff8f8b4d15334ba4aaea21fa43035489bb2c5932c168a6299095b4e85a9f1bd54cc85a287251956a24bfa384b1998ca051ebc4a75510e4568b891c3d8

* Merge bitcoin#447: [Consensus] Fix compilation with OpenSSL 1.1

094fa11 [Compilation] Add additional information to compile with unsupported SSL (warrows)
903c4f1 [Consensus] Allow for compilation with OpenSSL 1.1 (warrows)

Tree-SHA512: 9c843279cb889e72bb44b019a7859510f4fe39f3a358f18c4d09a35a9bede1d940a07c2c3781f388fdab42bd0e5acd51160e5e0b07a33050e293214b3e4db0a4

* Merge bitcoin#559: [Bug] Segfault with -enableswifttx=0 / -enableswifttx=false

0bc66f3 [Bug] Segfault with -enableswifttx=0 / -enableswifttx=false (Mrs-X)

Tree-SHA512: e71de283ae5708bc7f844ebc7d5cf2a62a2c3928d5164661d66ed0b770eccfa9f84cf69de3d7bdd1dee6160439d916563045dc7d5173e0d70e6c7ec51ac1cbb7

* Merge bitcoin#562: [Wallet/RPC] Add argument to mint zerocoin from specific UTXO

a5123c2 [Documentation] Improve help for mintzerocoin rpc command (warrows)
9a0b734 [Wallet/RPC] Add argument to mint zerocoin from specific UTXO (warrows)

Tree-SHA512: fb5056eb7d81e06b66ced7ea8e92f053a04c0ad71df0eb84a08180ced2edd4313c5fa15fde7345dd1d8f65b1c93480e141049a570abec9dd7c14ecb6f8cde0e3

# Conflicts:
#	src/rpcwallet.cpp

* Merge bitcoin#568: [Qt] Connect automint icon to the UI automint setting change

28466e2 [Qt] connect automint icon to the UI automint setting change (warrows)

Tree-SHA512: 1107b842a0d0a9a7044922a6c997b05fb030dc5e6014217f09e6b769ad685bd5b7bdc32699eb2b6514259d719bdef8bc89b2fe1dd5b59beb0c64185a00783501

* Merge bitcoin#571: [Qt] Update privacy tab info about zeromint on config change

c0ffe24 [Qt] Update privacy tab info about zeromint on config change (warrows)

Tree-SHA512: 54016bef392a010541d1ab3373a0144100dc0b99f3cfed804b395dc0ab08f60bb93c22b52decdfbbabd6e5e39ffcba1d80bd23a92fb9986c722062de1f47ddd7

* Merge bitcoin#570: [Wallet] Add a check on zPIV spend to avoid a segfault

b8185ae [Wallet] Add a check on zPIV spend to avoid a segfault (warrows)

Tree-SHA512: 960c0d06a5fc040e290be334224fd224cf78f698cc99e4db7b618f25085091e19b2e02d906114008bb2e6315d343a46960b5f1f817c5975ac46d62fe498a8843

* Merge bitcoin#572: [Qt] Refresh zPIV balance after resetting mints or spends

992763b [Qt] Refresh zPIV balance after resetting mints or spends (warrows)

Tree-SHA512: bea53d1632e6410144613f4a83de3ed232dc21c05b5eb091b5f6dcde55f67057190708d3493b54a7b243a60c6701054bdc85239625c41d3d5a32c630192b4b54

* Staking zPiv.

# Conflicts:
#	src/chainparams.cpp
#	src/kernel.cpp
#	src/main.cpp
#	src/main.h
#	src/miner.cpp
#	src/qt/forms/zpivcontroldialog.ui
#	src/qt/transactionrecord.cpp
#	src/qt/transactiontablemodel.cpp
#	src/wallet.cpp
#	src/wallet.h
#	src/walletdb.cpp

* Fixed compiling error

* Add libzerocoin::SpendType enum.

This allows for more transaction types using zPIV, including using zPIV without actually spending it (for example if needing to show proof of zPIV for voting or for masternode collateral).

* Validate that the correct spend type is used for zPIV spend and zPIV stake.

* V2 zPIV must have serials that have the 1st byte as 00.

Requiring that v2 zPIV use serials that have the first byte as 00 will make zPIV v2 serials unique from v1 serials. This prevents a 'serial troller' from reminting with someone elses v2 serial and simply changing the version flag to v1 when they spend the zerocoin, which would negate any of the additional v2 requirements.

It is unlikely that many (if any) serials were minted with the first byte as 00. Note that if there are existing v1 zPIV with 00 prefixed serials, it would make them unspendable since the owner would not have an associated private key.

* change to using first nibble as 0xF for v2 serial mark.

* Switch to a new accumulator with the correct modulus.

# Conflicts:
#	src/libzerocoin/Commitment.cpp
#	src/miner.cpp
#	src/wallet.cpp

* Fixed compiling error

* Change zpiv stake to use serial hash.

# Conflicts:
#	src/init.cpp
#	src/qt/transactiontablemodel.cpp
#	src/wallet.cpp

* Fixed compiling error

* Add description for -pivstake= and -zpivstake=.

* Make RPC export/import zerocoins compatible with v2.

* [P2P] Update ActiveProtocol for 70913 protocol version

# Conflicts:
#	src/main.cpp
#	src/version.h

* [Wallet] Add missing variable to 2 AvailableCoins() calls

This is mostly depreciated code since the removal of coinjoin style
privacy (Obfuscation), but the missing boolean variable in these two
calls was causing compiler warnings on newer versions of gcc for always
evaluating to true.

The use of a static `false` was taken from upstream DASH.

* [zPIV] Adjust testnet v2 starting block

* Fix coinbase check. Add override specifiers. Proper init for SetDec.

* [Budget] Change finalization collateral to 5 PIV

* Merge bitcoin#513: [core] Fix masternode broadcast for networks != MAINNET

bc8be7c [core] Fix masternode broadcast for networks != MAINNET (update) (Mrs-X)

Tree-SHA512: de1a713e166a45d26848d45d656ab36d68dc0d52810e0a66865c635442d4ac75a5602dbf39455b986356f17d3552e697607bb4464657b727ebaef0a8580f5657

# Conflicts:
#	src/activemasternode.cpp
#	src/masternode.cpp
#	src/masternode.h

* implemented masternode_broadcast
# Conflicts:
#	src/activemasternode.cpp
#	src/activemasternode.h
#	src/masternode.cpp
#	src/masternode.h
#	src/masternodeman.cpp
#	src/masternodeman.h
#	src/rpcserver.cpp
#	src/rpcserver.h

* Updated fundamental node

* broke up the RPC commands in create/decode/relay
# Conflicts:
#	src/masternode.cpp
#	src/rpcserver.cpp
#	src/rpcserver.h

* Updated fundamental node

* restore protocolVersion (lowered for testing purposes)
# Conflicts:
#	src/masternode.cpp

* factor out GetStrMessage() - define MIN_PEER_MNANNOUNCE
# Conflicts:
#	src/masternode.cpp
#	src/masternode.h

* Updated fundamental node

* use error() instead of LogPrintf()
# Conflicts:
#	src/masternode.cpp

* Style Changes

- don't print masternode ip in the logs
- join fHelp and wrong command clauses
- use more descriptive names for pubkeys variables
- change "result" to "success" and make it a boolean value
- use array for resultsObj in createmasternode all
- use lowercase for json objects
- add detailed output example to decodemasternodebroadcast help
- fix rpcserver.cpp indentation
# Conflicts:
#	src/masternodeman.cpp
#	src/rpcserver.cpp

* Updated fundamental node

* [P2P] Add new spork key and handling logic

- New spork key added
- Sporks signed with the old key are valid until a pre-determined time
- No NEW spork changes can be signed with the old key

# Conflicts:
#	src/chainparams.cpp
#	src/spork.cpp

* [Wallet] use GetTime() for nStartupTime

`nStartupTime` is initalized before the P2P network initialization takes
place, making the use of `GetAdjustedTime()` cause a lock ordering
segfault under certain situations.

* Clean up lockorder data of destroyed mutexes

# Conflicts:
#	src/sync.h

* Clean up apparent locking issues

These locks address compiler warnings when compiling with clang's
`-Wthread-safety-analysis`

* Remove extra typedef

This slipped in from some other testing i was doing, shouldn't be
included yet.

* [Build] Add missing files to src/Makefile.am

These were left out, and break Travis/Gigian building due to them not
being included in the dist tarball.

* Load mint version based on serial parsing.

* Fix typo in ban reason output

* [RPC] Fix spork command input length

Sporks are uint64, but the input variable was being parsed as an int,
causing an out-of-range error for larger values.

* [Qt] Show correct data for MN reward on a zPIV stake block

* [Wallet] Stop removing spent zPIV hashes from map

* [QT] Fix zPIV stake transaction record

# Conflicts:
#	src/qt/transactionrecord.cpp

* GetOldStrMessage() / GetNewStrMessage(): check against both
# Conflicts:
#	src/masternode.cpp
#	src/masternode.h

* Merge bitcoin#513: [core] Fix masternode broadcast for networks != MAINNET

bc8be7c [core] Fix masternode broadcast for networks != MAINNET (update) (Mrs-X)

Tree-SHA512: de1a713e166a45d26848d45d656ab36d68dc0d52810e0a66865c635442d4ac75a5602dbf39455b986356f17d3552e697607bb4464657b727ebaef0a8580f5657

# Conflicts:
#	src/activemasternode.cpp
#	src/masternode.cpp
#	src/masternode.h

* Sign "old" strMessage before nBlockZerocoinV2
# Conflicts:
#	src/masternode.cpp

* minor style change

(replace 'LogPrintf'+'return false' with 'return error')
# Conflicts:
#	src/masternode.cpp

* Fix zPIV mint databasing.

* [Budget] Finalization fixes

# Conflicts:
#	src/masternode-budget.cpp

* Working model for deterministic zPIV.

Deterministic zPIV minting. Unit test added to zerocoin_implementation_tests.cpp. This deterministic generation model will likely be changed with further testing.

Update mapSerialHashes each time SelectStakeCoins() is called.

Better tracking of zPIV mint status updates.

- Removed several walletdb ListMintedCoins reads and replaced them with iterating over the serialhashes map.
- Disconnect block will now update a mint's status that is part of the disconnected block.
- Shorten CTxIn.ToString() print out when it is a zerocoinspend.
- Remove several stake logging items that were flagged with any debug type.
- Use a larger mintpool of 20 mints which will be more likely to see any blockchain mints that are ours.
- Refactor zPIVWallet::SyncWithChain() to not get stuck in an infinite loop.
- Remove locking of cs_main on GetUnconfirmedZerocoinBalance() because it now loops over mapSerialHashes and does not grab any chain data.
- LOCK cs_wallet in CreateCoinStake() once a stake has been found.
- LOCK cs_main when generating accumulator witness.

# Conflicts:
#	src/Makefile.am
#	src/init.cpp
#	src/wallet.cpp

* Fixed compile error and coin name.

* Add zpivTracker.

Add mint maturity filtering.

Directly add wallet transactions from zpiv found on IBD.

Fix ResetZerocoins.

Use pubcoin hashes for mintpool instead of CBigNum.

CBigNum may be a bit slower to iterate.

# Conflicts:
#	src/Makefile.am
#	src/init.cpp
#	src/wallet.h

* Fixed compile error

* Database mints generated by the mintpool.

- Load all generated mints on initialization. Then remove mints from the mintpool that are already known.

* Do not database zerocoinmint too early.

- A mint should only be recorded when it is added to the blockchain, not when it is simply checked for validity.
- Remove a database of zPIV spend that should not be done as well (it is done later in connectblock).

* Check for existence of zpivTracker in ListMintedCoins().

* Use unique databasing for dzpiv and do not database private info.

-Feed majority of zpiv read/write/update operations through zpivTracker.

fix

# Conflicts:
#	src/denomination_functions.cpp
#	src/main.cpp
#	src/qt/privacydialog.cpp
#	src/qt/zVitcontroldialog.cpp
#	src/wallet.cpp
#	src/wallet.h
#	src/walletdb.h
#	src/zvittracker.cpp

* [Qt] Fix zPIV transactions details

* [Core] Guard against a segfault in serialization

* [GUI] Update GUI depending on SPORK_16 without restart

# Conflicts:
#	src/qt/privacydialog.cpp

* Fixed coin name

* [Staking] Fix MintableCoins and fMintableCoins

This fixes an edge case where `fMintableCoins` evaluates to `false`
during initialization, which was causing an infinate loop in the staking
thread.

Also refactor `MintableCoins()` to allow for cases when PIV balance is 0
but zPIV balance is not (and wallet has eligible zPIV mints)

# Conflicts:
#	src/miner.cpp

* [Wallet] Fix GetImmatureZerocoinBalance

need to use `GetUnconfirmedZerocoinBalance()` instead of
`GetUnconfirmedBalance()` here.

* [P2P] Guard CInv::ToString against unknown types

* Fix parsing of QT transaction records on fresh import of seed.

# Conflicts:
#	src/qt/transactionrecord.cpp

* Fixed compile error

* Correct confirmation count on qt transaction records.

* Use 1 second GUI update time.

* Handle generating witness from mint less than checkpointed value.

* Fix segfault on chainparams.

* Remove AddToWallet() from miner.cpp.

* Remove uneeded lock on createcoinstake().

* Make zPiv wallet consistently use nCount as the last count used and remove comparison against nCountLastGenerated that resulted in adding to the mintpool every time the wallet got opened.

# Conflicts:
#	src/zvitwallet.cpp

* Make sure mints are added to zerocoinDB even when it is a zcspend.

* Add -reindexzerocoin arg to wipe zerocoindb and reindex blockchain.

# Conflicts:
#	src/init.cpp

* Fix mature zPIV balance calculation

Overview and Privacy tabs were missing the subtraction of unconfirmed
zPIV in their calculation.

# Conflicts:
#	src/qt/overviewpage.cpp

* Don't exit early in ReconsiderZerocoins

Only exit if **BOTH** listMints and listDMints are empty.

* Fix timing inconsistency with mature/unconfirmed zpiv balances

This fixes a timing issue where a zPIV mint that had not yet been
included in a block was being incorrectly accounted for in the
"Mature/Spendable/Available" balance until it was included in a block.

Now, the new mint is correctly accounted as "Unconfirmed" right away.

* Load only the mintpool for the current seed, prevent the generation of mints already in the mintpool, and prevent the zpivwallet count from being updated when an error occurs during zpiv minting.

* Fix MintPool logprint.

* Do not try to add all zpiv stakes on init.

* Fix QT transaction record when staking zpiv that was not deterministic.

- Also add full information about merkle tree to the WalletTx.

# Conflicts:
#	src/qt/transactionrecord.cpp

* zpivTracker better check for orphans. Also no redundant adding wtx's.

* Remove balance check from CreateCoinStake().

* Use correct params for spend when checking serial in miner.

* Fix checking if mint is in chain.

* Fixed compile error

* [Qt] Properly set involvesWatchAddress in the transaction record

This prevents "the eye" from watching you when it shouldn't

* [Qt] Fix mn reward showing as zPIV stake

# Conflicts:
#	src/qt/transactionrecord.cpp

* [Qt] Fix normal PIV transaction record amount

* [Wallet] Fix compilation on windows

* Encryption of zpiv seeds

seed routed through wallet before db to be encrypted (if IsCrypted())

when crypting, the hash of the vMasterKey is used as nIV

# Conflicts:
#	src/init.cpp
#	src/qt/multisigdialog.cpp
#	src/walletdb.cpp
#	src/walletdb.h
#	src/zvitwallet.cpp

* Fixed compile error

* [Qt] Fix another instance of a wayward eye

# Conflicts:
#	src/qt/transactionrecord.cpp

* [Budget] Add debug to find 'Couldn't find opReturn' error

* [Budget] Fix 'Couldn't find opReturn' error 1

# Conflicts:
#	src/masternode-budget.cpp

* Updated fundamental node

* [Budget] Remove obsolete finalized budgets + better debug info

* Updated fundamental node

* [Budget] Add debug info to CBudgetManager::IsTransactionValid()

* Updated fundamental node

* [Budget] Add debug info to CFinalizedBudget::IsTransactionValid()

* Updated fundamental node

* Mark orphan zPIV stake input as not used.

Change listMints() to std::set. Add mapPendingSpends to track spends.

-Change to set to reduce BigO complexity.
-add mapPendingSpends to keep track of spends that were made so that they do not get considered as falsly marked as not used while they are in the mempool.

Check mempool for pending spends.

# Conflicts:
#	src/miner.cpp
#	src/qt/privacydialog.cpp
#	src/qt/zVitcontroldialog.cpp

* Fixed compile error

* [RPC] Fix clang error with vMintsToFind

* Handle zPIV seed db transition.

# Conflicts:
#	src/walletdb.cpp
#	src/walletdb.h

* Fixed compile error

* [Qt] Fix zPIV spend's nCount

Actually increment `nCount` in the loop when displaying the transaction
details so it doesn't stay at `0`.

* Require v1 zPIV to use security level 100.

* More description for spend that fails without using zpiv control dialog.

# Conflicts:
#	src/wallet.h

* Fixed compile error

* Add better help text to all zerocoin related RPC commands

Each command now includes the following:
- Numbered arguments (if any)
- Result example
- Sample call execution

`listzerocoinamounts` was also changed to return propper JSON

# Conflicts:
#	src/rpcwallet.cpp

* Fixed compile error

* Make all RPC commands use the same styling format

Added some missing help output, used EnsureWalletIsLocked where
applicable (more in the next commit), and improved code readability for
the help sections for each command.

# Conflicts:
#	src/rpcdump.cpp
#	src/rpcmisc.cpp
#	src/rpcwallet.cpp

* Teach EnsureWalletIsUnlocked() to accept unlock for anon only

Add an optional bool paramater to `EnsureWalletIsUnlocked()` that
defaults to `false` (current bahavior). If passed `true`, then only
require a partial unlock.

* [Staking] Fix Stake Split Threshold for PIV staking

This reintroduces the calculation on wither or not the wallet should
"split" the PIV stake input.

Note: zPIV staking never splits, and it shouldn't.

* [tests] Fix zPIV determinism test

* Make zpiv unarchiving work with zpivtracker.

* [Budget] Fix double-payment issue and replace "zPiv" by "zPIV" strings

# Conflicts:
#	src/init.cpp
#	src/libzerocoin/Denominations.cpp
#	src/main.cpp
#	src/masternode-budget.cpp
#	src/miner.cpp
#	src/qt/forms/privacydialog.ui
#	src/qt/pivxstrings.cpp
#	src/qt/privacydialog.cpp
#	src/qt/transactiontablemodel.cpp
#	src/qt/transactionview.cpp
#	src/rpcwallet.cpp
#	src/wallet.cpp

* Updated fundamental node

* [Budget] Additional log for Budget debugging

# Conflicts:
#	src/masternode-budget.cpp

* Updated fundamental node

* [Crypto] Bignum getcompact return correct result

* [Crypto] Remove BigNum constructor implicitly calling SetHex

* [Crypto] Fix %= and /= bignum operators

* [Crypto] minor changes on BigNum uses

* dzpivstate RPC call. Displays state of deterministic zpiv wallet.

* Do not archive zpiv orphans on IDB.

- Do not archive zpiv orphans on IDB. This should handle most problems with zpiv being archived when resyncing.
- Speed up CzPIVWallet::SyncWithChain() by reducing calls to GetTransaction().
- Speed up CzPIVWallet::SyncWithChain() by adding a LOCK(cs_main).
- Do not remove mints from the mint pool from init, let the syncing process do it naturally.

* Make sure that mintpool checks all mints.

* Readd zPIV tx's during -zapwallettxs

# Conflicts:
#	src/init.cpp

* Fix segfault on importzerocoins RPC.

* More efficient scanning during zapwallettxes.

# Conflicts:
#	src/init.cpp

* Add multithreading to RPC searchdzpiv.

* Save searched dzpiv to DB. Less verbosity.

* [Budget] Improved double-payment-handling.

# Conflicts:
#	src/masternode-budget.cpp

* Updated fundamental node

* [Wallet] Fix ListMints when returning only unused mints

Needed to move up the logic/checks for filtering out unused mints to get
a propper output with `exportzerocoins false`.

* custom wallet backup paths

# Conflicts:
#	src/wallet.cpp

* Fixed compile error

* Fix first run initialization of zwallet with encrypted wallet.dat file

When running the client with a `wallet.dat` file that has never
initialized it's zwallet or dzPIV, there is an incorrect code pathway
that leads to the dzPIV seed hash never being written to the wallet
file. Instead, we copy the seed generation code into `crypter.cpp` which
will allow for proper dzPIV seed generation upon first unlock.

* Use smart pointers to keep better track of memory.

- Convert the raw ptr to zpivTracker in CWallet to unique_ptr.
- Change the CheckProofOfStake() process to use unique_ptr.

* [Fix] fix translation build error

# Conflicts:
#	src/qt/walletmodel.cpp

* Do not rely on chainActive with contextual checks.

This can lead to situations of rejecting valid blocks that are from a competing fork.

* Use unique_ptr for stake input list.

* [Wallet] Refactor ListMints to more quickly detect orphan/failed stakes

* [Staking] Exit CreateCoinStake loop if wallet locked/shutdown

If the wallet gets locked or a shutdown is requested in the middle of
the stakeinput loop, there is no sense in continuing.

* [Output] Log network message receives as "net" debug category

These messages spam the log constantly and should be classified in the
"net" debug category instead of uncategorized.

* Remove/replace logging that is not necessary.

* [Budget] Handling of too few votes for finalized budget fixed

* Updated fundamental node

* Fix compilation

* Add minimum zPIV maturity consideration to GetMintMaturityHeight().

The zPIV should not be considered mature unless it has 1 mint that occured after it AND the mint is at least two checkpoints deep.

* Factor out components of ListMints() so that it is more legible.

* Simplify and document -custombackupthreshold

Also move -backuppath and -zpivbackuppath to more appropriate areas in
the help output.

# Conflicts:
#	src/init.cpp

* Cleanup log spam & add additional check to archive zpiv stake orphans.

My log was showing stake orphans getting stuck with the message "Found orphanded mint txid=.....". This is supposed to ignore it for the existing iteration and then clean it up next time ListMints() is called. This was not happening to stake transactions, so logic is added to archive the mint if it is coinstake.

* [Budget] Spread out voting on finalized budget for testnet also.

# Conflicts:
#	src/masternode-budget.cpp

* Updated fundamental node

* Display -backuppath, -zpivbackuppath, -custombackupthreshold in wallet repair menu

also fix segfault when permission denied since trying to create directories before checking permissions

* Guard against non-integer input for GUI's custombackupthreshold

* [Core] Initialzed seed for rand()   (trivial change)

* Change spork key validity period. Minor spork code refactor.

* Merge bitcoin#583: [Docs] Update release notes for v3.1.0

53fc2dd [Docs] Update release notes for v3.1.0 (Fuzzbawls)

Tree-SHA512: 2df4411b3376aea24956f8c3e602bece66c92f6f74488bb5a22005bfaa7fab272a93417a76c520aae26a29dd2714270b73f72f3e7922377410a870ee68669c1b

# Conflicts:
#	doc/release-notes.md

* Merge bitcoin#584: [Doc] Update to zPIV staking and Thank you's

e46e49b Update to zPIV staking and Thank you's (Sieres)

Tree-SHA512: 21a43784106ea774e362c2b7d0ca7c1dfb8cb28460a9d7b56057c8becb68599b263510e6f838c441cef13835b722af49c497707b02c80f874432f8c5e7c2e8a6

# Conflicts:
#	doc/release-notes.md

* PIVX Core v3.1.0

# Conflicts:
#	configure.ac

* [Bug] Fix CMasternodeConfig::read

rebase from upstream. Windows doesn't initialize CService properly
during startup before the masternode.conf file is read.

# Conflicts:
#	src/masternodeconfig.cpp

* Updated fundamental node

* Fixed compile error

* Bump version to 3.1.0.1

Bugfix for Windows MN Controllers

* Merge bitcoin#593: 3.1.0.2 backport

43f6f1b Add unit test for budget value. (presstab)
9ee7d98 Update protocol to 70914. (presstab)
ebc4527 [Budget] Fix wrong budget amount (Mrs-X)

Tree-SHA512: 6d813ee5e9cc548ffd8b3c816f669a9b79a6b8118de73941fd3fc6d7be46ae2dbfa935d94d1b62c32c1700165ad5a637f87eeaa8cd36927d4d281193b9c84ada

# Conflicts:
#	src/version.h

* Bump version to 3.1.0.2

* Bump to 3.1.0.3

one-line change for `listtransactions`, this won't be a full release
with gitian builds, but a tag that exchanges/services can use as a
fixed-point reference if they need `listtransactions` compatibility.

* Merge bitcoin#584: [Doc] Update to zPIV staking and Thank you's

e46e49b Update to zPIV staking and Thank you's (Sieres)

Tree-SHA512: 21a43784106ea774e362c2b7d0ca7c1dfb8cb28460a9d7b56057c8becb68599b263510e6f838c441cef13835b722af49c497707b02c80f874432f8c5e7c2e8a6

# Conflicts:
#	doc/release-notes.md

* Merge bitcoin#585: [Doc] Change aarch assert sign output folder

a810714 [Doc] Change aarch assert sign output folder (Warrows)

Tree-SHA512: 1b454a87f526ec8edf96f28952f4dccce444bbedd7512a21188d155ab5e57e494d8306529eccc0a280417895dc0e4b7718a233b883cfcffd84fd89f5c9d4e280

# Conflicts:
#	doc/release-process.md

* Merge bitcoin#595: [Tests] Fix chain ordering in budget tests

3a6b152 [Tests] Fix chain ordering in budget tests (Fuzzbawls)

Tree-SHA512: c94c7511d088bffc9568045b48b5fac8f10cceb4561e1d3a58fda3cb64227aee163280e9ad553157b206bd36257f516c34c697e8df4eeea153ffc8a44753a17a

* Merge bitcoin#596: [Build] Bump master to 3.1.99

5d73f63 [Build] Bump master to 3.1.99 (Fuzzbawls)

Tree-SHA512: 7d421685e1f3b90dfc4f536b679436f0d8bbd82614996aa7e76541ff9ad572e729063fb699d70778ea3f4acb2576713ebd3bbb49966d8e82a79945723419b256

# Conflicts:
#	configure.ac
#	contrib/gitian-descriptors/gitian-aarch64.yml
#	contrib/gitian-descriptors/gitian-linux.yml
#	contrib/gitian-descriptors/gitian-osx.yml
#	contrib/gitian-descriptors/gitian-win.yml

* Merge bitcoin#597: [Wallet] Write new transactions to wtxOrdered properly

b2fdbbf [Wallet] Write new transactions to wtxOrdered properly (Fuzzbawls)

Tree-SHA512: b0bd54c9bd7fb44c18d7d4d84213b96b48dc22b35825c0a0f268b3f99086e8beeea7de5aed07cc575ee7dae0ce095e0438eb7e89454bae54551478ea5f81661d

* [Refactor] Delete secp256k1 folder for subtreefication

# Conflicts:
#	src/secp256k1/.gitignore
#	src/secp256k1/.travis.yml
#	src/secp256k1/COPYING
#	src/secp256k1/Makefile.am
#	src/secp256k1/README.md
#	src/secp256k1/TODO
#	src/secp256k1/configure.ac
#	src/secp256k1/include/secp256k1.h
#	src/secp256k1/libsecp256k1.pc.in
#	src/secp256k1/obj/.gitignore
#	src/secp256k1/src/bench_inv.c
#	src/secp256k1/src/bench_sign.c
#	src/secp256k1/src/bench_verify.c
#	src/secp256k1/src/ecdsa.h
#	src/secp256k1/src/ecdsa_impl.h
#	src/secp256k1/src/eckey.h
#	src/secp256k1/src/eckey_impl.h
#	src/secp256k1/src/ecmult.h
#	src/secp256k1/src/ecmult_gen.h
#	src/secp256k1/src/ecmult_gen_impl.h
#	src/secp256k1/src/ecmult_impl.h
#	src/secp256k1/src/field.h
#	src/secp256k1/src/field_10x26.h
#	src/secp256k1/src/field_10x26_impl.h
#	src/secp256k1/src/field_5x52.h
#	src/secp256k1/src/field_5x52_asm.asm
#	src/secp256k1/src/field_5x52_asm_impl.h
#	src/secp256k1/src/field_5x52_impl.h
#	src/secp256k1/src/field_5x52_int128_impl.h
#	src/secp256k1/src/field_gmp.h
#	src/secp256k1/src/field_gmp_impl.h
#	src/secp256k1/src/field_impl.h
#	src/secp256k1/src/group.h
#	src/secp256k1/src/group_impl.h
#	src/secp256k1/src/java/org/bitcoin/NativeSecp256k1.java
#	src/secp256k1/src/java/org_bitcoin_NativeSecp256k1.c
#	src/secp256k1/src/java/org_bitcoin_NativeSecp256k1.h
#	src/secp256k1/src/num.h
#	src/secp256k1/src/num_gmp.h
#	src/secp256k1/src/num_gmp_impl.h
#	src/secp256k1/src/num_impl.h
#	src/secp256k1/src/scalar.h
#	src/secp256k1/src/scalar_4x64.h
#	src/secp256k1/src/scalar_4x64_impl.h
#	src/secp256k1/src/scalar_8x32.h
#	src/secp256k1/src/scalar_8x32_impl.h
#	src/secp256k1/src/scalar_impl.h
#	src/secp256k1/src/secp256k1.c
#	src/secp256k1/src/testrand.h
#	src/secp256k1/src/testrand_impl.h
#	src/secp256k1/src/tests.c
#	src/secp256k1/src/util.h

* Merge commit '8a901f93d505af3516353837600fd71a0c53a692' as 'src/secp256k1'

* [Crypto] Switch from openssl to secp256k1 for consensus

[Refactoring] Moved and removed some stuff
-Removed duplicated arith uint files
-Removed unused variables
-Move keystore impls to .cpp instead of .h
-Removed useless function in key.cpp
[Crypto] fix bip38 compilation for latest libsecp256k1
[Compilation] Change compilation and some code to use libsec instead of sslcrypto
[Crypto] Update keys to comply with latest secp256k1 lib

# Conflicts:
#	src/Makefile.am
#	src/arith_uint256.cpp
#	src/arith_uint256.h
#	src/eccryptoverify.cpp
#	src/eccryptoverify.h
#	src/ecwrapper.cpp
#	src/ecwrapper.h
#	src/key.cpp
#	src/key.h
#	src/pubkey.cpp
#	src/pubkey.h
#	src/uint512.h

* [Tests] Add new auto generated script tests

* [Crypto] Bring back function CKey.SetPrivKey for zPIV

* Fixed compile error

* [Crypto] Add ctx initialisation for bip38

* [Tests] Fix chain ordering in budget tests

check testnet params first, then check mainnet so as to not interfere
with subsequent unit tests that rely on mainnet params.

Also clean up include ordering.

Github-Pull: bitcoin#595
Rebased-From: 3a6b152

* Only enable/disable PrivacyDialog zPIV elements if needed.

Currently the zPIV buttons are constantly updated to enabled or disabled even if they are already in the correct state.

Github-Pull: bitcoin#600
Rebased-From: 2b76f31

# Conflicts:
#	src/qt/privacydialog.cpp

* Fix spending for v1 zPIV created before block 1050020.

The transition to v2 zPIV and reset of the accumulators caused blocks 1050000 - 1050010 to be accumulated twice. This was causing many v1 zPIV to not create valid witnesses. This problem is fixed by double accumulating blocks 1050000-1050010 when creating the witness.

Github-Pull: bitcoin#603
Rebased-From: abee3d9

* Add getaccumulatorvalues RPC.

Return the accumulator values associated with a particular block height.

Github-Pull: bitcoin#603
Rebased-From: 8a6d425

* Remove log spam and ensure proper zpiv version is used.

Github-Pull: bitcoin#603
Rebased-From: ccf6c77

# Conflicts:
#	src/wallet.cpp

* [GUI] Fix wrongly displayed balance on Overview tab

Github-Pull: bitcoin#598
Rebased-From: 6030877

# Conflicts:
#	src/qt/overviewpage.cpp

* Fixed Multisend dialog to show settings properly

Multisend will display a message if it has only been enabled for masternodes and if its enabled for both (Displaying this didnt work if multisend was only enabled for masternodes)
Github-Pull: bitcoin#580
Rebased-From: 40baa7d

# Conflicts:
#	src/qt/multisenddialog.cpp

* Update multisenddialog.cpp
Github-Pull: bitcoin#580
Rebased-From: 8dca829

# Conflicts:
#	src/qt/multisenddialog.cpp

* [Build] Remove unnecessary BOOST dependency

Github-Pull: bitcoin#605
Rebased-From: da3a6a5

* [Budget] Make sorting of finalized budgets deterministic

Github-Pull: bitcoin#608
Rebased-From: 93e637f

* Updated fundamental node

* Remove zPIV code from main.cpp

Github-Pull: bitcoin#609
Rebased-From: 873ef19

# Conflicts:
#	src/Makefile.am

* Renamed zpivchain to zvitchain

* Fixed compile error

* [Output] Properly log reason(s) for increasing a peer's DoS score.

Many of the MN related DoS checks had their log messages output only if
the client was running in debug mode, leading to unexplained peer bans.

Github-Pull: bitcoin#611
Rebased-From: fe14f5f

# Conflicts:
#	src/masternode-budget.cpp
#	src/masternodeman.cpp

* [Build] Make sure Boost headers are included for libzerocoin

Custom boost locations not using pkg_config can result in a header
include not being found when compiling the libzerocoin library. This
quick fix ensures that the `BOOST_CPPFLAGS` are explicitely included.

Github-Pull: bitcoin#622
Rebased-From: 811785c

# Conflicts:
#	src/Makefile.am

* Update zPIV stake set more frequently.

Github-Pull: bitcoin#617
Rebased-From: 355e2d3

* Lower stake hashdrift to 30 seconds.

Lower the hash drift which should reduce the amount of orphans.

Github-Pull: bitcoin#617
Rebased-From: 4c862f2

* [UI] Remove useless help button from QT dialogs

Github-Pull: bitcoin#629
Rebased-From: 4dc636c

# Conflicts:
#	src/qt/askpassphrasedialog.cpp
#	src/qt/zVitcontroldialog.cpp

* Merge bitcoin#521: [GUI] Make "For anonymization and staking only" checked by default

4e5b73e [GUI] Make "For anonymization and staking only" checked by default (Mrs-X)

Tree-SHA512: 53d5aa663269efdb82cb2d8961f2eae4aebc03a6d96d15d990b357385584e365935f012eb9410b81de891a1d1ed75fbfe88937b2e87df12db148b1d6e3c015a5

# Conflicts:
#	src/qt/askpassphrasedialog.cpp
#	src/qt/masternodelist.cpp
#	src/qt/walletview.h

* Fixed compile error

* [Wallet] Add some LOCK to avoid crash

Github-Pull: bitcoin#625
Rebased-From: ed23d0d

* [Qt] Show progress percent for zpiv reindex operations

`-reindexaccumulators` and `-reindexzerocoin` can take a considerable
time to complete depending on system hardware. Lets show a progress percent
 similar to `VerifyDB()` on the splashscreen.

Github-Pull: bitcoin#612
Rebased-From: 48e502a

# Conflicts:
#	src/main.cpp

* Guard against division by zero for reindex zerocoin/accumulators

in the event that the local chainActive is equal or below that of the
relevant zerocoin block heights, there is nothing to do, so bypass
the internal process.

Github-Pull: bitcoin#612
Rebased-From: bed79e2

# Conflicts:
#	src/main.cpp

* Move ReindexAccumulators() call to be inside parent conditional

Not much point in checking if the listAccCheckpointsNoDB list is empty
outside of when the wallet is started using `-reindexaccumulators`, as
it is always empty outside of that case.

Github-Pull: bitcoin#612
Rebased-From: 5127486

# Conflicts:
#	src/init.cpp

* [Travis] Add separate job to check doc/logprint/subtree

Break out a new job to do the basic linting that check-dock.py and
logprint-scanner.py did.

Also add new scripts to check the sanity of
any git subtrees and to check that new pull requests don't contain any
trailing whitespace.

Also, remove the outdated slack notification callback

Github-Pull: bitcoin#639
Rebased-From: 6f695b5

# Conflicts:
#	.travis.yml

* [Main] Write to the zerocoinDB in batches

instead of using a separate write operation for each and every bit of
data that needs to be flushed to disk, utilize leveldb's batch writing
capability.

Github-Pull: bitcoin#636
Rebased-From: cd672cd

* Remove unnecessary whitespaces

Github-Pull: bitcoin#646
Rebased-From: a554259

# Conflicts:
#	src/qt/privacydialog.cpp

* [Utils] Add copyright header to logprint-scanner.py

Github-Pull: bitcoin#649
Rebased-From: 79d618f

* [Doc] Change aarch assert sign output folder
Github-Pull: bitcoin#585
Rebased-From: a810714

# Conflicts:
#	doc/release-process.md

* Check whether tx is in chain in ContextualCheckZerocoinMint().

Github-Pull: bitcoin#610
Rebased-From: c4141aa

* Merge bitcoin#651: [Doc] Release notes for v3.1.1

6bdef7a [Doc] Release notes for v3.1.1 (Fuzzbawls)

Tree-SHA512: 8fb6c3ef52064b5542c5acdd2b93165fd2f1054b9e2ba607fcdfde3c5c4bbd6e6b8f05ac2fff53e97791c23be6366d60af1957e6e76786daecad591d3d4f8f9b

# Conflicts:
#	doc/release-notes.md

* Bump version to 3.1.1

# Conflicts:
#	configure.ac

* Fixed coin name

* Fixed coin name

* Fixed coin name

* Fixed coin name

* Fixed coin name

* Fixed coin name

* Fixed wrongly replaced coin names

* Update Nomenclature

CzPIVWallet to CzVITWallet

* More Nomenclature Fixes

CzPIVWallet to CzVITTracker

* Fixed compile error

Co-authored-by: Mrs-X <Mrs-X@users.noreply.github.com>
Co-authored-by: Fuzzbawls <fuzzbawls@gmail.com>
Co-authored-by: presstab <presstab1337@gmail.com>
Co-authored-by: gpdionisio <gianpiero.dionisio@protonmail.ch>
Co-authored-by: warrows <warrows@gamer666.fr>
Co-authored-by: Anthony Posselli <anthony@paddington.services>
Co-authored-by: Warrows <Warrows@users.noreply.github.com>
Co-authored-by: rejectedpromise <rejectedpromise@gmail.com>
Co-authored-by: SHTDJ <36552562+SHTDJ@users.noreply.github.com>
Co-authored-by: Crypto Pliskin <13294167+2a5A1Ghu1@users.noreply.github.com>

* Fixed testnet

* Update testnet spork key

* Fixed travis error that caused by check-doc.py

* Removed unused check in travis

* Fixed travis error

* Disabled some unit tests to pass travis

* Disabled some unit tests to pass travis

* Fixed missing bracket in rpcwallet.cpp from merge

* Incremented version to v4.5.0

* Updated spork and zerocoin chain parameters

* Incremented protocol and swapped protocol spork from 18 to 14

* Removed seesaw

* Added spork for enabling removal of seesaw reward algorithm

* Added spork for enabling removal of seesaw reward algorithm & updated spork parameters

* Updated DNS and fixed seeds

* Updated DNS and fixed seeds

* Updated spork parameters

* Adjusted spork parameters

* Fixes for OSX builds on newer OS versions

* Updated release copyright year

* Updated release-nodes.md

* Updated macro name in blocksignature.h

* Updated MIN_PEER_MNANNOUNCE protocol version

* Fixed references to zerocoin spork

* Fixed wrong balance displayed in overview

* Removed unused function SliceHash

* Fixed references to Spork 16

* Fixing compiler warning for rpcfundamentalnode.cpp

* Updated macro names

* Fixed naming for staking rewards

* Fixed references to zVITAE

* Fix FN Label

There may be some compatability issues with this fix and upstream.

* Added checkpoint

* Added checkpoint

* Updated release-notes.md

* Reject blocks that have no previous block

* Adding const to exception catching

* Set AA_EnableHighDpiScaling attribute early

* Updated VITAE copyright string

* Fixed wrongly removed code about mapStakeSpent

* [Wallet] Increase valid range for automint percentage

* [Docs] OSX Build - Instructions on how to make the Homebrew OpenSSL headers visible

* [Qt] Remove Growl support

Growl hasn't been free nor needed for many years. MacOS versions since
10.8 have the OS notification center, which is still supported after
this.

* [Qt] Add Tor service icon to status bar

Tor Icon is displayed when the client is initialized with a successful
tor service connection.

Icon is hidden otherwise.

* Updated naming for zvitaebackuppath

* Updated exception to const in rpcwallet.cpp

* Updated spork key dates for testnet

* Added checkpoint

Co-authored-by: Wang Qi <wqking@users.noreply.github.com>
Co-authored-by: Mrs-X <Mrs-X@users.noreply.github.com>
Co-authored-by: Fuzzbawls <fuzzbawls@gmail.com>
Co-authored-by: presstab <presstab1337@gmail.com>
Co-authored-by: gpdionisio <gianpiero.dionisio@protonmail.ch>
Co-authored-by: warrows <warrows@gamer666.fr>
Co-authored-by: Anthony Posselli <anthony@paddington.services>
Co-authored-by: Warrows <Warrows@users.noreply.github.com>
Co-authored-by: rejectedpromise <rejectedpromise@gmail.com>
Co-authored-by: SHTDJ <36552562+SHTDJ@users.noreply.github.com>
Co-authored-by: Crypto Pliskin <13294167+2a5A1Ghu1@users.noreply.github.com>
Co-authored-by: wqking <wqking@outlook.com>
rajarshimaitra pushed a commit to rajarshimaitra/bitcoin that referenced this pull request Aug 5, 2021
WIP: Security and Privacy of the Lightning network
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Sep 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants