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:
str4d 2023-01-31 19:01:05 +00:00 committed by GitHub
commit bb675d9799
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
385 changed files with 17579 additions and 584 deletions

2
.gitignore vendored
View File

@ -130,3 +130,5 @@ src/fuzzing/*/output
src/fuzz.cpp
.updatecheck-token
.env
poetry.lock

View File

@ -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

View File

@ -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">
===========

View File

@ -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])

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -1,5 +1,5 @@
---
name: "zcash-5.3.2"
name: "zcash-5.4.0-rc3"
enable_cache: true
distro: "debian"
suites:

View File

@ -1,5 +1,5 @@
---
name: "zcash-5.3.2"
name: "zcash-5.4.0-rc3"
enable_cache: true
distro: "debian"
suites:

View File

@ -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"

View File

@ -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

View File

@ -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",
])

View File

@ -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)

View File

@ -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]

View File

@ -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
;;

View File

@ -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

View File

@ -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:

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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 didnt have any
change, but this could be confusing, as the documentation stated that these
two conditions (using "ANY\_TADDR" and disallowing change) wouldnt 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)
--------------

View File

@ -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 didnt match. When coinbase notes were selected in this
case, they would (properly) require that the transaction didnt have any
change, but this could be confusing, as the documentation stated that these
two conditions (using "ANY\_TADDR" and disallowing change) wouldnt 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
Dont 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

View File

@ -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 didnt match. When coinbase notes were selected in this
case, they would (properly) require that the transaction didnt have any
change, but this could be confusing, as the documentation stated that these
two conditions (using "ANY\_TADDR" and disallowing change) wouldnt 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
Dont 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

View File

@ -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 didnt match. When coinbase notes were selected in this
case, they would (properly) require that the transaction didnt have any
change, but this could be confusing, as the documentation stated that these
two conditions (using "ANY\_TADDR" and disallowing change) wouldnt 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
Dont 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

View File

@ -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')

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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)) {

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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

View File

@ -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 .

View File

@ -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;
}

View File

@ -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;

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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 .

View File

@ -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.

View File

@ -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.
//

View File

@ -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.

View File

@ -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.

View File

@ -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 .

View File

@ -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 .

View File

@ -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