Skip to content

Conversation

laanwj
Copy link
Member

@laanwj laanwj commented Sep 18, 2011

This pull requests merges in the Qt GUI ( https://github.com/laanwj/bitcoin-qt/blob/master/README.rst ). This introduces a qmake-based build system completely orthogonal to the current build system and UI code. All qt-related source files and resources are added under src/qt: 135 of the 154 "Files Changed" are additions.

Changes to core code have been kept to a minimum and are generally guarded by #ifdef or clearly UI-specific. Outline of changes to core:

  • Add InitMessage calls to initialization sequence, for splash screen. These do nothing on Qt or GUI-less builds
  • #ifdefs for QT GUI specific changes: there is no default or preferred receiving address, and no visible addresses are generated without the users intervention
  • Keep track of maximum block count of peers (GetNumBlocksOfPeers), for visual indication of progress
  • Translation functions and printf take std::string instead of char*, to allow _ to safely redirect to Qt translation service
  • Add GetUnconfirmedBalance() call to CWallet, to be able to show non-confirmed balance in home screen
  • rpc.(cpp|h) renamed to bitcoinrpc.(cpp|h) to satisfy qmake build system on Windows

Discussion on forum: https://bitcointalk.org/index.php?topic=44330.msg532087
and https://bitcointalk.org/index.php?topic=15276.0

laanwj added 30 commits June 11, 2011 12:46
…ctions. Next step is integration into bitcoin tree.
@laanwj
Copy link
Member Author

laanwj commented Sep 21, 2011

This is exactly what I did (see scripts/qt/extract_strings_qt.py). When
running with Qt UI, the _ function is redirected to Qt. The Wx translations
are not used by the Qt UI.

@laanwj
Copy link
Member Author

laanwj commented Sep 21, 2011

Feel free to add or replace your own images if you think that's a concern...

@TheBlueMatt
Copy link
Contributor

Well look at me not paying attention, but I also meant for qt files to use _ so that translation programs will pick up strings from qtui as well (or did you do that too, im on my phone and the browser lags out if I try to load the diff tab).
Also I'm assuming you have some strings specific to qtui already, how were those handled in the existing translations for qt?

@TheBlueMatt
Copy link
Contributor

In URI handling, why does it not parse the message field?

@laanwj
Copy link
Member Author

laanwj commented Sep 21, 2011

Nothing special has to be done for that; Qt uses tr() instead of _, and
recognizes the qtui-specific strings (which are indeed a lot) in
lupdate/lrelease, the qt translation tools, automatically.

It does not pick up _(), that's why the python script exists. It converts
the strings in _() to QT_TRANSLATE_NOOP strings which are recognized.

This means that qt translator can be used to translate the strings in the
core as well as the qtui-specific strings in one go.

On Wed, Sep 21, 2011 at 9:26 PM, Matt Corallo <
reply@reply.github.com>wrote:

Well look at me not paying attention, but I also meant for qt files to use
_ so that translation programs will pick up strings from qtui as well (or
did you do that too, im on my phone and the browser lags out if I try to
load the diff tab).
Also I'm assuming you have some strings specific to qtui already, how were
those handled in the existing translations for qt?

Reply to this email directly or view it on GitHub:
#521 (comment)

@laanwj
Copy link
Member Author

laanwj commented Sep 21, 2011

Huh I don't see anything about a message field in the URL handling? What's it supposed to parse, and do with it?

@TheBlueMatt
Copy link
Contributor

re:images I dont have a problem with it but I thought id bring it up to make sure no one else had any problems with it.
Re:translations, it just bugs me that half the translations are in po format and the other half are in qt. That might cause issues later on if there are conflicting translations used by bitcoind. My question was whether or not it would be possible to modify the qt-generated code to use the_() function (which is mapped to tr) so that translation software would pick up the strings that qt needs as well as wx and bitcoind ones. That way all the translations would be in one place.

@TheBlueMatt
Copy link
Contributor

See https://en.bitcoin.it/wiki/URI_Scheme
(ignore lukes tonal exponent crap)

@laanwj
Copy link
Member Author

laanwj commented Sep 21, 2011

Eventually all the translations should be in qt format (ts), not the other
way around, IMO. The Qt translation system is more advanced (context
sensitive, can take into account multiples, shows the GUI while translating
etc).

The po files could be generated from the ts files, for use by bitcoind, and
wouldn't even need to be in git. This would need another script but not a
very complex one.

@laanwj
Copy link
Member Author

laanwj commented Sep 21, 2011

What would you want to do with the message? Display it in a popup? Currently, the "send coins" tab is opened and the amount, address and label is simply added to the recipients list when a URL is drag&dropped into the client.

@laanwj
Copy link
Member Author

laanwj commented Sep 21, 2011

BTW bitcoind doesn't use translation at all; I guess it'd need to link against libgettext to do that. Currently, without ui, _ is implemented as this (util.h):

#if !defined(QT_GUI) && !defined(GUI)
inline const char* _(const char* psz)
{
    return psz;
}
#endif

If this is kept the same, this means the po files can simply be removed when the wx UI goes away.

@nl0x
Copy link

nl0x commented Sep 21, 2011

RE: message in bitcoin uri

It should be stored as a comment for that transaction. Actually, I'd like to have a editable comment field for every transaction (outgoing and incoming) so one could label individual transactions on a single address. I think the wallet and RPC already supports comments.

@laanwj
Copy link
Member Author

laanwj commented Sep 21, 2011

Is that true? I haven't noticed it. I intended to add such functionality. A long time ago I sent a message on the mailing list about adding metadata to transactions and address book addresses, but no one ever replied, so I guessed it was not practical or useless.

Anyway, we can add this later. It's a good idea in any case.

@p2k
Copy link
Contributor

p2k commented Sep 21, 2011

laanwj: Just a side note: I've written a python script that reads ts files and outputs unicode string tables for use in mac or iphone applications. I think it won't take me long to modify it so it outputs po files.

@laanwj
Copy link
Member Author

laanwj commented Sep 21, 2011

p2k: nice, if we decide to add gettext-based translation to bitcoind that will certainly come in handy

@TheBlueMatt
Copy link
Contributor

Meh, I dont care if all the translations are po or qt, but I would think it would be better to have them all together instead of split between two files.

@laanwj
Copy link
Member Author

laanwj commented Sep 21, 2011

As I said, unless gettext-based translation is added to bitcoind, we can
simply remove the .po files when the wx UI is deprecated. That would solve
the problem wouldn't it?

@TheBlueMatt
Copy link
Contributor

yes., long as existing translations are ported over.

@laanwj
Copy link
Member Author

laanwj commented Sep 21, 2011

Yes, that could be done, though that'd only work for the strings in the
bitcoin core. Most of the strings in the UI itself would remain untranslated
as they're different from before.

gavinandresen added a commit that referenced this pull request Sep 26, 2011
@gavinandresen gavinandresen merged commit f7f2a36 into bitcoin:master Sep 26, 2011
coblee referenced this pull request in litecoin-project/litecoin Jul 17, 2012
ptschip pushed a commit to ptschip/bitcoin that referenced this pull request Aug 2, 2017
dexX7 added a commit to dexX7/bitcoin that referenced this pull request Mar 12, 2018
6f608cd Update version to 0.3.99 to indicate development (dexX7)
kallewoof pushed a commit to kallewoof/bitcoin that referenced this pull request Oct 4, 2019
d1f5351 Update man pages (Steven Roose)
e1cd00c Change branding from bitcoin to elements (Steven Roose)
ade539c Don't assume mainchain is Bitcoin (Steven Roose)
cf77a23 Update README to Elements Project (Steven Roose)

Pull request description:

Tree-SHA512: f9428219b15a52fd6cff63e7a725a4cb67a3dbecf59eaf7ca946a2b1af8b803bd75c3a62f1feacc8356ae21d32b308cafb27a254d52db6a462563a82b271e101
lateminer pushed a commit to lateminer/bitcoin that referenced this pull request Jul 17, 2020
Hardened checkpoint update for v0.9.0 testnet 2
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
- added a cautionary note. 
- no need to add "for example 100k" as you are not referencing it again later
- likelyhood -> likelihood 
- etc
@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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants