Commit Graph
32 Commits
Author SHA1 Message Date
DanSandClaude Opus 4.8 798eccc624 hygiene: fix seven latent defects from the v1.2.0 code audit
Phase 1 of the code-hygiene remediation. Each is a genuine defect, not
style. The two consensus functions are touched only by provably
behavior-preserving dead-code removal and a comment.

- miner: initialize the anti-spin loop counter (was `int i;` -- the loop
  condition read an indeterminate value, UB) and break once the block
  time advances past the median, which is what the comment intended.
- consensus/upgrades: drop a stray printf() on the NetworkUpgradeState
  path; the following assert already documents the invariant.
- txdb: CBlockTreeDB::Snapshot2's outer catch treated ANY exception as
  normal end-of-iteration and built a snapshot from partial data. Fail
  instead, matching the inner catch the author marked consensus-relevant
  ("we need to exit here if so for consensus code!"). iter->Valid()
  already handles genuine end-of-iteration.
- wallet/rpcwallet + init: -sietch-min-zouts used a "--" key that the arg
  parser (which normalizes --foo to -foo) can never match, so the Sietch
  decoy floor was silently stuck at the default. Use the single-dash key
  so the knob works, and document it in -help.
- hush_bitcoind + hush_utils: remove four unreachable duplicate `else if`
  branches from hush_commission()/hush_block_subsidy() (a second
  `height < 23860000` and a second `height < 27220000` in each). Proven
  identical across 49,591 heights. NB: the dead values hint at an intended
  clean halving schedule that was never wired up; the DEPLOYED schedule
  (two double-steps) is preserved exactly. Changing it is a future
  consensus decision, not this cleanup.
- hush_bitcoind: replace the "likely a bug" halving TODO with an accurate
  note -- INTERVAL is only consumed by a debug fprintf, so the > vs >=
  boundary at HALVING1 has no consensus effect.
- git rm two committed macOS build artifacts (cc/customcc.dylib and
  libcc.dylib) and add the missing .dylib .gitignore rules.

Built clean on Linux; an isolated node self-mined genesis->5113 exercising
the miner and consensus-subsidy paths, and getsnapshot returned normally.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-27 11:35:38 -05:00
onryo 58b65f9670 Update copyrights 2024-02-27 23:59:59 +01:00
Duke e033a2e6eb Update copyrights to 2023 2023-02-09 18:06:03 -05:00
Jonathan "Duke" Leto 5d2307a709 Update copyrights to 2022 2022-09-19 15:45:30 -07:00
Duke Leto 4a536d62dc Update copyrights 2021-04-17 13:03:22 -04:00
Duke Leto b58c15b9fb update copyrights 2020-12-10 07:45:36 -05:00
Duke Leto 31fc4099df HUSH NSPV 2020-12-09 19:22:51 -05:00
Duke Leto 65cdf6dd32 Update some links shown by some RPCs 2020-12-05 08:02:31 -05:00
Duke Leto be16f80abc Hush Full Node is now GPLv3
Any projects which want to use Hush code from now on will need to be licensed as
GPLv3 or we will send the lawyers: https://www.softwarefreedom.org/

Notably, Komodo (KMD) is licensed as GPLv2 and is no longer compatible to receive
code changes, without causing legal issues. MIT projects, such as Zcash, also cannot pull
in changes from the Hush Full Node without permission from The Hush Developers,
which may in some circumstances grant an MIT license on a case-by-case basis.
2020-10-21 07:28:10 -04:00
Duke Leto a7f88a87aa Update copyright URL to be https 2020-09-20 13:17:38 -04:00
Duke Leto 86a98587a1 desprout 2020-06-05 10:14:52 -04:00
Mihailo Milenkovic a7204d9f85 CC fixes for nSPV and others (#30)
- Remove adding txfee inputs for gateways claim
- FULLNODE and SUPERLITE macros
- Filter SetCCtxids with txid from oprert
- Fix for nServices of fullnode
- Use SetCCtxids_nSPV for some more CCs
- Fix addnormalinputs and add checking if utxo spent in mempool
2019-08-12 14:16:46 +03:00
jl777 0454333ff8 Tristate KOMODO_NSPV 2019-07-30 05:11:57 -11:00
jl777 8910b7c56f #define NSPV_BRANCHID 0x76b809bb 2019-07-12 01:01:32 -11:00
jl777 c9ec6d961d Include 2019-07-12 01:00:10 -11:00
jl777 80fd6fee58 mtx.fOverwintered = true; mtx.nExpiryHeight = 0; mtx.nVersionGroupId = SAPLING_VERSION_GROUP_ID; mtx.nVersion = SAPLING_TX_VERSION; 2019-07-12 00:58:31 -11:00
jl777 0ea9ae3c05 Update copyright to 2019 2018-12-31 21:41:05 -11:00
miketout 1021455845 Fix negative height issues for pruning cheat lists 2018-10-11 14:23:14 -07:00
Homu 36243f41f1 Auto merge of #3520 - Eirik0:3327-sign-offline, r=bitcartel
Fix signing raw transactions with unsynced offline nodes

This PR address the issue in two different ways:

- In `signrawtransaction` we determine the consensus branch ID (which we then later use to construct the transaction) using the chain height. We now also consider the `APPROX_RELEASE_HEIGHT` as this is a better estimation than 0 for the height of the chain if we are unsynced. (This in and of itself solves the Overwinter signing issue).
- We have added an additional parameter to `signrawtransaction` to allow manually overriding the consensus branch ID that zcashd determines we are on. This allows users to work around corner cases where the first strategy is still insufficient.

Closes #3327.
2018-09-19 15:02:52 -07:00
Eirik Ogilvie-Wigley 36a490677c Allow passing branchId when calling signrawtransaction 2018-09-17 10:27:39 -06:00
Jack Grigg 07d3f947ec Extract a helper method for finding the next epoch 2018-09-12 10:07:44 +01:00
Jack Grigg 176fada24d Add Sapling to upgrade list 2018-04-12 12:13:05 -06:00
Homu 599c847818 Auto merge of #2820 - str4d:darwin-build-patches, r=str4d
[macOS] Darwin build patches

Part of #2246.
2018-04-03 12:44:24 -07:00
Jack Grigg f0118aaa0b Add base case to CurrentEpoch() 2018-03-28 18:29:20 +02:00
Homu 4d6498b900 Auto merge of #3082 - str4d:overwinter-info, r=daira
Add link to Overwinter info page
2018-03-23 07:25:09 -07:00
Jack Grigg 132a255000 Add link to Overwinter info page 2018-03-13 00:47:10 +00:00
Jack Grigg a6ae8f55ae Split declaration and definition of SPROUT_BRANCH_ID constant
Fixes an initialization-order-fiasco error detected by ASan:
https://ci.z.cash/#/builders/7/builds/149
2018-03-09 09:42:20 +00:00
Jack Grigg cad27eb77f Update quote from ZIP 200 2018-02-06 23:18:56 +00:00
Jack Grigg 149d69e36b Add method for fetching the next activation height after a given block height 2018-02-04 22:58:42 +00:00
Jack Grigg 548683767c Add Overwinter to upgrade list 2018-02-04 22:58:42 +00:00
Jack Grigg f52da91139 Test network upgrade logic
Also demonstrates how to specify a network upgrade.
2018-02-04 22:58:39 +00:00
Jack Grigg 780f526bc9 Network upgrade activation mechanism 2018-02-04 22:57:56 +00:00