Merge pull request #6390 from nuttycom/merge/version-5.4.0
Partial merge of v5.4.0 release content back to `master`.
This commit is contained in:
commit
bb675d9799
|
@ -130,3 +130,5 @@ src/fuzzing/*/output
|
|||
src/fuzz.cpp
|
||||
|
||||
.updatecheck-token
|
||||
.env
|
||||
poetry.lock
|
||||
|
|
6
COPYING
6
COPYING
|
@ -1,6 +1,6 @@
|
|||
Copyright (c) 2016-2022 The Zcash developers
|
||||
Copyright (c) 2009-2022 The Bitcoin Core developers
|
||||
Copyright (c) 2009-2022 Bitcoin Developers
|
||||
Copyright (c) 2016-2023 The Zcash developers
|
||||
Copyright (c) 2009-2023 The Bitcoin Core developers
|
||||
Copyright (c) 2009-2023 Bitcoin Developers
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Zcash 5.3.2
|
||||
Zcash 5.4.0-rc3
|
||||
<img align="right" width="120" height="80" src="doc/imgs/logo.png">
|
||||
===========
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
|
||||
AC_PREREQ([2.60])
|
||||
define(_CLIENT_VERSION_MAJOR, 5)
|
||||
define(_CLIENT_VERSION_MINOR, 3)
|
||||
define(_CLIENT_VERSION_REVISION, 2)
|
||||
define(_CLIENT_VERSION_BUILD, 50)
|
||||
define(_CLIENT_VERSION_MINOR, 4)
|
||||
define(_CLIENT_VERSION_REVISION, 0)
|
||||
define(_CLIENT_VERSION_BUILD, 27)
|
||||
define(_ZC_BUILD_VAL, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, m4_incr(_CLIENT_VERSION_BUILD), m4_eval(_CLIENT_VERSION_BUILD < 50), 1, m4_eval(_CLIENT_VERSION_BUILD - 24), m4_eval(_CLIENT_VERSION_BUILD == 50), 1, , m4_eval(_CLIENT_VERSION_BUILD - 50)))
|
||||
define(_CLIENT_VERSION_SUFFIX, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, _CLIENT_VERSION_REVISION-beta$1, m4_eval(_CLIENT_VERSION_BUILD < 50), 1, _CLIENT_VERSION_REVISION-rc$1, m4_eval(_CLIENT_VERSION_BUILD == 50), 1, _CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION-$1)))
|
||||
define(_CLIENT_VERSION_IS_RELEASE, true)
|
||||
define(_COPYRIGHT_YEAR, 2022)
|
||||
define(_COPYRIGHT_YEAR, 2023)
|
||||
AC_INIT([Zcash],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_SUFFIX(_ZC_BUILD_VAL)],[https://github.com/zcash/zcash/issues],[zcash])
|
||||
AC_CONFIG_SRCDIR([src/main.cpp])
|
||||
AC_CONFIG_HEADERS([src/config/bitcoin-config.h])
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
zcash (5.4.0~rc3) stable; urgency=medium
|
||||
|
||||
* 5.4.0-rc3 release.
|
||||
|
||||
-- Electric Coin Company <team@electriccoin.co> Fri, 27 Jan 2023 15:07:19 -0700
|
||||
|
||||
zcash (5.4.0~rc2) stable; urgency=medium
|
||||
|
||||
* 5.4.0-rc2 release.
|
||||
|
||||
-- Electric Coin Company <team@electriccoin.co> Tue, 24 Jan 2023 00:04:35 +0000
|
||||
|
||||
zcash (5.4.0~rc1) stable; urgency=medium
|
||||
|
||||
* 5.4.0-rc1 release.
|
||||
|
||||
-- Electric Coin Company <team@electriccoin.co> Thu, 19 Jan 2023 22:57:59 +0000
|
||||
|
||||
zcash (5.3.2) stable; urgency=medium
|
||||
|
||||
* 5.3.2 release.
|
||||
|
|
|
@ -4,9 +4,9 @@ Upstream-Contact: Electric Coin Company <team@electriccoin.co>
|
|||
Source: https://github.com/zcash/zcash
|
||||
|
||||
Files: *
|
||||
Copyright: 2016-2022, The Zcash developers
|
||||
2009-2022, Bitcoin Core developers
|
||||
2009-2022, Bitcoin Developers
|
||||
Copyright: 2016-2023, The Zcash developers
|
||||
2009-2023, The Bitcoin Core developers
|
||||
2009-2023, Bitcoin Developers
|
||||
License: Expat
|
||||
Comment: The Bitcoin Core developers encompasses the current developers listed on
|
||||
bitcoin.org, as well as the numerous contributors to the project.
|
||||
|
|
|
@ -1,53 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
'''
|
||||
Run this script inside of src/ and it will look for all the files
|
||||
that were changed this year that still have the last year in the
|
||||
copyright headers, and it will fix the headers on that file using
|
||||
a perl regex one liner.
|
||||
|
||||
For example: if it finds something like this and we're in 2014
|
||||
|
||||
// Copyright (c) 2009-2013 The Bitcoin Core developers
|
||||
|
||||
it will change it to
|
||||
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
|
||||
It will do this for all the files in the folder and its children.
|
||||
|
||||
Author: @gubatron
|
||||
'''
|
||||
import os
|
||||
import time
|
||||
|
||||
year = time.gmtime()[0]
|
||||
last_year = year - 1
|
||||
command = "perl -pi -e 's/%s The Bitcoin/%s The Bitcoin/' %s"
|
||||
listFilesCommand = "find . | grep %s"
|
||||
|
||||
extensions = [".cpp",".h"]
|
||||
|
||||
def getLastGitModifiedDate(filePath):
|
||||
gitGetLastCommitDateCommand = "git log " + filePath +" | grep Date | head -n 1"
|
||||
p = os.popen(gitGetLastCommitDateCommand)
|
||||
result = ""
|
||||
for l in p:
|
||||
result = l
|
||||
break
|
||||
result = result.replace("\n","")
|
||||
return result
|
||||
|
||||
n=1
|
||||
for extension in extensions:
|
||||
foundFiles = os.popen(listFilesCommand % extension)
|
||||
for filePath in foundFiles:
|
||||
filePath = filePath[1:-1]
|
||||
if filePath.endswith(extension):
|
||||
filePath = os.getcwd() + filePath
|
||||
modifiedTime = getLastGitModifiedDate(filePath)
|
||||
if len(modifiedTime) > 0 and str(year) in modifiedTime:
|
||||
print(n,"Last Git Modified: ", modifiedTime, " - ", filePath)
|
||||
os.popen(command % (last_year,year,filePath))
|
||||
n = n + 1
|
||||
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
current_year=$(date +%Y)
|
||||
|
||||
read -r -d '' VERIFY_SCRIPT << EOS
|
||||
for party in "The Zcash developers" "The Bitcoin Core developers" "Bitcoin Developers"; do
|
||||
sed -i"" -e "s#Copyright (c) \([0-9]\{4\}\)\(-[0-9]\{4\}\)\? \$party#Copyright (c) \1-$current_year \$party#" COPYING
|
||||
sed -i"" -e "s#\(.*\)\([0-9]\{4\}\)\(-[0-9]\{4\}\)\, \$party#\1\2-$current_year, \$party#" contrib/debian/copyright
|
||||
done
|
||||
|
||||
sed -i"" -e "s/define(_COPYRIGHT_YEAR, [0-9]\{4\})/define(_COPYRIGHT_YEAR, $current_year)/" configure.ac
|
||||
sed -i"" -e "s/#define COPYRIGHT_YEAR [0-9]\{4\}/#define COPYRIGHT_YEAR $current_year/" src/clientversion.h
|
||||
|
||||
git grep "^// Copyright (c) .* The Zcash developers" \\
|
||||
| awk -F ':' '{print \$1}' \\
|
||||
| xargs -I {} sed -i"" -e "s#// Copyright (c) \([0-9]\{4\}\)\(-[0-9]\{4\}\)\? The Zcash developers#// Copyright (c) \1-$current_year The Zcash developers#" {}
|
||||
EOS
|
||||
|
||||
bash << EOB
|
||||
$VERIFY_SCRIPT
|
||||
EOB
|
||||
|
||||
git commit -a -F - << EOS
|
||||
scripted-diff: Update Zcash copyrights to $current_year
|
||||
|
||||
-BEGIN VERIFY SCRIPT-
|
||||
$VERIFY_SCRIPT
|
||||
-END VERIFY SCRIPT-
|
||||
EOS
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
name: "zcash-5.3.2"
|
||||
name: "zcash-5.4.0-rc3"
|
||||
enable_cache: true
|
||||
distro: "debian"
|
||||
suites:
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
name: "zcash-5.3.2"
|
||||
name: "zcash-5.4.0-rc3"
|
||||
enable_cache: true
|
||||
distro: "debian"
|
||||
suites:
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
[tool.poetry]
|
||||
name = "zcash-metrics"
|
||||
version = "0.1.0"
|
||||
description = "Zcash Metrics"
|
||||
authors = [
|
||||
"Jack Grigg <jack@electriccoin.co>",
|
||||
"Daira Hopwood <daira@jacaranda.org>",
|
||||
"Kris Nuttycombe <kris@nutty.land>",
|
||||
]
|
||||
license = "MIT OR Apache-2.0"
|
||||
readme = "README.md"
|
||||
homepage = "https://github.com/zcash/zcash/"
|
||||
repository = "https://github.com/zcash/zcash/"
|
||||
documentation = "https://github.com/zcash/zcash/"
|
||||
classifiers = [
|
||||
"Private :: Do Not Upload",
|
||||
]
|
||||
packages = [
|
||||
{ include = "supply_check" }
|
||||
]
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = "^3.7"
|
||||
slick-bitcoinrpc = "0.1.4"
|
||||
progressbar2 = "4.2.0"
|
||||
|
||||
[tool.poetry.scripts]
|
||||
supply-check = "supply_check:main"
|
||||
|
|
@ -0,0 +1,102 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import progressbar
|
||||
from slickrpc.rpc import Proxy
|
||||
|
||||
from .deltas_mainnet import MainnetSupplyDeltas
|
||||
from .theoretical import Network, MAINNET
|
||||
|
||||
COIN=100000000
|
||||
|
||||
TXIDS_ONLY=1
|
||||
FULL_TX_DATA=2
|
||||
|
||||
# Returns the theoretical supply, the total block rewards claimed,
|
||||
# and the block at the given height.
|
||||
#
|
||||
# - `zcashd` a slickrpc.rpc.Proxy that can be used to access zcashd
|
||||
# - `deltas` a SupplyDeltas object tracking the deltas observed
|
||||
# - `height` the block height to consider
|
||||
# - `flag` Either `TXIDS_ONLY` or `FULL_TX_DATA`. This flag will be provided to
|
||||
# the getblock RPC call to indicate how much data should be returned. When
|
||||
# `TXIDS_ONLY` is provided, data for transactions in the block will be limited
|
||||
# to transaction identifiers; when `FULL_TX_DATA` is provided full transaction
|
||||
# data will be returned for each transaction in the block.
|
||||
def TheoreticalAndEmpirical(zcashd, deltas, height, flag):
|
||||
theoreticalSupply = Network(MAINNET).SupplyAfterHeight(height)
|
||||
block = zcashd.getblock(str(height), flag)
|
||||
measuredSupply = block['chainSupply']['chainValueZat']
|
||||
empiricalMaximum = measuredSupply + deltas.DeviationUpToHeight(height)
|
||||
return (theoreticalSupply, empiricalMaximum, block)
|
||||
|
||||
# Returns `True` if the theoretical supply matches the empirically
|
||||
# determined supply after accounting for known deltas over the specified
|
||||
# range, or `False` if it was not possible to determine a miner address
|
||||
# for a block containing unclaimed fee and/or block reward amounts.
|
||||
#
|
||||
# - `startHeight` The block height at which to begin checking
|
||||
# - `endHeight` The end of the block height range to check (inclusive)
|
||||
def Bisect(bar, zcashd, deltas, startHeight, endHeight):
|
||||
assert startHeight <= endHeight
|
||||
bar.update(startHeight)
|
||||
|
||||
flag = FULL_TX_DATA if startHeight == endHeight else TXIDS_ONLY
|
||||
(theoretical, empirical, block) = TheoreticalAndEmpirical(zcashd, deltas, endHeight, flag)
|
||||
if theoretical == empirical:
|
||||
return True
|
||||
elif startHeight == endHeight:
|
||||
return deltas.SaveMismatch(block, theoretical, empirical)
|
||||
else:
|
||||
midpoint = (startHeight + endHeight) // 2
|
||||
return (Bisect(bar, zcashd, deltas, startHeight, midpoint) and
|
||||
Bisect(bar, zcashd, deltas, midpoint + 1, endHeight))
|
||||
|
||||
|
||||
def main():
|
||||
missing_env = []
|
||||
if os.environ.get('ZCASHD_RPC_USER') is None:
|
||||
missing_env.append(' ZCASHD_RPC_USER: username for accessing the zcashd RPC API')
|
||||
if os.environ.get('ZCASHD_RPC_PASS') is None:
|
||||
missing_env.append(' ZCASHD_RPC_PASS: RPC API password for <ZCASHD_RPC_USER>')
|
||||
if os.environ.get('ZCASHD_RPC_HOST') is None:
|
||||
missing_env.append(' ZCASHD_RPC_HOST: hostname where zcashd is running')
|
||||
if os.environ.get('ZCASHD_RPC_PORT') is None:
|
||||
missing_env.append(' ZCASHD_RPC_PORT: zcashd RPC API port (usually 8232 for mainnet)')
|
||||
|
||||
if len(missing_env) > 0:
|
||||
print("Please ensure that the following environment variables have been set:")
|
||||
for v in missing_env:
|
||||
print(v)
|
||||
return
|
||||
|
||||
zcashd = Proxy('http://{rpc_user}:{rpc_pass}@{rpc_host}:{rpc_port}'.format(
|
||||
rpc_user=os.environ['ZCASHD_RPC_USER'],
|
||||
rpc_pass=os.environ['ZCASHD_RPC_PASS'],
|
||||
rpc_host=os.environ['ZCASHD_RPC_HOST'],
|
||||
rpc_port=os.environ['ZCASHD_RPC_PORT'],
|
||||
))
|
||||
|
||||
latestHeight = zcashd.getblockchaininfo()['blocks']
|
||||
deltas = MainnetSupplyDeltas()
|
||||
(theoretical, empirical, block) = TheoreticalAndEmpirical(zcashd, deltas, latestHeight, TXIDS_ONLY)
|
||||
interrupted = False
|
||||
if theoretical != empirical:
|
||||
with progressbar.ProgressBar(max_value = latestHeight, redirect_stdout = True) as bar:
|
||||
try:
|
||||
Bisect(bar, zcashd, deltas, 0, latestHeight)
|
||||
except KeyboardInterrupt:
|
||||
interrupted = True
|
||||
pass
|
||||
deltas.PrintDeltas()
|
||||
print("Block height: {}".format(latestHeight))
|
||||
print("Chain total value: {} ZEC".format(block['chainSupply']['chainValueZat'] / COIN))
|
||||
print("Theoretical maximum supply: {} ZEC".format(theoretical / COIN))
|
||||
if interrupted:
|
||||
print("Supply check was interrupted; supply delta evaluation incomplete.")
|
||||
else:
|
||||
print("Blocks with unclaimed balance: {}".format(len(deltas.delta_cache)))
|
||||
print("Unclaimed total: {} ZEC".format(deltas.delta_total / COIN))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,104 @@
|
|||
fr_addrs = set([
|
||||
# FR addresses
|
||||
"t3Vz22vK5z2LcKEdg16Yv4FFneEL1zg9ojd",
|
||||
"t3cL9AucCajm3HXDhb5jBnJK2vapVoXsop3",
|
||||
"t3fqvkzrrNaMcamkQMwAyHRjfDdM2xQvDTR",
|
||||
"t3TgZ9ZT2CTSK44AnUPi6qeNaHa2eC7pUyF",
|
||||
"t3SpkcPQPfuRYHsP5vz3Pv86PgKo5m9KVmx",
|
||||
"t3Xt4oQMRPagwbpQqkgAViQgtST4VoSWR6S",
|
||||
"t3ayBkZ4w6kKXynwoHZFUSSgXRKtogTXNgb",
|
||||
"t3adJBQuaa21u7NxbR8YMzp3km3TbSZ4MGB",
|
||||
"t3K4aLYagSSBySdrfAGGeUd5H9z5Qvz88t2",
|
||||
"t3RYnsc5nhEvKiva3ZPhfRSk7eyh1CrA6Rk",
|
||||
"t3Ut4KUq2ZSMTPNE67pBU5LqYCi2q36KpXQ",
|
||||
"t3ZnCNAvgu6CSyHm1vWtrx3aiN98dSAGpnD",
|
||||
"t3fB9cB3eSYim64BS9xfwAHQUKLgQQroBDG",
|
||||
"t3cwZfKNNj2vXMAHBQeewm6pXhKFdhk18kD",
|
||||
"t3YcoujXfspWy7rbNUsGKxFEWZqNstGpeG4",
|
||||
"t3bLvCLigc6rbNrUTS5NwkgyVrZcZumTRa4",
|
||||
"t3VvHWa7r3oy67YtU4LZKGCWa2J6eGHvShi",
|
||||
"t3eF9X6X2dSo7MCvTjfZEzwWrVzquxRLNeY",
|
||||
"t3esCNwwmcyc8i9qQfyTbYhTqmYXZ9AwK3X",
|
||||
"t3M4jN7hYE2e27yLsuQPPjuVek81WV3VbBj",
|
||||
"t3gGWxdC67CYNoBbPjNvrrWLAWxPqZLxrVY",
|
||||
"t3LTWeoxeWPbmdkUD3NWBquk4WkazhFBmvU",
|
||||
"t3P5KKX97gXYFSaSjJPiruQEX84yF5z3Tjq",
|
||||
"t3f3T3nCWsEpzmD35VK62JgQfFig74dV8C9",
|
||||
"t3Rqonuzz7afkF7156ZA4vi4iimRSEn41hj",
|
||||
"t3fJZ5jYsyxDtvNrWBeoMbvJaQCj4JJgbgX",
|
||||
"t3Pnbg7XjP7FGPBUuz75H65aczphHgkpoJW",
|
||||
"t3WeKQDxCijL5X7rwFem1MTL9ZwVJkUFhpF",
|
||||
"t3Y9FNi26J7UtAUC4moaETLbMo8KS1Be6ME",
|
||||
"t3aNRLLsL2y8xcjPheZZwFy3Pcv7CsTwBec",
|
||||
"t3gQDEavk5VzAAHK8TrQu2BWDLxEiF1unBm",
|
||||
"t3Rbykhx1TUFrgXrmBYrAJe2STxRKFL7G9r",
|
||||
"t3aaW4aTdP7a8d1VTE1Bod2yhbeggHgMajR",
|
||||
"t3YEiAa6uEjXwFL2v5ztU1fn3yKgzMQqNyo",
|
||||
"t3g1yUUwt2PbmDvMDevTCPWUcbDatL2iQGP",
|
||||
"t3dPWnep6YqGPuY1CecgbeZrY9iUwH8Yd4z",
|
||||
"t3QRZXHDPh2hwU46iQs2776kRuuWfwFp4dV",
|
||||
"t3enhACRxi1ZD7e8ePomVGKn7wp7N9fFJ3r",
|
||||
"t3PkLgT71TnF112nSwBToXsD77yNbx2gJJY",
|
||||
"t3LQtHUDoe7ZhhvddRv4vnaoNAhCr2f4oFN",
|
||||
"t3fNcdBUbycvbCtsD2n9q3LuxG7jVPvFB8L",
|
||||
"t3dKojUU2EMjs28nHV84TvkVEUDu1M1FaEx",
|
||||
"t3aKH6NiWN1ofGd8c19rZiqgYpkJ3n679ME",
|
||||
"t3MEXDF9Wsi63KwpPuQdD6by32Mw2bNTbEa",
|
||||
"t3WDhPfik343yNmPTqtkZAoQZeqA83K7Y3f",
|
||||
"t3PSn5TbMMAEw7Eu36DYctFezRzpX1hzf3M",
|
||||
"t3R3Y5vnBLrEn8L6wFjPjBLnxSUQsKnmFpv",
|
||||
"t3Pcm737EsVkGTbhsu2NekKtJeG92mvYyoN",
|
||||
# ECC funding stream addresses
|
||||
"t3LmX1cxWPPPqL4TZHx42HU3U5ghbFjRiif",
|
||||
"t3Toxk1vJQ6UjWQ42tUJz2rV2feUWkpbTDs",
|
||||
"t3ZBdBe4iokmsjdhMuwkxEdqMCFN16YxKe6",
|
||||
"t3ZuaJziLM8xZ32rjDUzVjVtyYdDSz8GLWB",
|
||||
"t3bAtYWa4bi8VrtvqySxnbr5uqcG9czQGTZ",
|
||||
"t3dktADfb5Rmxncpe1HS5BRS5Gcj7MZWYBi",
|
||||
"t3hgskquvKKoCtvxw86yN7q8bzwRxNgUZmc",
|
||||
"t3R1VrLzwcxAZzkX4mX3KGbWpNsgtYtMntj",
|
||||
"t3ff6fhemqPMVujD3AQurxRxTdvS1pPSaa2",
|
||||
"t3cEUQFG3KYnFG6qYhPxSNgGi3HDjUPwC3J",
|
||||
"t3WR9F5U4QvUFqqx9zFmwT6xFqduqRRXnaa",
|
||||
"t3PYc1LWngrdUrJJbHkYPCKvJuvJjcm85Ch",
|
||||
"t3bgkjiUeatWNkhxY3cWyLbTxKksAfk561R",
|
||||
"t3Z5rrR8zahxUpZ8itmCKhMSfxiKjUp5Dk5",
|
||||
"t3PU1j7YW3fJ67jUbkGhSRto8qK2qXCUiW3",
|
||||
"t3S3yaT7EwNLaFZCamfsxxKwamQW2aRGEkh",
|
||||
"t3eutXKJ9tEaPSxZpmowhzKhPfJvmtwTEZK",
|
||||
"t3gbTb7brxLdVVghSPSd3ycGxzHbUpukeDm",
|
||||
"t3UCKW2LrHFqPMQFEbZn6FpjqnhAAbfpMYR",
|
||||
"t3NyHsrnYbqaySoQqEQRyTWkjvM2PLkU7Uu",
|
||||
"t3QEFL6acxuZwiXtW3YvV6njDVGjJ1qeaRo",
|
||||
"t3PdBRr2S1XTDzrV8bnZkXF3SJcrzHWe1wj",
|
||||
"t3ZWyRPpWRo23pKxTLtWsnfEKeq9T4XPxKM",
|
||||
"t3he6QytKCTydhpztykFsSsb9PmBT5JBZLi",
|
||||
"t3VWxWDsLb2TURNEP6tA1ZSeQzUmPKFNxRY",
|
||||
"t3NmWLvZkbciNAipauzsFRMxoZGqmtJksbz",
|
||||
"t3cKr4YxVPvPBG1mCvzaoTTdBNokohsRJ8n",
|
||||
"t3T3smGZn6BoSFXWWXa1RaoQdcyaFjMfuYK",
|
||||
"t3gkDUe9Gm4GGpjMk86TiJZqhztBVMiUSSA",
|
||||
"t3eretuBeBXFHe5jAqeSpUS1cpxVh51fAeb",
|
||||
"t3dN8g9zi2UGJdixGe9txeSxeofLS9t3yFQ",
|
||||
"t3S799pq9sYBFwccRecoTJ3SvQXRHPrHqvx",
|
||||
"t3fhYnv1S5dXwau7GED3c1XErzt4n4vDxmf",
|
||||
"t3cmE3vsBc5xfDJKXXZdpydCPSdZqt6AcNi",
|
||||
"t3h5fPdjJVHaH4HwynYDM5BB3J7uQaoUwKi",
|
||||
"t3Ma35c68BgRX8sdLDJ6WR1PCrKiWHG4Da9",
|
||||
"t3LokMKPL1J8rkJZvVpfuH7dLu6oUWqZKQK",
|
||||
"t3WFFGbEbhJWnASZxVLw2iTJBZfJGGX73mM",
|
||||
"t3L8GLEsUn4QHNaRYcX3EGyXmQ8kjpT1zTa",
|
||||
"t3PgfByBhaBSkH8uq4nYJ9ZBX4NhGCJBVYm",
|
||||
"t3WecsqKDhWXD4JAgBVcnaCC2itzyNZhJrv",
|
||||
"t3ZG9cSfopnsMQupKW5v9sTotjcP5P6RTbn",
|
||||
"t3hC1Ywb5zDwUYYV8LwhvF5rZ6m49jxXSG5",
|
||||
"t3VgMqDL15ZcyQDeqBsBW3W6rzfftrWP2yB",
|
||||
"t3LC94Y6BwLoDtBoK2NuewaEbnko1zvR9rm",
|
||||
"t3cWCUZJR3GtALaTcatrrpNJ3MGbMFVLRwQ",
|
||||
"t3YYF4rPLVxDcF9hHFsXyc5Yq1TFfbojCY6",
|
||||
"t3XHAGxRP2FNfhAjxGjxbrQPYtQQjc3RCQD",
|
||||
# ZF funding stream addresses
|
||||
"t3dvVE3SQEi7kqNzwrfNePxZ1d4hUyztBA1",
|
||||
# MG funding stream addresses
|
||||
"t3XyYW8yBFRuMnfvm5KLGFbEVz25kckZXym",
|
||||
])
|
|
@ -0,0 +1,60 @@
|
|||
import pprint
|
||||
import bisect
|
||||
|
||||
class SupplyDeltas:
|
||||
def __init__(self, fr_addrs, miner_deltas, flush_interval = 500):
|
||||
self.fr_addrs = fr_addrs
|
||||
self.miner_deltas = miner_deltas
|
||||
|
||||
self.delta_total = 0
|
||||
self.delta_cache = []
|
||||
self.flush_interval = flush_interval
|
||||
|
||||
deltas_flat = [pair for deltas in miner_deltas.values() for pair in deltas]
|
||||
for (deltaHeight, delta) in sorted(deltas_flat):
|
||||
self.AddSupplyDelta(deltaHeight, delta)
|
||||
|
||||
# AddSupplyDelta must be called with heights in increasing order.
|
||||
# It will raise an assertion error if an out-of-order insertion is
|
||||
# attempted.
|
||||
def AddSupplyDelta(self, deltaHeight, delta):
|
||||
assert len(self.delta_cache) == 0 or deltaHeight > self.delta_cache[-1][0]
|
||||
|
||||
self.delta_total += delta
|
||||
bisect.insort(self.delta_cache, (deltaHeight, self.delta_total), key=lambda x: x[0])
|
||||
|
||||
def DeviationUpToHeight(self, height):
|
||||
i = bisect.bisect(self.delta_cache, height, key=lambda x: x[0])
|
||||
return 0 if i == 0 else self.delta_cache[i - 1][1]
|
||||
|
||||
def SaveMismatch(self, block, theoretical, empirical):
|
||||
height = block['height']
|
||||
coinbase_tx = block['tx'][0]
|
||||
delta = theoretical - empirical
|
||||
|
||||
print('Mismatch at height {}: {} != {} ({}) miner_deltas: {}'.format(
|
||||
height,
|
||||
theoretical,
|
||||
empirical,
|
||||
delta,
|
||||
len(self.miner_deltas),
|
||||
))
|
||||
|
||||
# if delta ever goes negative, we will halt
|
||||
if delta >= 0:
|
||||
miner_addrs = set([addr for out in coinbase_tx['vout'] for addr in out['scriptPubKey'].get('addresses', [])]) - self.fr_addrs
|
||||
if len(miner_addrs) > 0:
|
||||
self.miner_deltas.setdefault(",".join(sorted(miner_addrs)), []).append((height, delta))
|
||||
self.AddSupplyDelta(height, delta)
|
||||
if len(self.delta_cache) % 500 == 0:
|
||||
with open("delta_cache.{}.out".format(len(self.delta_cache)), 'w', encoding="utf8") as f:
|
||||
pprint.pprint(self.miner_deltas, stream = f, compact = True)
|
||||
|
||||
return True
|
||||
|
||||
pprint.pprint(coinbase_tx['vout'], indent = 4)
|
||||
return False
|
||||
|
||||
def PrintDeltas(self):
|
||||
with open("delta_cache.out", 'w', encoding="utf8") as f:
|
||||
pprint.pprint(self.miner_deltas, stream = f, compact = True)
|
|
@ -0,0 +1,67 @@
|
|||
def exact_div(x, y):
|
||||
assert x % y == 0
|
||||
return x // y
|
||||
|
||||
# floor(u/x + v/y)
|
||||
def div2(u, x, v, y):
|
||||
return (u*y + v*x) // (x*y)
|
||||
|
||||
TESTNET = 0
|
||||
MAINNET = 1
|
||||
|
||||
class Network:
|
||||
# <https://zips.z.cash/protocol/protocol.pdf#constants>
|
||||
def __init__(self, network):
|
||||
self.BlossomActivationHeight = 653600 if network == MAINNET else 584000
|
||||
|
||||
SlowStartInterval = 20000
|
||||
MaxBlockSubsidy = 1250000000 # 12.5 ZEC
|
||||
PreBlossomHalvingInterval = 840000
|
||||
PreBlossomPoWTargetSpacing = 150
|
||||
PostBlossomPoWTargetSpacing = 75
|
||||
|
||||
# <https://zips.z.cash/protocol/protocol.pdf#diffadjustment>
|
||||
def IsBlossomActivated(self, height):
|
||||
return height >= self.BlossomActivationHeight
|
||||
|
||||
BlossomPoWTargetSpacingRatio = exact_div(PreBlossomPoWTargetSpacing, PostBlossomPoWTargetSpacing)
|
||||
|
||||
# no need for floor since this is necessarily an integer
|
||||
PostBlossomHalvingInterval = PreBlossomHalvingInterval * BlossomPoWTargetSpacingRatio
|
||||
|
||||
# <https://zips.z.cash/protocol/protocol.pdf#subsidies>
|
||||
SlowStartShift = exact_div(SlowStartInterval, 2)
|
||||
|
||||
SlowStartRate = exact_div(MaxBlockSubsidy, SlowStartInterval)
|
||||
|
||||
SupplyCache = []
|
||||
|
||||
def Halving(self, height):
|
||||
if height < self.SlowStartShift:
|
||||
return 0
|
||||
elif not self.IsBlossomActivated(height):
|
||||
return (height - self.SlowStartShift) // self.PreBlossomHalvingInterval
|
||||
else:
|
||||
return div2(self.BlossomActivationHeight - self.SlowStartShift, self.PreBlossomHalvingInterval,
|
||||
height - self.BlossomActivationHeight, self.PostBlossomHalvingInterval)
|
||||
|
||||
def BlockSubsidy(self, height):
|
||||
if height < self.SlowStartShift:
|
||||
return self.SlowStartRate * height
|
||||
elif self.SlowStartShift <= height and height < self.SlowStartInterval:
|
||||
return self.SlowStartRate * (height + 1)
|
||||
if self.SlowStartInterval <= height and not self.IsBlossomActivated(height):
|
||||
return self.MaxBlockSubsidy // (1 << self.Halving(height))
|
||||
else:
|
||||
return self.MaxBlockSubsidy // (self.BlossomPoWTargetSpacingRatio << self.Halving(height))
|
||||
|
||||
def SupplyAfterHeight(self, height):
|
||||
cacheLen = len(self.SupplyCache)
|
||||
if cacheLen > height:
|
||||
return self.SupplyCache[height]
|
||||
else:
|
||||
cur = 0 if cacheLen == 0 else self.SupplyCache[-1]
|
||||
for h in range(cacheLen, height + 1):
|
||||
cur += self.BlockSubsidy(h)
|
||||
self.SupplyCache.append(cur)
|
||||
return self.SupplyCache[-1]
|
|
@ -99,7 +99,7 @@ _zcash_cli() {
|
|||
fi
|
||||
|
||||
case "$prev" in
|
||||
backupwallet|dumpwallet|importwallet|z_exportwallet|z_importwallet)
|
||||
backupwallet|importwallet|z_exportwallet|z_importwallet)
|
||||
_filedir
|
||||
return 0
|
||||
;;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package=native_cmake
|
||||
$(package)_version=3.25.1
|
||||
$(package)_version=3.25.2
|
||||
$(package)_download_path=https://github.com/Kitware/CMake/releases/download/v$($(package)_version)
|
||||
$(package)_file_name=cmake-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=1c511d09516af493694ed9baf13c55947a36389674d657a2d5e0ccedc6b291d8
|
||||
$(package)_sha256_hash=c026f22cb931dd532f648f087d587f07a1843c6e66a3dfca4fb0ea21944ed33c
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts += -DCMAKE_BUILD_TYPE:STRING=Release
|
||||
|
|
|
@ -42,7 +42,7 @@ with a couple of minor differences:
|
|||
- When running the release script, use the `--hotfix` flag. Provide the hash of
|
||||
the commit to be released as the first argument:
|
||||
|
||||
$ ./zcutil/make-release.py --hotfix <COMMIT_ID> <RELEASE> <RELEASE_PREV> <APPROX_RELEASE_HEIGHT>
|
||||
$ ./zcutil/make-release.py --hotfix <COMMIT_ID> <RELEASE> <RELEASE_PREV> <RELEASE_FROM> <APPROX_RELEASE_HEIGHT>
|
||||
|
||||
- To review the automated changes in git:
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
|
||||
.TH ZCASH-CLI "1" "December 2022" "zcash-cli v5.3.2" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
|
||||
.TH ZCASH-CLI "1" "January 2023" "zcash-cli v5.4.0-rc3" "User Commands"
|
||||
.SH NAME
|
||||
zcash-cli \- manual page for zcash-cli v5.3.2
|
||||
zcash-cli \- manual page for zcash-cli v5.4.0-rc3
|
||||
.SH DESCRIPTION
|
||||
Zcash RPC client version v5.3.2
|
||||
Zcash RPC client version v5.4.0\-rc3
|
||||
.PP
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/>.
|
||||
|
@ -25,7 +25,8 @@ This help message
|
|||
.HP
|
||||
\fB\-conf=\fR<file>
|
||||
.IP
|
||||
Specify configuration file (default: zcash.conf)
|
||||
Specify configuration file. Relative paths will be prefixed by datadir
|
||||
location. (default: zcash.conf)
|
||||
.HP
|
||||
\fB\-datadir=\fR<dir>
|
||||
.IP
|
||||
|
@ -79,8 +80,8 @@ Timeout in seconds during HTTP requests, or 0 for no timeout. (default:
|
|||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/>.
|
||||
|
||||
Copyright (C) 2009-2022 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2022 The Zcash Developers
|
||||
Copyright (C) 2009-2023 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2023 The Zcash Developers
|
||||
|
||||
This is experimental software.
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
|
||||
.TH ZCASH-TX "1" "December 2022" "zcash-tx v5.3.2" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
|
||||
.TH ZCASH-TX "1" "January 2023" "zcash-tx v5.4.0-rc3" "User Commands"
|
||||
.SH NAME
|
||||
zcash-tx \- manual page for zcash-tx v5.3.2
|
||||
zcash-tx \- manual page for zcash-tx v5.4.0-rc3
|
||||
.SH DESCRIPTION
|
||||
Zcash zcash\-tx utility version v5.3.2
|
||||
Zcash zcash\-tx utility version v5.4.0\-rc3
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
zcash\-tx [options] <hex\-tx> [commands]
|
||||
|
@ -91,8 +91,8 @@ Set register NAME to given JSON\-STRING
|
|||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/>.
|
||||
|
||||
Copyright (C) 2009-2022 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2022 The Zcash Developers
|
||||
Copyright (C) 2009-2023 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2023 The Zcash Developers
|
||||
|
||||
This is experimental software.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
|
||||
.TH ZCASHD-WALLET-TOOL "1" "December 2022" "zcashd-wallet-tool v5.3.2" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
|
||||
.TH ZCASHD-WALLET-TOOL "1" "January 2023" "zcashd-wallet-tool v5.4.0-rc3" "User Commands"
|
||||
.SH NAME
|
||||
zcashd-wallet-tool \- manual page for zcashd-wallet-tool v5.3.2
|
||||
zcashd-wallet-tool \- manual page for zcashd-wallet-tool v5.4.0-rc3
|
||||
.SH SYNOPSIS
|
||||
.B zcashd-wallet-tool
|
||||
[\fI\,OPTIONS\/\fR]
|
||||
|
@ -45,7 +45,7 @@ The environment variable RUST_LOG controls debug output, e.g.
|
|||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/>.
|
||||
|
||||
Copyright (C) 2015-2022 The Zcash Developers
|
||||
Copyright (C) 2015-2023 The Zcash Developers
|
||||
|
||||
This is experimental software.
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
|
||||
.TH ZCASHD "1" "December 2022" "zcashd v5.3.2" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
|
||||
.TH ZCASHD "1" "January 2023" "zcashd v5.4.0-rc3" "User Commands"
|
||||
.SH NAME
|
||||
zcashd \- manual page for zcashd v5.3.2
|
||||
zcashd \- manual page for zcashd v5.4.0-rc3
|
||||
.SH DESCRIPTION
|
||||
Zcash Daemon version v5.3.2
|
||||
Zcash Daemon version v5.4.0\-rc3
|
||||
.PP
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/>.
|
||||
|
@ -15,7 +15,11 @@ Start Zcash Daemon
|
|||
.HP
|
||||
\-?
|
||||
.IP
|
||||
This help message
|
||||
Print this help message and exit
|
||||
.HP
|
||||
\fB\-version\fR
|
||||
.IP
|
||||
Print version and exit
|
||||
.HP
|
||||
\fB\-alerts\fR
|
||||
.IP
|
||||
|
@ -30,11 +34,10 @@ long fork (%s in cmd is replaced by message)
|
|||
.IP
|
||||
Explicitly allow the use of the specified deprecated feature. Multiple
|
||||
instances of this parameter are permitted; values for <feature> must be
|
||||
selected from among {"none", "addrtype", "getnewaddress",
|
||||
"getrawchangeaddress", "legacy_privacy", "wallettxvjoinsplit",
|
||||
"z_getbalance", "z_getnewaddress", "z_gettotalbalance",
|
||||
"z_listaddresses", "dumpwallet", "zcrawjoinsplit", "zcrawkeygen",
|
||||
"zcrawreceive"}
|
||||
selected from among {"none", "gbt_oldhashes", "addrtype",
|
||||
"getnewaddress", "getrawchangeaddress", "legacy_privacy",
|
||||
"wallettxvjoinsplit", "z_getbalance", "z_getnewaddress",
|
||||
"z_gettotalbalance", "z_listaddresses"}
|
||||
.HP
|
||||
\fB\-blocknotify=\fR<cmd>
|
||||
.IP
|
||||
|
@ -51,7 +54,8 @@ How thorough the block verification of \fB\-checkblocks\fR is (0\-4, default: 3)
|
|||
.HP
|
||||
\fB\-conf=\fR<file>
|
||||
.IP
|
||||
Specify configuration file (default: zcash.conf)
|
||||
Specify configuration file. Relative paths will be prefixed by datadir
|
||||
location. (default: zcash.conf)
|
||||
.HP
|
||||
\fB\-daemon\fR
|
||||
.IP
|
||||
|
@ -71,8 +75,8 @@ Set database cache size in megabytes (4 to 16384, default: 450)
|
|||
.HP
|
||||
\fB\-debuglogfile=\fR<file>
|
||||
.IP
|
||||
Specify location of debug log file: this can be an absolute path or a
|
||||
path relative to the data directory (default: debug.log)
|
||||
Specify location of debug log file. Relative paths will be prefixed by a
|
||||
net\-specific datadir location. (default: debug.log)
|
||||
.HP
|
||||
\fB\-exportdir=\fR<dir>
|
||||
.IP
|
||||
|
@ -94,12 +98,13 @@ Keep at most <n> unconnectable transactions in memory (default: 100)
|
|||
.HP
|
||||
\fB\-par=\fR<n>
|
||||
.IP
|
||||
Set the number of script verification threads (\fB\-6\fR to 16, 0 = auto, <0 =
|
||||
Set the number of script verification threads (\fB\-16\fR to 16, 0 = auto, <0 =
|
||||
leave that many cores free, default: 0)
|
||||
.HP
|
||||
\fB\-pid=\fR<file>
|
||||
.IP
|
||||
Specify pid file (default: zcashd.pid)
|
||||
Specify pid file. Relative paths will be prefixed by a net\-specific
|
||||
datadir location. (default: zcashd.pid)
|
||||
.HP
|
||||
\fB\-prune=\fR<n>
|
||||
.IP
|
||||
|
@ -423,6 +428,10 @@ Include debug metrics in exposed node metrics.
|
|||
.PP
|
||||
Debugging/Testing options:
|
||||
.HP
|
||||
\fB\-uacomment=\fR<cmt>
|
||||
.IP
|
||||
Append comment to the user agent string
|
||||
.HP
|
||||
\fB\-debug=\fR<category>
|
||||
.IP
|
||||
Output debugging information (default: 0, supplying <category> is
|
||||
|
@ -536,6 +545,11 @@ Bind to given address to listen for JSON\-RPC connections. Use
|
|||
[host]:port notation for IPv6. This option can be specified multiple
|
||||
times (default: bind to all interfaces)
|
||||
.HP
|
||||
\fB\-rpccookiefile=\fR<loc>
|
||||
.IP
|
||||
Location of the auth cookie. Relative paths will be prefixed by a
|
||||
net\-specific datadir location. (default: data dir)
|
||||
.HP
|
||||
\fB\-rpcuser=\fR<user>
|
||||
.IP
|
||||
Username for JSON\-RPC connections
|
||||
|
@ -594,8 +608,8 @@ possible (default: 4)
|
|||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/>.
|
||||
|
||||
Copyright (C) 2009-2022 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2022 The Zcash Developers
|
||||
Copyright (C) 2009-2023 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2023 The Zcash Developers
|
||||
|
||||
This is experimental software.
|
||||
|
||||
|
|
|
@ -11,6 +11,49 @@ This release fixes an issue that could potentially cause a node to crash with th
|
|||
log message "The wallet's best block hash `<hash>` was not detected in restored
|
||||
chain state. Giving up; please restart with `-rescan`."
|
||||
|
||||
Transparent pool and chain supply tracking
|
||||
------------------------------------------
|
||||
|
||||
Since v2.0.0, `zcashd` has tracked the change in value within the Sprout and
|
||||
Sapling shielded pools for each block; v5.0.0 added the Orchard pool. This
|
||||
release completes the set, by tracking the change in value within the
|
||||
"transparent" pool (more precisely, the value stored in Bitcoin-style UTXOs).
|
||||
|
||||
`zcashd` also now tracks the change in "chain supply" for each block, defined as
|
||||
the sum of coinbase output values, minus unclaimed fees. This is precisely equal
|
||||
to the sum of the value in the transparent and shielded pools, and equivalent to
|
||||
the sum of all unspent coins/notes on the chain. It is bounded above by the
|
||||
theoretical maximum supply, but in practice is lower due to, for example, miners
|
||||
not claiming transaction fees.
|
||||
|
||||
> Bitcoin-style consensus rules implement fees as an imbalance between spent
|
||||
> coins/notes and newly-created coins/notes. The consensus rules require that a
|
||||
> coinbase transaction's outputs have a total value no greater than the sum of
|
||||
> that block's subsidy and the fees made available by the transactions in the
|
||||
> block. However, the consensus rules do not require that all of the available
|
||||
> funds are claimed, and a miner can create coinbase transactions with lower
|
||||
> value in the outputs (though in the case of Zcash, the consensus rules do
|
||||
> require the transaction to include [ZIP 1014](https://zips.z.cash/zip-1014)
|
||||
> Funding Stream outputs).
|
||||
|
||||
After upgrading to v5.4.0, `zcashd` will start tracking changes in transparent
|
||||
pool value and chain supply from the height at which it is restarted. Block
|
||||
heights prior to this will not have any information recorded. To track changes
|
||||
from genesis, and thus monitor the total transparent pool size and chain supply,
|
||||
you would need to restart your node with the `-reindex` option.
|
||||
|
||||
Wallet Performance Fixes
|
||||
------------------------
|
||||
|
||||
The 100MiB memory limit for the batch scanner has been replaced by a 1000-block
|
||||
limit. This eliminates an expensive call to determine the current memory usage
|
||||
of the batch scanner.
|
||||
|
||||
The following associated metric has been removed from the set of metrics
|
||||
reported when `-prometheusport` is set:
|
||||
|
||||
- (gauge) `zcashd.wallet.batchscanner.usage.bytes`
|
||||
|
||||
RPC Changes
|
||||
-----------
|
||||
|
||||
|
@ -20,6 +63,18 @@ RPC Changes
|
|||
case, they would (properly) require that the transaction didn’t have any
|
||||
change, but this could be confusing, as the documentation stated that these
|
||||
two conditions (using "ANY\_TADDR" and disallowing change) wouldn’t coincide.
|
||||
- A new value pool object with `"id": "transparent"` has been added to the
|
||||
`valuePools` list in `getblockchaininfo` and `getblock`.
|
||||
- A new `chainSupply` key has been added to `getblockchaininfo` and `getblock`
|
||||
to report the total chain supply as of that block height (if tracked), and the
|
||||
change in chain supply caused by the block (for `getblock`, if measured).
|
||||
|
||||
Mining
|
||||
-------
|
||||
|
||||
- Changes to `getblocktemplate` have been backported from upstream Bitcoin Core,
|
||||
to significantly improve its performance by doing more work ahead of time in
|
||||
the mempool (and reusing the work across multiple `getblocktemplate` calls).
|
||||
|
||||
[Deprecations](https://zcash.github.io/zcash/user/deprecation.html)
|
||||
--------------
|
||||
|
|
|
@ -0,0 +1,202 @@
|
|||
Notable changes
|
||||
===============
|
||||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
This release fixes an issue that could potentially cause a node to crash with the
|
||||
log message "The wallet's best block hash `<hash>` was not detected in restored
|
||||
chain state. Giving up; please restart with `-rescan`."
|
||||
|
||||
RPC Changes
|
||||
-----------
|
||||
|
||||
- `z_sendmany` will no longer select transparent coinbase when "ANY\_TADDR" is
|
||||
used as the `fromaddress`. It was already documented to do this, but the
|
||||
previous behavior didn’t match. When coinbase notes were selected in this
|
||||
case, they would (properly) require that the transaction didn’t have any
|
||||
change, but this could be confusing, as the documentation stated that these
|
||||
two conditions (using "ANY\_TADDR" and disallowing change) wouldn’t coincide.
|
||||
|
||||
[Deprecations](https://zcash.github.io/zcash/user/deprecation.html)
|
||||
--------------
|
||||
|
||||
The following features have been deprecated, but remain available by default.
|
||||
These features may be disabled by setting `-allowdeprecated=none`. 18 weeks
|
||||
after this release, these features will be disabled by default and the following
|
||||
flags to `-allowdeprecated` will be required to permit their continued use:
|
||||
|
||||
- `gbt_oldhashes`: the `finalsaplingroothash`, `lightclientroothash`, and
|
||||
`blockcommitmentshash` fields in the output of `getblocktemplate` have been
|
||||
replaced by the `defaultroots` field.
|
||||
|
||||
The following previously-deprecated features have been disabled by default, and
|
||||
will be removed in 18 weeks:
|
||||
|
||||
- `legacy_privacy`
|
||||
- `getnewaddress`
|
||||
- `getrawchangeaddress`
|
||||
- `z_getbalance`
|
||||
- `z_gettotalbalance`
|
||||
- `z_getnewaddress`
|
||||
- `z_listaddresses`
|
||||
- `addrtype`
|
||||
- `wallettxvjoinsplit`
|
||||
|
||||
The following previously-deprecated features have been removed:
|
||||
|
||||
- `dumpwallet`
|
||||
- `zcrawreceive`
|
||||
- `zcrawjoinsplit`
|
||||
- `zcrawkeygen`
|
||||
|
||||
Platform Support
|
||||
----------------
|
||||
|
||||
- CentOS 8 has been removed from the list of supported platforms. It reached EoL
|
||||
on December 31st 2021, and does not satisfy our Tier 2 policy requirements.
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Alex Morcos (3):
|
||||
Make accessing mempool parents and children public
|
||||
Expose FormatStateMessage
|
||||
Rewrite CreateNewBlock
|
||||
|
||||
Carl Dong (4):
|
||||
depends: More robust cmake invocation
|
||||
depends: Cleanup CMake invocation
|
||||
depends: Prepend CPPFLAGS to C{,XX}FLAGS for CMake
|
||||
depends: Specify LDFLAGS to cmake as well
|
||||
|
||||
Daira Hopwood (6):
|
||||
Add tl::expected. refs #4816
|
||||
The std::expected proposal has unnecessary instances of undefined behaviour for operator->, operator*, and error(). Make these into assertion failures (this still conforms to the proposal).
|
||||
Refactor HaveShieldedRequirements to use tl::expected (example with a void T) and rename it to CheckShieldedRequirements.
|
||||
tl::expected follow-up to address @str4d's comments.
|
||||
Cleanup after removing dumpwallet.
|
||||
Change the time that the wallet will wait for the block index to load from 5 minutes to 2 hours.
|
||||
|
||||
Dimitris Apostolou (2):
|
||||
Fix typos
|
||||
Fix typos
|
||||
|
||||
Greg Pfeil (22):
|
||||
Add PrivacyPolicyMeet
|
||||
Remove trailing whitespace in fetch-params.sh
|
||||
Migrate fetch-params.sh to bash
|
||||
Scope the fetch-params lock file to the user
|
||||
Update comments to match changed tests
|
||||
Put utf8.h in the correct place
|
||||
Don’t select transparent coinbase with ANY_TADDR
|
||||
Update failing tests after fixing ANY_TADDR behavior
|
||||
Apply suggestions from code review
|
||||
Apply suggestions from code review
|
||||
Appease ShellCheck
|
||||
Defer fixing docker/entrypoint.sh lint failure
|
||||
Apply suggestions from code review
|
||||
Fix a minor bug in docker/entrypoint.sh
|
||||
Improve PrivacyPolicy comments
|
||||
Apply suggestions from code review
|
||||
Add release notes
|
||||
Update src/wallet/asyncrpcoperation_sendmany.cpp
|
||||
Fix a missing newline in the RPC docs
|
||||
No longer test_received_sprout
|
||||
Use cached sprout addresses rather than funding
|
||||
Update overwinter test to not shield to Sprout
|
||||
|
||||
Jack Grigg (39):
|
||||
test: Handle mining slow start inside `CreateNewBlock_validity`
|
||||
test: Improve CreateNewBlock_validity exception checks
|
||||
txdb: Remove const annotation from blockinfo iterator type
|
||||
Remove `dumpwallet` RPC method
|
||||
qa: Refactor `wallet_deprecation` test to simplify deprecation changes
|
||||
Remove `zcraw*` RPC methods
|
||||
txdb: Clean up for loop syntax in `WriteBatchSync`
|
||||
Disable previously-deprecated features by default
|
||||
Deprecate old hash fields of `getblocktemplate`
|
||||
qa: Change show_help RPC test to print out differences
|
||||
qa: Update mempool_packages RPC test after deprecation ratcheting
|
||||
qa: Import Rust crate audits from Firefox
|
||||
qa: Import Rust crate audits from the Bytecode Alliance
|
||||
qa: Import Rust crate audits from Embark Studios
|
||||
qa: Remove audit-as-crates-io for non-third-party crates
|
||||
cargo update
|
||||
zcash_primitives 0.9
|
||||
clearscreen 2.0
|
||||
depends: googletest 1.12.1
|
||||
Remove CentOS 8 as a supported platform
|
||||
depends: native_zstd 1.5.2
|
||||
depends: native_ccache 4.6.3
|
||||
depends: Add package for native_cmake 3.25.1
|
||||
depends: Force cmake to install libzstd in lib/
|
||||
build-aux: Update Boost macros to latest serials
|
||||
build: Bump required Boost version
|
||||
depends: Force Boost library to be installed in lib/
|
||||
depends: Add tl_expected to update checker
|
||||
depends: Boost 1.81.0
|
||||
depends: utfcpp 3.2.3
|
||||
qa: Postpone LLVM 15 and CCache 4.7 updates
|
||||
depends: Update cxx to 1.0.83
|
||||
cargo update
|
||||
Document -clockoffset option
|
||||
qa: Update show_help RPC test
|
||||
doc: Fix arguments to make-release.py in hotfix process
|
||||
depends: CMake 3.25.2
|
||||
make-release.py: Versioning changes for 5.4.0-rc1.
|
||||
make-release.py: Updated manpages for 5.4.0-rc1.
|
||||
|
||||
James O'Beirne (2):
|
||||
Clarify help messages for path args to mention datadir prefix
|
||||
Add AbsPathForConfigVal to consolidate datadir prefixing for path args
|
||||
|
||||
Kris Nuttycombe (6):
|
||||
Add TransactionStrategy::IsCompatibleWith
|
||||
Modify TransactionBuilder to use the standard default fee.
|
||||
Factor out memo parsing from asyncrpcoperation_sendmany
|
||||
Remove mergetoaddress_sprout test as sending to Sprout is no longer supported.
|
||||
Remove wallet_shieldcoinbase_sprout test.
|
||||
Update `mergetoaddress_mixednotes.py` to no longer send to Sprout.
|
||||
|
||||
Marco Falke (4):
|
||||
[init] Add missing help for args
|
||||
[init] Help Msg: Use Params(CBaseChainParams::MAIN)
|
||||
Clarify mocktime help message
|
||||
init: Fix help message for checkblockindex
|
||||
|
||||
Marius Kjærstad (5):
|
||||
Hardened checkpoint update at block 1860000 for mainnet
|
||||
Update src/chainparams.cpp
|
||||
Some more formatting changes to chainparams.cpp
|
||||
Forgot to add 0x
|
||||
Add some more historical checkpoints
|
||||
|
||||
Mark Friedenbach (1):
|
||||
Prevent block.nTime from decreasing
|
||||
|
||||
Marshall Gaucher (4):
|
||||
Update zcash-build-bench.yml
|
||||
Update README.md
|
||||
Update contrib/ci-builders/tekton/tekton-labs/tasks/zcash-build.yml
|
||||
Update contrib/ci-builders/tekton/tekton-labs/tasks/zcash-build-test.yml
|
||||
|
||||
Michał Janiszewski (1):
|
||||
Update debian/compat to version 13
|
||||
|
||||
Russell Yanofsky (2):
|
||||
depends: Add CMake helper for building packages
|
||||
depends: Set CMAKE_INSTALL_RPATH for native packages
|
||||
|
||||
Suhas Daftuar (3):
|
||||
Track transaction packages in CTxMemPoolEntry
|
||||
Add test showing bug in mempool packages
|
||||
Fix mempool package tracking edge case
|
||||
|
||||
Wladimir J. van der Laan (1):
|
||||
rpc: Write authcookie atomically
|
||||
|
||||
Marshall Gaucher (2):
|
||||
add basic tekton zcash env
|
||||
update memory targets with heaptrack
|
||||
|
|
@ -0,0 +1,262 @@
|
|||
Notable changes
|
||||
===============
|
||||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
This release fixes an issue that could potentially cause a node to crash with the
|
||||
log message "The wallet's best block hash `<hash>` was not detected in restored
|
||||
chain state. Giving up; please restart with `-rescan`."
|
||||
|
||||
Transparent pool and chain supply tracking
|
||||
------------------------------------------
|
||||
|
||||
Since v2.0.0, `zcashd` has tracked the change in value within the Sprout and
|
||||
Sapling shielded pools for each block; v5.0.0 added the Orchard pool. This
|
||||
release completes the set, by tracking the change in value within the
|
||||
"transparent" pool (more precisely, the value stored in Bitcoin-style UTXOs).
|
||||
|
||||
`zcashd` also now tracks the change in "chain supply" for each block, defined as
|
||||
the sum of coinbase output values, minus unclaimed fees. This is precisely equal
|
||||
to the sum of the value in the transparent and shielded pools, and equivalent to
|
||||
the sum of all unspent coins/notes on the chain. It is bounded above by the
|
||||
theoretical maximum supply, but in practice is lower due to, for example, miners
|
||||
not claiming transaction fees.
|
||||
|
||||
> Bitcoin-style consensus rules implement fees as an imbalance between spent
|
||||
> coins/notes and newly-created coins/notes. The consensus rules require that a
|
||||
> coinbase transaction's outputs have a total value no greater than the sum of
|
||||
> that block's subsidy and the fees made available by the transactions in the
|
||||
> block. However, the consensus rules do not require that all of the available
|
||||
> funds are claimed, and a miner can create coinbase transactions with lower
|
||||
> value in the outputs (though in the case of Zcash, the consensus rules do
|
||||
> require the transaction to include [ZIP 1014](https://zips.z.cash/zip-1014)
|
||||
> Funding Stream outputs).
|
||||
|
||||
After upgrading to v5.4.0, `zcashd` will start tracking changes in transparent
|
||||
pool value and chain supply from the height at which it is restarted. Block
|
||||
heights prior to this will not have any information recorded. To track changes
|
||||
from genesis, and thus monitor the total transparent pool size and chain supply,
|
||||
you will need to restart your node with the `-reindex` option.
|
||||
|
||||
RPC Changes
|
||||
-----------
|
||||
|
||||
- `z_sendmany` will no longer select transparent coinbase when "ANY\_TADDR" is
|
||||
used as the `fromaddress`. It was already documented to do this, but the
|
||||
previous behavior didn’t match. When coinbase notes were selected in this
|
||||
case, they would (properly) require that the transaction didn’t have any
|
||||
change, but this could be confusing, as the documentation stated that these
|
||||
two conditions (using "ANY\_TADDR" and disallowing change) wouldn’t coincide.
|
||||
- A new value pool object with `"id": "transparent"` has been added to the
|
||||
`valuePools` list in `getblockchaininfo` and `getblock`.
|
||||
- A new `chainSupply` key has been added to `getblockchaininfo` and `getblock`
|
||||
to report the total chain supply as of that block height (if tracked), and the
|
||||
change in chain supply caused by the block (for `getblock`, if measured).
|
||||
|
||||
Mining
|
||||
-------
|
||||
|
||||
- Changes to `getblocktemplate` have been backported from upstream Bitcoin Core,
|
||||
to significantly improve its performance by doing more work ahead of time in
|
||||
the mempool (and reusing the work across multiple `getblocktemplate` calls).
|
||||
|
||||
[Deprecations](https://zcash.github.io/zcash/user/deprecation.html)
|
||||
--------------
|
||||
|
||||
The following features have been deprecated, but remain available by default.
|
||||
These features may be disabled by setting `-allowdeprecated=none`. 18 weeks
|
||||
after this release, these features will be disabled by default and the following
|
||||
flags to `-allowdeprecated` will be required to permit their continued use:
|
||||
|
||||
- `gbt_oldhashes`: the `finalsaplingroothash`, `lightclientroothash`, and
|
||||
`blockcommitmentshash` fields in the output of `getblocktemplate` have been
|
||||
replaced by the `defaultroots` field.
|
||||
|
||||
The following previously-deprecated features have been disabled by default, and
|
||||
will be removed in 18 weeks:
|
||||
|
||||
- `legacy_privacy`
|
||||
- `getnewaddress`
|
||||
- `getrawchangeaddress`
|
||||
- `z_getbalance`
|
||||
- `z_gettotalbalance`
|
||||
- `z_getnewaddress`
|
||||
- `z_listaddresses`
|
||||
- `addrtype`
|
||||
- `wallettxvjoinsplit`
|
||||
|
||||
The following previously-deprecated features have been removed:
|
||||
|
||||
- `dumpwallet`
|
||||
- `zcrawreceive`
|
||||
- `zcrawjoinsplit`
|
||||
- `zcrawkeygen`
|
||||
|
||||
Platform Support
|
||||
----------------
|
||||
|
||||
- CentOS 8 has been removed from the list of supported platforms. It reached EoL
|
||||
on December 31st 2021, and does not satisfy our Tier 2 policy requirements.
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Alex Morcos (3):
|
||||
Make accessing mempool parents and children public
|
||||
Expose FormatStateMessage
|
||||
Rewrite CreateNewBlock
|
||||
|
||||
Alfredo Garcia (1):
|
||||
Add chain supply and transparent value to block index.
|
||||
|
||||
Carl Dong (4):
|
||||
depends: More robust cmake invocation
|
||||
depends: Cleanup CMake invocation
|
||||
depends: Prepend CPPFLAGS to C{,XX}FLAGS for CMake
|
||||
depends: Specify LDFLAGS to cmake as well
|
||||
|
||||
Daira Hopwood (6):
|
||||
Add tl::expected. refs #4816
|
||||
The std::expected proposal has unnecessary instances of undefined behaviour for operator->, operator*, and error(). Make these into assertion failures (this still conforms to the proposal).
|
||||
Refactor HaveShieldedRequirements to use tl::expected (example with a void T) and rename it to CheckShieldedRequirements.
|
||||
tl::expected follow-up to address @str4d's comments.
|
||||
Cleanup after removing dumpwallet.
|
||||
Change the time that the wallet will wait for the block index to load from 5 minutes to 2 hours.
|
||||
|
||||
Dimitris Apostolou (2):
|
||||
Fix typos
|
||||
Fix typos
|
||||
|
||||
Greg Pfeil (22):
|
||||
Add PrivacyPolicyMeet
|
||||
Remove trailing whitespace in fetch-params.sh
|
||||
Migrate fetch-params.sh to bash
|
||||
Scope the fetch-params lock file to the user
|
||||
Update comments to match changed tests
|
||||
Put utf8.h in the correct place
|
||||
Don’t select transparent coinbase with ANY_TADDR
|
||||
Update failing tests after fixing ANY_TADDR behavior
|
||||
Apply suggestions from code review
|
||||
Apply suggestions from code review
|
||||
Appease ShellCheck
|
||||
Defer fixing docker/entrypoint.sh lint failure
|
||||
Apply suggestions from code review
|
||||
Fix a minor bug in docker/entrypoint.sh
|
||||
Improve PrivacyPolicy comments
|
||||
Apply suggestions from code review
|
||||
Add release notes
|
||||
Update src/wallet/asyncrpcoperation_sendmany.cpp
|
||||
Fix a missing newline in the RPC docs
|
||||
No longer test_received_sprout
|
||||
Use cached sprout addresses rather than funding
|
||||
Update overwinter test to not shield to Sprout
|
||||
|
||||
Jack Grigg (45):
|
||||
test: Handle mining slow start inside `CreateNewBlock_validity`
|
||||
test: Improve CreateNewBlock_validity exception checks
|
||||
txdb: Remove const annotation from blockinfo iterator type
|
||||
Remove `dumpwallet` RPC method
|
||||
qa: Refactor `wallet_deprecation` test to simplify deprecation changes
|
||||
Remove `zcraw*` RPC methods
|
||||
txdb: Clean up for loop syntax in `WriteBatchSync`
|
||||
Disable previously-deprecated features by default
|
||||
Deprecate old hash fields of `getblocktemplate`
|
||||
qa: Change show_help RPC test to print out differences
|
||||
qa: Update mempool_packages RPC test after deprecation ratcheting
|
||||
qa: Import Rust crate audits from Firefox
|
||||
qa: Import Rust crate audits from the Bytecode Alliance
|
||||
qa: Import Rust crate audits from Embark Studios
|
||||
qa: Remove audit-as-crates-io for non-third-party crates
|
||||
cargo update
|
||||
zcash_primitives 0.9
|
||||
clearscreen 2.0
|
||||
depends: googletest 1.12.1
|
||||
Remove CentOS 8 as a supported platform
|
||||
depends: native_zstd 1.5.2
|
||||
depends: native_ccache 4.6.3
|
||||
depends: Add package for native_cmake 3.25.1
|
||||
depends: Force cmake to install libzstd in lib/
|
||||
build-aux: Update Boost macros to latest serials
|
||||
build: Bump required Boost version
|
||||
depends: Force Boost library to be installed in lib/
|
||||
depends: Add tl_expected to update checker
|
||||
depends: Boost 1.81.0
|
||||
depends: utfcpp 3.2.3
|
||||
qa: Postpone LLVM 15 and CCache 4.7 updates
|
||||
depends: Update cxx to 1.0.83
|
||||
cargo update
|
||||
Document -clockoffset option
|
||||
qa: Update show_help RPC test
|
||||
doc: Fix arguments to make-release.py in hotfix process
|
||||
depends: CMake 3.25.2
|
||||
make-release.py: Versioning changes for 5.4.0-rc1.
|
||||
make-release.py: Updated manpages for 5.4.0-rc1.
|
||||
make-release.py: Updated release notes and changelog for 5.4.0-rc1.
|
||||
depends: Update cxx to 1.0.87
|
||||
metrics: Update `zcash.pool.value.zatoshis` gauge for transparent pool
|
||||
Update release notes with notable changes for v5.4.0
|
||||
make-release.py: Versioning changes for 5.4.0-rc2.
|
||||
make-release.py: Updated manpages for 5.4.0-rc2.
|
||||
|
||||
James O'Beirne (2):
|
||||
Clarify help messages for path args to mention datadir prefix
|
||||
Add AbsPathForConfigVal to consolidate datadir prefixing for path args
|
||||
|
||||
Kris Nuttycombe (14):
|
||||
Add TransactionStrategy::IsCompatibleWith
|
||||
Modify TransactionBuilder to use the standard default fee.
|
||||
Factor out memo parsing from asyncrpcoperation_sendmany
|
||||
Remove mergetoaddress_sprout test as sending to Sprout is no longer supported.
|
||||
Remove wallet_shieldcoinbase_sprout test.
|
||||
Update `mergetoaddress_mixednotes.py` to no longer send to Sprout.
|
||||
Verify sum of pool balances against chain total supply.
|
||||
Apply suggestions from code review
|
||||
Add script for verifying block rewards and fees not claimed by miners.
|
||||
Apply suggestions from code review
|
||||
Remove unnecessary delta_count variable.
|
||||
Replace fix-copyright-headers.py with a script that creates a scripted-diff git commit.
|
||||
scripted-diff: Update Zcash copyrights to 2023
|
||||
Apply suggestions from code review
|
||||
|
||||
Marco Falke (4):
|
||||
[init] Add missing help for args
|
||||
[init] Help Msg: Use Params(CBaseChainParams::MAIN)
|
||||
Clarify mocktime help message
|
||||
init: Fix help message for checkblockindex
|
||||
|
||||
Marius Kjærstad (5):
|
||||
Hardened checkpoint update at block 1860000 for mainnet
|
||||
Update src/chainparams.cpp
|
||||
Some more formatting changes to chainparams.cpp
|
||||
Forgot to add 0x
|
||||
Add some more historical checkpoints
|
||||
|
||||
Mark Friedenbach (1):
|
||||
Prevent block.nTime from decreasing
|
||||
|
||||
Marshall Gaucher (4):
|
||||
Update zcash-build-bench.yml
|
||||
Update README.md
|
||||
Update contrib/ci-builders/tekton/tekton-labs/tasks/zcash-build.yml
|
||||
Update contrib/ci-builders/tekton/tekton-labs/tasks/zcash-build-test.yml
|
||||
|
||||
Michał Janiszewski (1):
|
||||
Update debian/compat to version 13
|
||||
|
||||
Russell Yanofsky (2):
|
||||
depends: Add CMake helper for building packages
|
||||
depends: Set CMAKE_INSTALL_RPATH for native packages
|
||||
|
||||
Suhas Daftuar (3):
|
||||
Track transaction packages in CTxMemPoolEntry
|
||||
Add test showing bug in mempool packages
|
||||
Fix mempool package tracking edge case
|
||||
|
||||
Wladimir J. van der Laan (1):
|
||||
rpc: Write authcookie atomically
|
||||
|
||||
Marshall Gaucher (2):
|
||||
add basic tekton zcash env
|
||||
update memory targets with heaptrack
|
||||
|
|
@ -0,0 +1,288 @@
|
|||
Notable changes
|
||||
===============
|
||||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
This release fixes an issue that could potentially cause a node to crash with the
|
||||
log message "The wallet's best block hash `<hash>` was not detected in restored
|
||||
chain state. Giving up; please restart with `-rescan`."
|
||||
|
||||
Transparent pool and chain supply tracking
|
||||
------------------------------------------
|
||||
|
||||
Since v2.0.0, `zcashd` has tracked the change in value within the Sprout and
|
||||
Sapling shielded pools for each block; v5.0.0 added the Orchard pool. This
|
||||
release completes the set, by tracking the change in value within the
|
||||
"transparent" pool (more precisely, the value stored in Bitcoin-style UTXOs).
|
||||
|
||||
`zcashd` also now tracks the change in "chain supply" for each block, defined as
|
||||
the sum of coinbase output values, minus unclaimed fees. This is precisely equal
|
||||
to the sum of the value in the transparent and shielded pools, and equivalent to
|
||||
the sum of all unspent coins/notes on the chain. It is bounded above by the
|
||||
theoretical maximum supply, but in practice is lower due to, for example, miners
|
||||
not claiming transaction fees.
|
||||
|
||||
> Bitcoin-style consensus rules implement fees as an imbalance between spent
|
||||
> coins/notes and newly-created coins/notes. The consensus rules require that a
|
||||
> coinbase transaction's outputs have a total value no greater than the sum of
|
||||
> that block's subsidy and the fees made available by the transactions in the
|
||||
> block. However, the consensus rules do not require that all of the available
|
||||
> funds are claimed, and a miner can create coinbase transactions with lower
|
||||
> value in the outputs (though in the case of Zcash, the consensus rules do
|
||||
> require the transaction to include [ZIP 1014](https://zips.z.cash/zip-1014)
|
||||
> Funding Stream outputs).
|
||||
|
||||
After upgrading to v5.4.0, `zcashd` will start tracking changes in transparent
|
||||
pool value and chain supply from the height at which it is restarted. Block
|
||||
heights prior to this will not have any information recorded. To track changes
|
||||
from genesis, and thus monitor the total transparent pool size and chain supply,
|
||||
you would need to restart your node with the `-reindex` option.
|
||||
|
||||
Wallet Performance Fixes
|
||||
------------------------
|
||||
|
||||
The 100MiB memory limit for the batch scanner has been replaced by a 1000-block
|
||||
limit. This eliminates an expensive call to determine the current memory usage
|
||||
of the batch scanner.
|
||||
|
||||
The following associated metric has been removed from the set of metrics
|
||||
reported when `-prometheusport` is set:
|
||||
|
||||
- (gauge) `zcashd.wallet.batchscanner.usage.bytes`
|
||||
|
||||
RPC Changes
|
||||
-----------
|
||||
|
||||
- `z_sendmany` will no longer select transparent coinbase when "ANY\_TADDR" is
|
||||
used as the `fromaddress`. It was already documented to do this, but the
|
||||
previous behavior didn’t match. When coinbase notes were selected in this
|
||||
case, they would (properly) require that the transaction didn’t have any
|
||||
change, but this could be confusing, as the documentation stated that these
|
||||
two conditions (using "ANY\_TADDR" and disallowing change) wouldn’t coincide.
|
||||
- A new value pool object with `"id": "transparent"` has been added to the
|
||||
`valuePools` list in `getblockchaininfo` and `getblock`.
|
||||
- A new `chainSupply` key has been added to `getblockchaininfo` and `getblock`
|
||||
to report the total chain supply as of that block height (if tracked), and the
|
||||
change in chain supply caused by the block (for `getblock`, if measured).
|
||||
|
||||
Mining
|
||||
-------
|
||||
|
||||
- Changes to `getblocktemplate` have been backported from upstream Bitcoin Core,
|
||||
to significantly improve its performance by doing more work ahead of time in
|
||||
the mempool (and reusing the work across multiple `getblocktemplate` calls).
|
||||
|
||||
[Deprecations](https://zcash.github.io/zcash/user/deprecation.html)
|
||||
--------------
|
||||
|
||||
The following features have been deprecated, but remain available by default.
|
||||
These features may be disabled by setting `-allowdeprecated=none`. 18 weeks
|
||||
after this release, these features will be disabled by default and the following
|
||||
flags to `-allowdeprecated` will be required to permit their continued use:
|
||||
|
||||
- `gbt_oldhashes`: the `finalsaplingroothash`, `lightclientroothash`, and
|
||||
`blockcommitmentshash` fields in the output of `getblocktemplate` have been
|
||||
replaced by the `defaultroots` field.
|
||||
|
||||
The following previously-deprecated features have been disabled by default, and
|
||||
will be removed in 18 weeks:
|
||||
|
||||
- `legacy_privacy`
|
||||
- `getnewaddress`
|
||||
- `getrawchangeaddress`
|
||||
- `z_getbalance`
|
||||
- `z_gettotalbalance`
|
||||
- `z_getnewaddress`
|
||||
- `z_listaddresses`
|
||||
- `addrtype`
|
||||
- `wallettxvjoinsplit`
|
||||
|
||||
The following previously-deprecated features have been removed:
|
||||
|
||||
- `dumpwallet`
|
||||
- `zcrawreceive`
|
||||
- `zcrawjoinsplit`
|
||||
- `zcrawkeygen`
|
||||
|
||||
Platform Support
|
||||
----------------
|
||||
|
||||
- CentOS 8 has been removed from the list of supported platforms. It reached EoL
|
||||
on December 31st 2021, and does not satisfy our Tier 2 policy requirements.
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Alex Morcos (3):
|
||||
Make accessing mempool parents and children public
|
||||
Expose FormatStateMessage
|
||||
Rewrite CreateNewBlock
|
||||
|
||||
Alfredo Garcia (1):
|
||||
Add chain supply and transparent value to block index.
|
||||
|
||||
Carl Dong (4):
|
||||
depends: More robust cmake invocation
|
||||
depends: Cleanup CMake invocation
|
||||
depends: Prepend CPPFLAGS to C{,XX}FLAGS for CMake
|
||||
depends: Specify LDFLAGS to cmake as well
|
||||
|
||||
Daira Hopwood (7):
|
||||
Add tl::expected. refs #4816
|
||||
The std::expected proposal has unnecessary instances of undefined behaviour for operator->, operator*, and error(). Make these into assertion failures (this still conforms to the proposal).
|
||||
Refactor HaveShieldedRequirements to use tl::expected (example with a void T) and rename it to CheckShieldedRequirements.
|
||||
tl::expected follow-up to address @str4d's comments.
|
||||
Cleanup after removing dumpwallet.
|
||||
Change the time that the wallet will wait for the block index to load from 5 minutes to 2 hours.
|
||||
Postpone updates for 5.4.0.
|
||||
|
||||
Dimitris Apostolou (2):
|
||||
Fix typos
|
||||
Fix typos
|
||||
|
||||
Greg Pfeil (23):
|
||||
Add PrivacyPolicyMeet
|
||||
Remove trailing whitespace in fetch-params.sh
|
||||
Migrate fetch-params.sh to bash
|
||||
Scope the fetch-params lock file to the user
|
||||
Update comments to match changed tests
|
||||
Put utf8.h in the correct place
|
||||
Don’t select transparent coinbase with ANY_TADDR
|
||||
Update failing tests after fixing ANY_TADDR behavior
|
||||
Apply suggestions from code review
|
||||
Apply suggestions from code review
|
||||
Appease ShellCheck
|
||||
Defer fixing docker/entrypoint.sh lint failure
|
||||
Apply suggestions from code review
|
||||
Fix a minor bug in docker/entrypoint.sh
|
||||
Improve PrivacyPolicy comments
|
||||
Apply suggestions from code review
|
||||
Add release notes
|
||||
Update src/wallet/asyncrpcoperation_sendmany.cpp
|
||||
Fix a missing newline in the RPC docs
|
||||
No longer test_received_sprout
|
||||
Use cached sprout addresses rather than funding
|
||||
Update overwinter test to not shield to Sprout
|
||||
Support Bash 3.2 in fetch-params.sh
|
||||
|
||||
Jack Grigg (47):
|
||||
test: Handle mining slow start inside `CreateNewBlock_validity`
|
||||
test: Improve CreateNewBlock_validity exception checks
|
||||
txdb: Remove const annotation from blockinfo iterator type
|
||||
Remove `dumpwallet` RPC method
|
||||
qa: Refactor `wallet_deprecation` test to simplify deprecation changes
|
||||
Remove `zcraw*` RPC methods
|
||||
txdb: Clean up for loop syntax in `WriteBatchSync`
|
||||
Disable previously-deprecated features by default
|
||||
Deprecate old hash fields of `getblocktemplate`
|
||||
qa: Change show_help RPC test to print out differences
|
||||
qa: Update mempool_packages RPC test after deprecation ratcheting
|
||||
qa: Import Rust crate audits from Firefox
|
||||
qa: Import Rust crate audits from the Bytecode Alliance
|
||||
qa: Import Rust crate audits from Embark Studios
|
||||
qa: Remove audit-as-crates-io for non-third-party crates
|
||||
cargo update
|
||||
zcash_primitives 0.9
|
||||
clearscreen 2.0
|
||||
depends: googletest 1.12.1
|
||||
Remove CentOS 8 as a supported platform
|
||||
depends: native_zstd 1.5.2
|
||||
depends: native_ccache 4.6.3
|
||||
depends: Add package for native_cmake 3.25.1
|
||||
depends: Force cmake to install libzstd in lib/
|
||||
build-aux: Update Boost macros to latest serials
|
||||
build: Bump required Boost version
|
||||
depends: Force Boost library to be installed in lib/
|
||||
depends: Add tl_expected to update checker
|
||||
depends: Boost 1.81.0
|
||||
depends: utfcpp 3.2.3
|
||||
qa: Postpone LLVM 15 and CCache 4.7 updates
|
||||
depends: Update cxx to 1.0.83
|
||||
cargo update
|
||||
Document -clockoffset option
|
||||
qa: Update show_help RPC test
|
||||
doc: Fix arguments to make-release.py in hotfix process
|
||||
depends: CMake 3.25.2
|
||||
make-release.py: Versioning changes for 5.4.0-rc1.
|
||||
make-release.py: Updated manpages for 5.4.0-rc1.
|
||||
make-release.py: Updated release notes and changelog for 5.4.0-rc1.
|
||||
qa: Enable RPC test execution to be overridden from Python
|
||||
depends: Postpone cxx update
|
||||
metrics: Update `zcash.pool.value.zatoshis` gauge for transparent pool
|
||||
Update release notes with notable changes for v5.4.0
|
||||
make-release.py: Versioning changes for 5.4.0-rc2.
|
||||
make-release.py: Updated manpages for 5.4.0-rc2.
|
||||
make-release.py: Updated release notes and changelog for 5.4.0-rc2.
|
||||
|
||||
James O'Beirne (2):
|
||||
Clarify help messages for path args to mention datadir prefix
|
||||
Add AbsPathForConfigVal to consolidate datadir prefixing for path args
|
||||
|
||||
Kris Nuttycombe (24):
|
||||
Add TransactionStrategy::IsCompatibleWith
|
||||
Modify TransactionBuilder to use the standard default fee.
|
||||
Factor out memo parsing from asyncrpcoperation_sendmany
|
||||
Remove mergetoaddress_sprout test as sending to Sprout is no longer supported.
|
||||
Remove wallet_shieldcoinbase_sprout test.
|
||||
Update `mergetoaddress_mixednotes.py` to no longer send to Sprout.
|
||||
Verify sum of pool balances against chain total supply.
|
||||
Apply suggestions from code review
|
||||
Add script for verifying block rewards and fees not claimed by miners.
|
||||
Apply suggestions from code review
|
||||
Remove unnecessary delta_count variable.
|
||||
Replace fix-copyright-headers.py with a script that creates a scripted-diff git commit.
|
||||
scripted-diff: Update Zcash copyrights to 2023
|
||||
Apply suggestions from code review
|
||||
Enable tests of chain supply & transparent pool balance.
|
||||
Update doc/release-notes.md
|
||||
Fixes an error in `zcash-cli help` following the removal of `dumpwallet`.
|
||||
Allow rescan to exit in the case that Ctrl-C is pressed.
|
||||
Fetch recently conflicted transactions incrementally in ThreadNotifyWallet.
|
||||
Bound wallet batch scanner size to 1000 blocks instead of 100 MiB
|
||||
Remove unused DEFAULT_BATCHSCANNERMEMLIMIT constant.
|
||||
Tolerate missing cached conflict data in ThreadNotifyWallets
|
||||
make-release.py: Versioning changes for 5.4.0-rc3.
|
||||
make-release.py: Updated manpages for 5.4.0-rc3.
|
||||
|
||||
Marco Falke (4):
|
||||
[init] Add missing help for args
|
||||
[init] Help Msg: Use Params(CBaseChainParams::MAIN)
|
||||
Clarify mocktime help message
|
||||
init: Fix help message for checkblockindex
|
||||
|
||||
Marius Kjærstad (5):
|
||||
Hardened checkpoint update at block 1860000 for mainnet
|
||||
Update src/chainparams.cpp
|
||||
Some more formatting changes to chainparams.cpp
|
||||
Forgot to add 0x
|
||||
Add some more historical checkpoints
|
||||
|
||||
Mark Friedenbach (1):
|
||||
Prevent block.nTime from decreasing
|
||||
|
||||
Marshall Gaucher (4):
|
||||
Update zcash-build-bench.yml
|
||||
Update README.md
|
||||
Update contrib/ci-builders/tekton/tekton-labs/tasks/zcash-build.yml
|
||||
Update contrib/ci-builders/tekton/tekton-labs/tasks/zcash-build-test.yml
|
||||
|
||||
Michał Janiszewski (1):
|
||||
Update debian/compat to version 13
|
||||
|
||||
Russell Yanofsky (2):
|
||||
depends: Add CMake helper for building packages
|
||||
depends: Set CMAKE_INSTALL_RPATH for native packages
|
||||
|
||||
Suhas Daftuar (3):
|
||||
Track transaction packages in CTxMemPoolEntry
|
||||
Add test showing bug in mempool packages
|
||||
Fix mempool package tracking edge case
|
||||
|
||||
Wladimir J. van der Laan (1):
|
||||
rpc: Write authcookie atomically
|
||||
|
||||
Marshall Gaucher (2):
|
||||
add basic tekton zcash env
|
||||
update memory targets with heaptrack
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
from test_framework.mininode import COIN
|
||||
from test_framework.test_framework import BitcoinTestFramework
|
||||
from test_framework.util import (
|
||||
assert_equal, assert_true,
|
||||
|
@ -33,9 +34,22 @@ class WalletPersistenceTest (BitcoinTestFramework):
|
|||
self.sync_all()
|
||||
|
||||
def run_test(self):
|
||||
# Slow start is not enabled for regtest, so the expected subsidy starts at the
|
||||
# maximum, but the hardcoded genesis block for regtest does not consume the
|
||||
# available subsidy.
|
||||
pre_halving_blocks = 143
|
||||
pre_halving_subsidy = Decimal('12.5')
|
||||
post_halving_blocks = 57
|
||||
post_halving_subsidy = pre_halving_subsidy / 2
|
||||
expected_supply = (pre_halving_blocks * pre_halving_subsidy +
|
||||
post_halving_blocks * post_halving_subsidy)
|
||||
|
||||
blocks_to_mine = pre_halving_blocks + post_halving_blocks
|
||||
|
||||
# Sanity-check the test harness
|
||||
self.nodes[0].generate(200)
|
||||
assert_equal(self.nodes[0].getblockcount(), 200)
|
||||
# Note that the genesis block is not counted in the result of `getblockcount`
|
||||
self.nodes[0].generate(blocks_to_mine)
|
||||
assert_equal(self.nodes[0].getblockcount(), blocks_to_mine)
|
||||
self.sync_all()
|
||||
|
||||
# Verify Sapling address is persisted in wallet
|
||||
|
@ -45,6 +59,21 @@ class WalletPersistenceTest (BitcoinTestFramework):
|
|||
addresses = self.nodes[0].z_listaddresses()
|
||||
assert_true(sapling_addr in addresses, "Should contain address before restart")
|
||||
|
||||
def check_chain_value(pool, expected_id, expected_value):
|
||||
assert_equal(pool.get('id', None), expected_id)
|
||||
assert_equal(pool['monitored'], True)
|
||||
assert_equal(pool['chainValue'], expected_value)
|
||||
assert_equal(pool['chainValueZat'], expected_value * COIN)
|
||||
|
||||
# Verify size of pools
|
||||
chainInfo = self.nodes[0].getblockchaininfo()
|
||||
pools = chainInfo['valuePools']
|
||||
check_chain_value(chainInfo['chainSupply'], None, expected_supply)
|
||||
check_chain_value(pools[0], 'transparent', expected_supply)
|
||||
check_chain_value(pools[1], 'sprout', Decimal('0'))
|
||||
check_chain_value(pools[2], 'sapling', Decimal('0'))
|
||||
check_chain_value(pools[3], 'orchard', Decimal('0'))
|
||||
|
||||
# Restart the nodes
|
||||
stop_nodes(self.nodes)
|
||||
wait_bitcoinds()
|
||||
|
@ -54,6 +83,15 @@ class WalletPersistenceTest (BitcoinTestFramework):
|
|||
addresses = self.nodes[0].z_listaddresses()
|
||||
assert_true(sapling_addr in addresses, "Should contain address after restart")
|
||||
|
||||
# Verify size of pools after restarting
|
||||
chainInfo = self.nodes[0].getblockchaininfo()
|
||||
pools = chainInfo['valuePools']
|
||||
check_chain_value(chainInfo['chainSupply'], None, expected_supply) # Supply
|
||||
check_chain_value(pools[0], 'transparent', expected_supply)
|
||||
check_chain_value(pools[1], 'sprout', Decimal('0'))
|
||||
check_chain_value(pools[2], 'sapling', Decimal('0'))
|
||||
check_chain_value(pools[3], 'orchard', Decimal('0'))
|
||||
|
||||
# Node 0 shields funds to Sapling address
|
||||
taddr0 = get_coinbase_address(self.nodes[0])
|
||||
recipients = []
|
||||
|
@ -63,25 +101,34 @@ class WalletPersistenceTest (BitcoinTestFramework):
|
|||
|
||||
self.sync_all()
|
||||
self.nodes[0].generate(1)
|
||||
expected_supply += post_halving_subsidy
|
||||
self.sync_all()
|
||||
|
||||
# Verify shielded balance
|
||||
assert_equal(self.nodes[0].z_getbalance(sapling_addr), Decimal('20'))
|
||||
|
||||
# Verify size of shielded pools
|
||||
pools = self.nodes[0].getblockchaininfo()['valuePools']
|
||||
assert_equal(pools[0]['chainValue'], Decimal('0')) # Sprout
|
||||
assert_equal(pools[1]['chainValue'], Decimal('20')) # Sapling
|
||||
# Verify size of pools
|
||||
chainInfo = self.nodes[0].getblockchaininfo()
|
||||
pools = chainInfo['valuePools']
|
||||
check_chain_value(chainInfo['chainSupply'], None, expected_supply) # Supply
|
||||
check_chain_value(pools[0], 'transparent', expected_supply - Decimal('20')) # Transparent
|
||||
check_chain_value(pools[1], 'sprout', Decimal('0'))
|
||||
check_chain_value(pools[2], 'sapling', Decimal('20'))
|
||||
check_chain_value(pools[3], 'orchard', Decimal('0'))
|
||||
|
||||
# Restart the nodes
|
||||
stop_nodes(self.nodes)
|
||||
wait_bitcoinds()
|
||||
self.setup_network()
|
||||
|
||||
# Verify size of shielded pools
|
||||
pools = self.nodes[0].getblockchaininfo()['valuePools']
|
||||
assert_equal(pools[0]['chainValue'], Decimal('0')) # Sprout
|
||||
assert_equal(pools[1]['chainValue'], Decimal('20')) # Sapling
|
||||
# Verify size of pools
|
||||
chainInfo = self.nodes[0].getblockchaininfo()
|
||||
pools = chainInfo['valuePools']
|
||||
check_chain_value(chainInfo['chainSupply'], None, expected_supply) # Supply
|
||||
check_chain_value(pools[0], 'transparent', expected_supply - Decimal('20')) # Transparent
|
||||
check_chain_value(pools[1], 'sprout', Decimal('0'))
|
||||
check_chain_value(pools[2], 'sapling', Decimal('20'))
|
||||
check_chain_value(pools[3], 'orchard', Decimal('0'))
|
||||
|
||||
# Node 0 sends some shielded funds to Node 1
|
||||
dest_addr = self.nodes[1].z_getnewaddress('sapling')
|
||||
|
|
|
@ -4,13 +4,17 @@
|
|||
# bdb 18.1.40 2020-09-01
|
||||
#
|
||||
|
||||
# cxx 1.0.84-1.0.86 didn't update third-party/Cargo.lock
|
||||
# cxx 1.0.84-1.0.87 didn't update third-party/Cargo.lock
|
||||
native_cxxbridge 1.0.84 2024-02-01
|
||||
native_cxxbridge 1.0.85 2024-02-01
|
||||
native_cxxbridge 1.0.86 2024-02-01
|
||||
native_cxxbridge 1.0.87 2024-02-01
|
||||
native_cxxbridge 1.0.88 2024-02-01
|
||||
rustcxx 1.0.84 2024-02-01
|
||||
rustcxx 1.0.85 2024-02-01
|
||||
rustcxx 1.0.86 2024-02-01
|
||||
rustcxx 1.0.87 2024-02-01
|
||||
rustcxx 1.0.88 2024-02-01
|
||||
|
||||
# CCache 4.7 appears to drop support for Ubuntu 18.04
|
||||
native_ccache 4.7 2023-03-01
|
||||
|
@ -39,6 +43,7 @@ native_clang 15.0.7 2023-03-01
|
|||
native_rust 1.65.0 2023-03-01
|
||||
native_rust 1.66.0 2023-03-01
|
||||
native_rust 1.66.1 2023-03-01
|
||||
native_rust 1.67.0 2023-03-01
|
||||
|
||||
# We're never updating to this version
|
||||
bdb 18.1.40 2024-02-01
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2015 The Bitcoin Core developers
|
||||
// Copyright (c) 2021-2022 The Zcash developers
|
||||
// Copyright (c) 2021-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2015 The Bitcoin Core developers
|
||||
// Copyright (c) 2021-2022 The Zcash developers
|
||||
// Copyright (c) 2021-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2015 The Bitcoin Core developers
|
||||
// Copyright (c) 2019-2022 The Zcash developers
|
||||
// Copyright (c) 2019-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2013 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2017-2022 The Zcash developers
|
||||
// Copyright (c) 2017-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2017-2022 The Zcash developers
|
||||
// Copyright (c) 2017-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2015 The Bitcoin Core developers
|
||||
// Copyright (c) 2020-2022 The Zcash developers
|
||||
// Copyright (c) 2020-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2015 The Bitcoin Core developers
|
||||
// Copyright (c) 2020-2022 The Zcash developers
|
||||
// Copyright (c) 2020-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2015 The Bitcoin Core developers
|
||||
// Copyright (c) 2020-2022 The Zcash developers
|
||||
// Copyright (c) 2020-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2015 The Bitcoin Core developers
|
||||
// Copyright (c) 2020-2022 The Zcash developers
|
||||
// Copyright (c) 2020-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2015 The Bitcoin Core developers
|
||||
// Copyright (c) 2020-2022 The Zcash developers
|
||||
// Copyright (c) 2020-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2016 The Bitcoin Core developers
|
||||
// Copyright (c) 2020-2022 The Zcash developers
|
||||
// Copyright (c) 2020-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2016 The Bitcoin Core developers
|
||||
// Copyright (c) 2020-2022 The Zcash developers
|
||||
// Copyright (c) 2020-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2016 The Bitcoin Core developers
|
||||
// Copyright (c) 2020-2022 The Zcash developers
|
||||
// Copyright (c) 2020-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2016 The Bitcoin Core developers
|
||||
// Copyright (c) 2020-2022 The Zcash developers
|
||||
// Copyright (c) 2020-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2015-2017 The Bitcoin Core developers
|
||||
// Copyright (c) 2020-2022 The Zcash developers
|
||||
// Copyright (c) 2020-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2016 The Bitcoin Core developers
|
||||
// Copyright (c) 2020-2022 The Zcash developers
|
||||
// Copyright (c) 2020-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2019-2022 The Zcash developers
|
||||
// Copyright (c) 2019-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2013 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2013 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2012-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2019-2022 The Zcash developers
|
||||
// Copyright (c) 2019-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2012-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2018-2022 The Zcash developers
|
||||
// Copyright (c) 2018-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2017-2022 The Zcash developers
|
||||
// Copyright (c) 2017-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
44
src/chain.h
44
src/chain.h
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
@ -23,6 +23,7 @@ static const int SPROUT_VALUE_VERSION = 1001400;
|
|||
static const int SAPLING_VALUE_VERSION = 1010100;
|
||||
static const int CHAIN_HISTORY_ROOT_VERSION = 2010200;
|
||||
static const int NU5_DATA_VERSION = 4050000;
|
||||
static const int TRANSPARENT_VALUE_VERSION = 5040026;
|
||||
|
||||
/**
|
||||
* Maximum amount of time that a block timestamp is allowed to be ahead of the
|
||||
|
@ -250,6 +251,35 @@ public:
|
|||
//! (memory only) The anchor for the tree state up to the end of this block
|
||||
uint256 hashFinalSproutRoot;
|
||||
|
||||
//! The change to the chain supply caused by this block. This is defined as
|
||||
//! the value of the coinbase outputs (transparent and shielded) in this block,
|
||||
//! minus fees not claimed by the miner.
|
||||
//!
|
||||
//! Will be std::nullopt under the following conditions:
|
||||
//! - if the block has never been connected to a chain tip
|
||||
//! - for older blocks until a reindex has taken place
|
||||
std::optional<CAmount> nChainSupplyDelta;
|
||||
|
||||
//! (memory only) Total chain supply up to and including this block.
|
||||
//!
|
||||
//! Will be std::nullopt until a reindex has taken place.
|
||||
//! Will be std::nullopt if nChainTx is zero, or if the block has never been
|
||||
//! connected to a chain tip.
|
||||
std::optional<CAmount> nChainTotalSupply;
|
||||
|
||||
//! Change in value in the transparent pool produced by the action of the
|
||||
//! transparent inputs to and outputs from transactions in this block.
|
||||
//!
|
||||
//! Will be std::nullopt for older blocks until a reindex has taken place.
|
||||
std::optional<CAmount> nTransparentValue;
|
||||
|
||||
//! (memory only) Total value of the transparent value pool up to and
|
||||
//! including this block.
|
||||
//!
|
||||
//! Will be std::nullopt until a reindex has taken place.
|
||||
//! Will be std::nullopt if nChainTx is zero.
|
||||
std::optional<CAmount> nChainTransparentValue;
|
||||
|
||||
//! Change in value held by the Sprout circuit over this block.
|
||||
//! Will be std::nullopt for older blocks on old nodes until a reindex has taken place.
|
||||
std::optional<CAmount> nSproutValue;
|
||||
|
@ -342,6 +372,11 @@ public:
|
|||
hashFinalOrchardRoot = uint256();
|
||||
hashChainHistoryRoot = uint256();
|
||||
nSequenceId = 0;
|
||||
|
||||
nChainSupplyDelta = std::nullopt;
|
||||
nChainTotalSupply = std::nullopt;
|
||||
nTransparentValue = std::nullopt;
|
||||
nChainTransparentValue = std::nullopt;
|
||||
nSproutValue = std::nullopt;
|
||||
nChainSproutValue = std::nullopt;
|
||||
nSaplingValue = 0;
|
||||
|
@ -539,6 +574,13 @@ public:
|
|||
READWRITE(nNonce);
|
||||
READWRITE(nSolution);
|
||||
|
||||
// Only read/write nTransparentValue if the client version used to create
|
||||
// this index was storing them.
|
||||
if ((s.GetType() & SER_DISK) && (nVersion >= TRANSPARENT_VALUE_VERSION)) {
|
||||
READWRITE(nChainSupplyDelta);
|
||||
READWRITE(nTransparentValue);
|
||||
}
|
||||
|
||||
// Only read/write nSproutValue if the client version used to create
|
||||
// this index was storing them.
|
||||
if ((s.GetType() & SER_DISK) && (nVersion >= SPROUT_VALUE_VERSION)) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2015-2022 The Zcash developers
|
||||
// Copyright (c) 2015-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2017-2022 The Zcash developers
|
||||
// Copyright (c) 2017-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2017-2022 The Zcash developers
|
||||
// Copyright (c) 2017-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2012-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2019-2022 The Zcash developers
|
||||
// Copyright (c) 2019-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2012-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
@ -16,9 +16,9 @@
|
|||
|
||||
//! These need to be macros, as clientversion.cpp's and bitcoin*-res.rc's voodoo requires it
|
||||
#define CLIENT_VERSION_MAJOR 5
|
||||
#define CLIENT_VERSION_MINOR 3
|
||||
#define CLIENT_VERSION_REVISION 2
|
||||
#define CLIENT_VERSION_BUILD 50
|
||||
#define CLIENT_VERSION_MINOR 4
|
||||
#define CLIENT_VERSION_REVISION 0
|
||||
#define CLIENT_VERSION_BUILD 27
|
||||
|
||||
//! Set to true for release, false for prerelease or test build
|
||||
#define CLIENT_VERSION_IS_RELEASE true
|
||||
|
@ -27,7 +27,7 @@
|
|||
* Copyright year (2009-this)
|
||||
* Todo: update this when changing our copyright comments in the source
|
||||
*/
|
||||
#define COPYRIGHT_YEAR 2022
|
||||
#define COPYRIGHT_YEAR 2023
|
||||
|
||||
#endif //HAVE_CONFIG_H
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2011-2013 The Bitcoin Core developers
|
||||
// Copyright (c) 2017-2022 The Zcash developers
|
||||
// Copyright (c) 2017-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2012-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
@ -990,6 +990,11 @@ const CTxOut &CCoinsViewCache::GetOutputFor(const CTxIn& input) const
|
|||
}
|
||||
|
||||
CAmount CCoinsViewCache::GetValueIn(const CTransaction& tx) const
|
||||
{
|
||||
return GetTransparentValueIn(tx) + tx.GetShieldedValueIn();
|
||||
}
|
||||
|
||||
CAmount CCoinsViewCache::GetTransparentValueIn(const CTransaction& tx) const
|
||||
{
|
||||
if (tx.IsCoinBase())
|
||||
return 0;
|
||||
|
@ -998,8 +1003,6 @@ CAmount CCoinsViewCache::GetValueIn(const CTransaction& tx) const
|
|||
for (unsigned int i = 0; i < tx.vin.size(); i++)
|
||||
nResult += GetOutputFor(tx.vin[i]).nValue;
|
||||
|
||||
nResult += tx.GetShieldedValueIn();
|
||||
|
||||
return nResult;
|
||||
}
|
||||
|
||||
|
|
17
src/coins.h
17
src/coins.h
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
@ -601,15 +601,22 @@ public:
|
|||
size_t DynamicMemoryUsage() const;
|
||||
|
||||
/**
|
||||
* Amount of bitcoins coming in to a transaction
|
||||
* Note that lightweight clients may not know anything besides the hash of previous transactions,
|
||||
* so may not be able to calculate this.
|
||||
* Amount of coins coming in to a transaction
|
||||
*
|
||||
* @param[in] tx transaction for which we are checking input total
|
||||
* @return Sum of value of all inputs (scriptSigs), (positive valueBalance or zero) and JoinSplit vpub_new
|
||||
* @return Sum of value of all inputs (scriptSigs), JoinSplit vpub_new, and
|
||||
* positive values of valueBalanceSapling, and valueBalanceOrchard.
|
||||
*/
|
||||
CAmount GetValueIn(const CTransaction& tx) const;
|
||||
|
||||
/**
|
||||
* Amount of coins coming in to a transaction in the transparent inputs.
|
||||
*
|
||||
* @param[in] tx transaction for which we are checking input total
|
||||
* @return Sum of value of all inputs (scriptSigs)
|
||||
*/
|
||||
CAmount GetTransparentValueIn(const CTransaction& tx) const;
|
||||
|
||||
//! Check whether all prevouts of the transaction are present in the UTXO set represented by this view
|
||||
bool HaveInputs(const CTransaction& tx) const;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2019-2022 The Zcash developers
|
||||
// Copyright (c) 2019-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2019-2022 The Zcash developers
|
||||
// Copyright (c) 2019-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2019-2022 The Zcash developers
|
||||
// Copyright (c) 2019-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2019-2022 The Zcash developers
|
||||
// Copyright (c) 2019-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2019-2022 The Zcash developers
|
||||
// Copyright (c) 2019-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2019-2022 The Zcash developers
|
||||
// Copyright (c) 2019-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2020-2022 The Zcash developers
|
||||
// Copyright (c) 2020-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2020-2022 The Zcash developers
|
||||
// Copyright (c) 2020-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2019-2022 The Zcash developers
|
||||
// Copyright (c) 2019-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2018-2022 The Zcash developers
|
||||
// Copyright (c) 2018-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2018-2022 The Zcash developers
|
||||
// Copyright (c) 2018-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2017-2022 The Zcash developers
|
||||
// Copyright (c) 2017-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2015 The Bitcoin Core developers
|
||||
// Copyright (c) 2017-2022 The Zcash developers
|
||||
// Copyright (c) 2017-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2017-2022 The Zcash developers
|
||||
// Copyright (c) 2017-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2017-2022 The Zcash developers
|
||||
// Copyright (c) 2017-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2016 The Bitcoin Core developers
|
||||
// Copyright (c) 2020-2022 The Zcash developers
|
||||
// Copyright (c) 2020-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2015 The Bitcoin Core developers
|
||||
// Copyright (c) 2020-2022 The Zcash developers
|
||||
// Copyright (c) 2020-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
//
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2017 The Bitcoin Core developers
|
||||
// Copyright (c) 2021-2022 The Zcash developers
|
||||
// Copyright (c) 2021-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2017 The Bitcoin Core developers
|
||||
// Copyright (c) 2021-2022 The Zcash developers
|
||||
// Copyright (c) 2021-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2016 Jack Grigg
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2016 Jack Grigg
|
||||
// Copyright (c) 2016-2022 The Zcash developers
|
||||
// Copyright (c) 2016-2023 The Zcash developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue