diff --git a/README.md b/README.md
index 2d56aa932..f8be1b3b4 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-Zcash 4.4.0-rc1
+Zcash 4.4.0
===========
diff --git a/configure.ac b/configure.ac
index b6f3285ac..4151a2965 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@ AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 4)
define(_CLIENT_VERSION_MINOR, 4)
define(_CLIENT_VERSION_REVISION, 0)
-define(_CLIENT_VERSION_BUILD, 25)
+define(_CLIENT_VERSION_BUILD, 50)
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)
diff --git a/contrib/debian/changelog b/contrib/debian/changelog
index 3e9e4cf3b..c6b16b2be 100644
--- a/contrib/debian/changelog
+++ b/contrib/debian/changelog
@@ -1,3 +1,9 @@
+zcash (4.4.0) stable; urgency=medium
+
+ * 4.4.0 release.
+
+ -- Electric Coin Company Thu, 15 Apr 2021 16:55:39 +1200
+
zcash (4.4.0~rc1) stable; urgency=medium
* 4.4.0-rc1 release.
diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml
index 503a73051..33e0ecefa 100644
--- a/contrib/gitian-descriptors/gitian-linux.yml
+++ b/contrib/gitian-descriptors/gitian-linux.yml
@@ -1,5 +1,5 @@
---
-name: "zcash-4.4.0-rc1"
+name: "zcash-4.4.0"
enable_cache: true
distro: "debian"
suites:
diff --git a/doc/authors.md b/doc/authors.md
index 4289c384b..e7b5ec7f4 100644
--- a/doc/authors.md
+++ b/doc/authors.md
@@ -1,58 +1,59 @@
Zcash Contributors
==================
-Jack Grigg (1097)
+Jack Grigg (1099)
Simon Liu (460)
Sean Bowe (367)
-Daira Hopwood (256)
+Daira Hopwood (262)
Eirik Ogilvie-Wigley (216)
Wladimir J. van der Laan (130)
+Kris Nuttycombe (117)
Alfredo Garcia (116)
Taylor Hornby (114)
-Kris Nuttycombe (103)
Marshall Gaucher (102)
Jay Graber (89)
-Jonas Schnelli (87)
-Pieter Wuille (81)
-Marco Falke (78)
-Cory Fields (70)
+Jonas Schnelli (88)
+Pieter Wuille (83)
+Marco Falke (80)
+Cory Fields (73)
Larry Ruane (59)
Ying Tong Lai (56)
Nathan Wilcox (56)
+Matt Corallo (44)
Kevin Gallagher (38)
practicalswift (36)
Dimitris Apostolou (34)
-Matt Corallo (31)
fanquake (30)
Carl Dong (26)
Jorge Timón (22)
+Gregory Maxwell (19)
Luke Dashjr (18)
Jonathan "Duke" Leto (18)
syd (16)
+Patick Strateman (16)
furszy (15)
avnish (14)
Per Grön (14)
-Gregory Maxwell (14)
Benjamin Winston (13)
Ariel Gabizon (12)
+Pavel Janík (11)
Paige Peterson (11)
+Kaz Wesley (11)
John Newbery (11)
Philip Kaufmann (10)
+Peter Todd (10)
nomnombtc (9)
-Peter Todd (9)
-Pavel Janík (9)
Marius Kjærstad (9)
-Kaz Wesley (9)
kozyilmaz (8)
Suhas Daftuar (8)
+Jeremy Rubin (8)
Jeff Garzik (8)
Charlie O'Keefe (8)
Ben Wilson (8)
+Patrick Strateman (7)
Alex Morcos (7)
ying tong (6)
-Patrick Strateman (6)
Karl-Johan Alm (6)
-Jeremy Rubin (6)
James O'Beirne (6)
David Mercer (6)
Daniel Kraft (6)
@@ -69,14 +70,13 @@ sandakersmann (4)
gladcow (4)
Zancas Wilcox (4)
WO (4)
+Sjors Provoost (4)
Nate Wilcox (4)
MeshCollider (4)
mruddy (3)
lpescher (3)
isle2983 (3)
elbandi (3)
-Sjors Provoost (3)
-Patick Strateman (3)
NikVolf (3)
Julian Fleischer (3)
Jim Posen (3)
@@ -93,6 +93,7 @@ noname45688@gmail.com (2)
kpcyrd (2)
face (2)
aniemerg (2)
+Yuri Zhykin (2)
UdjinM6 (2)
Tim Ruffing (2)
Thomas Snider (2)
@@ -125,6 +126,7 @@ tulip (1)
tpantin (1)
teor (1)
randy-waterhouse (1)
+plutoforever (1)
murrayn (1)
mrbandrews (1)
kirkalx (1)
@@ -132,6 +134,7 @@ kazcw (1)
jeff-liang (1)
jc (1)
instagibbs (1)
+glowang (1)
ewillbefull@gmail.com (1)
emilrus (1)
dexX7 (1)
@@ -142,15 +145,16 @@ ayleph (1)
avnish98 (1)
adityapk00 (1)
Za Wilcox (1)
-Yuri Zhykin (1)
William M Peaster (1)
Vidar Holen (1)
Vasil Dimov (1)
Ulrich Kempken (1)
Tom Ritter (1)
Tom Harding (1)
+Steven Smith (1)
Stephen (1)
S. Matthew English (1)
+Russell Yanofsky (1)
Ross Nicoll (1)
Rod Vagg (1)
Richard Littauer (1)
diff --git a/doc/man/zcash-cli.1 b/doc/man/zcash-cli.1
index 9a97d9e4c..912c8fc77 100644
--- a/doc/man/zcash-cli.1
+++ b/doc/man/zcash-cli.1
@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
-.TH ZCASH-CLI "1" "April 2021" "zcash-cli v4.4.0-rc1" "User Commands"
+.TH ZCASH-CLI "1" "April 2021" "zcash-cli v4.4.0" "User Commands"
.SH NAME
-zcash-cli \- manual page for zcash-cli v4.4.0-rc1
+zcash-cli \- manual page for zcash-cli v4.4.0
.SH DESCRIPTION
-Zcash RPC client version v4.4.0\-rc1
+Zcash RPC client version v4.4.0
.PP
In order to ensure you are adequately protecting your privacy when using Zcash,
please see .
diff --git a/doc/man/zcash-tx.1 b/doc/man/zcash-tx.1
index e1785f96a..0bb4bcc16 100644
--- a/doc/man/zcash-tx.1
+++ b/doc/man/zcash-tx.1
@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
-.TH ZCASH-TX "1" "April 2021" "zcash-tx v4.4.0-rc1" "User Commands"
+.TH ZCASH-TX "1" "April 2021" "zcash-tx v4.4.0" "User Commands"
.SH NAME
-zcash-tx \- manual page for zcash-tx v4.4.0-rc1
+zcash-tx \- manual page for zcash-tx v4.4.0
.SH DESCRIPTION
-Zcash zcash\-tx utility version v4.4.0\-rc1
+Zcash zcash\-tx utility version v4.4.0
.SS "Usage:"
.TP
zcash\-tx [options] [commands]
diff --git a/doc/man/zcashd.1 b/doc/man/zcashd.1
index 18c99299c..82c3f2be0 100644
--- a/doc/man/zcashd.1
+++ b/doc/man/zcashd.1
@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
-.TH ZCASHD "1" "April 2021" "zcashd v4.4.0-rc1" "User Commands"
+.TH ZCASHD "1" "April 2021" "zcashd v4.4.0" "User Commands"
.SH NAME
-zcashd \- manual page for zcashd v4.4.0-rc1
+zcashd \- manual page for zcashd v4.4.0
.SH DESCRIPTION
-Zcash Daemon version v4.4.0\-rc1
+Zcash Daemon version v4.4.0
.PP
In order to ensure you are adequately protecting your privacy when using Zcash,
please see .
diff --git a/doc/release-notes.md b/doc/release-notes.md
index 8cce56b9c..a29094b51 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -4,25 +4,3 @@ release-notes at release time)
Notable changes
===============
-Prometheus metrics
-------------------
-
-`zcashd` can now be configured to optionally expose an HTTP server that acts as
-a Prometheus scrape endpoint. The server will respond to `GET` requests on any
-request path.
-
-To enable the endpoint, add `-prometheusport=` to your `zcashd`
-configuration (either in `zcash.conf` or on the command line). After
-restarting `zcashd` you can then test the endpoint by querying it with e.g.
-`curl http://127.0.0.1:`.
-
-By default, access is restricted to localhost. This can be expanded with
-`-metricsallowip=`, which can specify IPs or subnets. Note that HTTPS is not
-supported, and therefore connections to the endpoint are not encrypted or
-authenticated. Access to the endpoint should be assumed to compromise the
-privacy of node operations, by the provided metrics and/or by timing side
-channels. Non-localhost access is **strongly discouraged** if the node has a
-wallet holding live funds.
-
-The specific metrics names may change in subsequent releases, in particular to
-improve interoperability with `zebrad`.
diff --git a/doc/release-notes/release-notes-4.4.0.md b/doc/release-notes/release-notes-4.4.0.md
new file mode 100644
index 000000000..2bae0c2c7
--- /dev/null
+++ b/doc/release-notes/release-notes-4.4.0.md
@@ -0,0 +1,197 @@
+Notable changes
+===============
+
+Prometheus metrics
+------------------
+
+`zcashd` can now be configured to optionally expose an HTTP server that acts as
+a Prometheus scrape endpoint. The server will respond to `GET` requests on any
+request path.
+
+To enable the endpoint, add `-prometheusport=` to your `zcashd`
+configuration (either in `zcash.conf` or on the command line). After
+restarting `zcashd` you can then test the endpoint by querying it with e.g.
+`curl http://127.0.0.1:`.
+
+By default, access is restricted to localhost. This can be expanded with
+`-metricsallowip=`, which can specify IPs or subnets. Note that HTTPS is not
+supported, and therefore connections to the endpoint are not encrypted or
+authenticated. Access to the endpoint should be assumed to compromise the
+privacy of node operations, by the provided metrics and/or by timing side
+channels. Non-localhost access is **strongly discouraged** if the node has a
+wallet holding live funds.
+
+The specific metrics names may change in subsequent releases, in particular to
+improve interoperability with `zebrad`.
+
+Changelog
+=========
+
+Cory Fields (3):
+ net: rearrange so that socket accesses can be grouped together
+ net: add a lock around hSocket
+ net: fix a few races. Credit @TheBlueMatt
+
+Daira Hopwood (6):
+ Fix regression introduced in e286250ce49309bfa931b622fabfc37100246266 by adding #include . fixes #5014
+ native_rust: don't install Rust docs. This speeds up builds, especially native builds on macOS. fixes #5042
+ Delete spare mainnet Founders' Reward addresses that will never be used.
+ configure.ac: Add check for ntdll on Windows.
+ configure.ac: tidy up spacing.
+ Cleanup: get the definition of ENABLE_VIRTUAL_TERMINAL_PROCESSING from wincon.h.
+
+Gregory Maxwell (5):
+ Replace setInventoryKnown with a rolling bloom filter.
+ Remove mruset as it is no longer used.
+ Actually only use filterInventoryKnown with MSG_TX inventory messages.
+ Add whitelistforcerelay to control forced relaying.
+ Blacklist -whitelistalwaysrelay; replaced by -whitelistrelay.
+
+Jack Grigg (49):
+ Squashed 'src/secp256k1/' changes from c6b6b8f1bb..3967d96bf1
+ Squashed 'src/secp256k1/' changes from 3967d96bf1..a4abaab793
+ CI: Correctly build zcashd book
+ cargo update
+ rust: zcash_{primitives, proofs} 0.5.0
+ depends: Update Rust to 1.51.0
+ qa: Update BerkeleyDB downloads page URL
+ rust: Implement FFI interface to metrics crate
+ rust: Add a Prometheus metrics exporter
+ Add some metrics that match existing zebrad metrics
+ metrics: Add documentation and example configs
+ tracing: Merge TracingSpanFields macro into TracingSpan
+ rust: Move helper macros into rust/helpers.h
+ metrics: Add support for labels
+ metrics: Expose binary metadata
+ Add more detailed metrics
+ rust: Use consistent include guards in header files
+ rust: Check for invalid UTF-8 in -prometheusmetrics argument
+ Add -prometheusmetrics to release notes
+ Mention in release notes that metrics names may still change
+ metrics: Implement IP access control on Prometheus scrape endpoint
+ rust: Pin hyper 0.14.2
+ metrics: Move documentation into zcashd book
+ metrics: Enable gauges with fully-static labels
+ metrics: Use labels for pool statistics
+ metrics: Rename metrics with consistent naming scheme
+ metrics: Remove zcash.sync.* metrics
+ metrics: Rework pool metrics in anticipation of transparent pool
+ net: Clear CNode::strSendCommand if a message is aborted
+ rust: Add license header to metrics_ffi::prometheus
+ book: Fix typo in metrics documentation
+ metrics: Don't assert that the Sprout tree is accessible
+ Remove usage of local from fetch-params.sh
+ lint: Fix false positive
+ qa: Point univalue update checker at correct upstream
+ qa: Postpone updates that require CMake in the build system
+ qa: Postpone Boost 1.75.0
+ make-release.py: Versioning changes for 4.4.0-rc1.
+ make-release.py: Updated manpages for 4.4.0-rc1.
+ make-release.py: Updated release notes and changelog for 4.4.0-rc1.
+ scripted-diff: Remove direct usages of boost::filesystem
+ Remove duplicate / unused includes
+ Fix include guards
+ python: Use UTF-8 encodings for opened files
+ clean.sh: Remove secp256k1 test log
+ Postpone Clang 12
+ book: Fix comment in metrics example, and clarify usage
+ make-release.py: Versioning changes for 4.4.0.
+ make-release.py: Updated manpages for 4.4.0.
+
+Jeremy Rubin (2):
+ Fix CCheckQueue IsIdle (potential) race condition and remove dangerous constructors.
+ Add CheckQueue Tests
+
+Jonas Schnelli (1):
+ Move -blocksonly parameter interaction to the new ParameterInteraction() function
+
+Kaz Wesley (2):
+ lock cs_main for State/Misbehaving
+ lock cs_main for chainActive
+
+Kris Nuttycombe (14):
+ Ignore temporary build artifacts.
+ Add feature flagging infrastructure to consensus parameters.
+ Relocate contextual Sapling version checks
+ Add TxVersionInfo for feature/future-base transaction construction.
+ Move sapling version group checks back inside of saplingActive check.
+ Add future version group & version checks
+ Use SPROUT_MAX_CURRENT_VERSION
+ Apply suggestions from code review
+ Add feature flagging tests.
+ Document FeatureSet type.
+ Document UPGRADE_ZFUTURE
+ Ensure that Sapling version range checks are always guarded by SAPLING_VERSION_GROUP_ID
+ Address review comments.
+ CurrentTxVersionInfo should return SPROUT_MIN_CURRENT_VERSION pre-overwinter.
+
+Marco Falke (2):
+ Move blocksonly parameter interaction to InitParameterInteraction()
+ doc: Mention blocksonly in reduce-traffic.md, unhide option
+
+Matt Corallo (13):
+ Fix race when accessing std::locale::classic()
+ Lock mapArgs/mapMultiArgs access in util
+ Ensure cs_vNodes is held when using the return value from FindNode
+ Access WorkQueue::running only within the cs lock.
+ Make nTimeConnected const in CNode
+ Avoid copying CNodeStats to make helgrind OK with buggy std::string
+ Access fRelayTxes with cs_filter lock in copyStats
+ Make nStartingHeight atomic
+ Make nServices atomic
+ Move [clean|str]SubVer writes/copyStats into a lock
+ Make nTimeBestReceived atomic
+ Move CNode::addrName accesses behind locked accessors
+ Move CNode::addrLocal access behind locked accessors
+
+Patick Strateman (13):
+ Add blocksonly mode
+ Do not process tx inv's in blocksonly mode
+ Add whitelistalwaysrelay option
+ Add help text for blocksonly and whitelistalwaysrelay
+ Use DEFAULT_BLOCKSONLY and DEFAULT_WHITELISTALWAYSRELAY constants
+ Display DEFAULT_WHITELISTALWAYSRELAY in help text
+ Fix fRelayTxs comment
+ Fix comment for blocksonly parameter interactions
+ Fix relay mechanism for whitelisted peers under blocks only mode.
+ Bail early in processing transactions in blocks only mode.
+ Improve log messages for blocks only violations.
+ Rename setInventoryKnown filterInventoryKnown
+ Only use filterInventoryKnown with MSG_TX inventory messages.
+
+Patrick Strateman (1):
+ Make nWalletDBUpdated atomic to avoid a potential race.
+
+Pavel Janík (2):
+ Notify other serviceQueue thread we are finished to prevent deadlocks.
+ Do not shadow LOCK's criticalblock variable for LOCK inside LOCK
+
+Peter Todd (1):
+ Add relaytxes status to getpeerinfo
+
+Pieter Wuille (2):
+ Clean up lockorder data of destroyed mutexes
+ Fix some locks
+
+Russell Yanofsky (1):
+ Add missing cs_wallet lock that triggers new lock held assertion
+
+Sjors Provoost (1):
+ [doc] mention whitelist is inbound, and applies to blocksonly
+
+Steven Smith (1):
+ Adding base NU5 declarations and logic
+
+Yuri Zhykin (1):
+ Fix for incorrect locking in GetPubKey() (keystore.cpp)
+
+glowang (1):
+ Update -blocksonly documentation
+
+plutoforever (1):
+ removed bashisms from build scripts
+
+Jack Grigg (2):
+ Add security warnings for -prometheusmetrics option
+ Clean up comment
+
diff --git a/src/clientversion.h b/src/clientversion.h
index c4f612bbf..7eaf54cee 100644
--- a/src/clientversion.h
+++ b/src/clientversion.h
@@ -18,7 +18,7 @@
#define CLIENT_VERSION_MAJOR 4
#define CLIENT_VERSION_MINOR 4
#define CLIENT_VERSION_REVISION 0
-#define CLIENT_VERSION_BUILD 25
+#define CLIENT_VERSION_BUILD 50
//! Set to true for release, false for prerelease or test build
#define CLIENT_VERSION_IS_RELEASE true
diff --git a/src/deprecation.h b/src/deprecation.h
index 34926d494..59254b4f9 100644
--- a/src/deprecation.h
+++ b/src/deprecation.h
@@ -10,7 +10,7 @@
// Per https://zips.z.cash/zip-0200
// Shut down nodes running this version of code, 16 weeks' worth of blocks after the estimated
// release block height. A warning is shown during the 14 days' worth of blocks prior to shut down.
-static const int APPROX_RELEASE_HEIGHT = 1209500;
+static const int APPROX_RELEASE_HEIGHT = 1216000;
static const int RELEASE_TO_DEPRECATION_WEEKS = 16;
static const int EXPECTED_BLOCKS_PER_HOUR = 3600 / Consensus::POST_BLOSSOM_POW_TARGET_SPACING;
static_assert(EXPECTED_BLOCKS_PER_HOUR == 48, "The value of Consensus::POST_BLOSSOM_POW_TARGET_SPACING was chosen such that this assertion holds.");