diff --git a/zcash-core-dag.svg b/zcash-core-dag.svg index 38a08431..6b7b0c21 100644 --- a/zcash-core-dag.svg +++ b/zcash-core-dag.svg @@ -4,17 +4,17 @@ - - - + + + zcash/librustzcash#226 - -zcash/librustzcash#226 -Bring in Bolt TZE + +zcash/librustzcash#226 +Bring in Bolt TZE @@ -22,1368 +22,1422 @@ zcash/librustzcash#225 - -zcash/librustzcash#225 -Add Bolt TZE support to -the transaction builder + +zcash/librustzcash#225 +Add Bolt TZE support to +the transaction builder zcash/librustzcash#226->zcash/librustzcash#225 - - + + zcash/zcash#4190 - -zcash/zcash#4190 -TZE: implement zcashd -'host' logic. + +zcash/zcash#4190 +TZE: implement zcashd +'host' logic. - + -zcash/orchard#4 - - -zcash/orchard#4 -Implement the Action -circuit +zcash/orchard#166 + + +zcash/orchard#166 +Ensure our Poseidon +parameters are consistent +with the v1.1 reference +implementation - - -zcash/librustzcash#320 - - -zcash/librustzcash#320 -Implement Orchard -consensus rules as an NU -feature - - - - - -zcash/orchard#4->zcash/librustzcash#320 - - - - - -zcash/orchard#35 - - -zcash/orchard#35 -Transaction building -support - - - - - -zcash/orchard#4->zcash/orchard#35 - - - - - -zcash/zcash#5195 - - -zcash/zcash#5195 -Implement Orchard proof -verification consensus -rule - - - - - -zcash/orchard#4->zcash/zcash#5195 - - - - - -zcash/zcash#5024 - - -zcash/zcash#5024 -Implement NU5 consensus -rules - - - - - -zcash/librustzcash#320->zcash/zcash#5024 - - - - - -zcash/zcash#5021 - - -zcash/zcash#5021 -Add Orchard support to -transaction builder - - - - - -zcash/orchard#35->zcash/zcash#5021 - - - - - -zcash/librustzcash#406 - - -zcash/librustzcash#406 -Add Orchard support to -the transaction builder - - - - - -zcash/orchard#35->zcash/librustzcash#406 - - - - - -zcash/zcash#5195->zcash/zcash#5024 - - - - - -zcash/zcash#5023 - - -zcash/zcash#5023 -Implement support for -Orchard shielded coinbase -output - - - - - -zcash/zcash#5021->zcash/zcash#5023 - - - - - -zcash/librustzcash#403 - - -zcash/librustzcash#403 -Add Orchard support to -`zcash_client_backend` - - - - - -zcash/librustzcash#406->zcash/librustzcash#403 - - - - - -zcash/librustzcash#404 - - -zcash/librustzcash#404 -Add Orchard support to -`zcash_client_sqlite` - - - - - -zcash/librustzcash#403->zcash/librustzcash#404 - - - - + zcash/zcash#4707 - - -zcash/zcash#4707 -[Orchard] Consensus -specification + + +zcash/zcash#4707 +[Orchard] Consensus +specification + + + + + +zcash/orchard#166->zcash/zcash#4707 + + + + + +zcash/librustzcash#320 + + +zcash/librustzcash#320 +Implement Orchard +consensus rules as an NU +feature - + zcash/zcash#4707->zcash/librustzcash#320 - - + + + + + +zcash/zcash#5024 + + +zcash/zcash#5024 +Implement NU5 consensus +rules + + + + + +zcash/librustzcash#320->zcash/zcash#5024 + + + + + +zcash/zcash#5260 + + +zcash/zcash#5260 +Implement network +protocol support for ZIP +239 messages + + + + + +zcash/zcash#5261 + + +zcash/zcash#5261 +Implement handling logic +for ZIP 239 messages + + + + + +zcash/zcash#5260->zcash/zcash#5261 + + + + + +zcash/zcash#5199 + + +zcash/zcash#5199 +[ZIP 239] Relay v5+ +transactions with a +(txid, auth_digest) tuple +(or digest thereof) + + + + + +zcash/zcash#5261->zcash/zcash#5199 + + + + + +zcash/orchard#4 + + +zcash/orchard#4 +Implement the Action +circuit + + + + + +zcash/orchard#4->zcash/librustzcash#320 + + + + + +zcash/orchard#35 + + +zcash/orchard#35 +Transaction building +support + + + + + +zcash/orchard#4->zcash/orchard#35 + + + + + +zcash/zcash#5195 + + +zcash/zcash#5195 +Implement Orchard proof +verification consensus +rule + + + + + +zcash/orchard#4->zcash/zcash#5195 + + + + + +zcash/zcash#5021 + + +zcash/zcash#5021 +Add Orchard support to +transaction builder + + + + + +zcash/orchard#35->zcash/zcash#5021 + + + + + +zcash/librustzcash#406 + + +zcash/librustzcash#406 +Add Orchard support to +the transaction builder + + + + + +zcash/orchard#35->zcash/librustzcash#406 + + + + + +zcash/zcash#5195->zcash/zcash#5024 + + + + + +zcash/zcash#5023 + + +zcash/zcash#5023 +Implement support for +Orchard shielded coinbase +output + + + + + +zcash/zcash#5021->zcash/zcash#5023 + + + + + +zcash/librustzcash#403 + + +zcash/librustzcash#403 +Add Orchard support to +`zcash_client_backend` + + + + + +zcash/librustzcash#406->zcash/librustzcash#403 + + + + + +zcash/librustzcash#404 + + +zcash/librustzcash#404 +Add Orchard support to +`zcash_client_sqlite` + + + + + +zcash/librustzcash#403->zcash/librustzcash#404 + + - + zcash/zcash#4819 - - -zcash/zcash#4819 -Backport upstream PRs -that remove Boost usage + + +zcash/zcash#4819 +Backport upstream PRs +that remove Boost usage - + zcash/orchard#33 - - -zcash/orchard#33 -Implement note commitment -tree logic for Orchard + + +zcash/orchard#33 +Implement note commitment +tree logic for Orchard - + zcash/zcash#5018 - - -zcash/zcash#5018 -Add Orchard note -commitment tree and -nullifier set to -CCoinsView + + +zcash/zcash#5018 +Add Orchard note +commitment tree and +nullifier set to +CCoinsView - + zcash/orchard#33->zcash/zcash#5018 - - + + - + zcash/zcash#5197 - - -zcash/zcash#5197 -Implement NU5 block -consensus rules + + +zcash/zcash#5197 +Implement NU5 block +consensus rules - + zcash/zcash#5018->zcash/zcash#5197 - - + + - + zcash/zcash#5240 - - -zcash/zcash#5240 -Add an Orchard nullifier -test to `coins_tests` + + +zcash/zcash#5240 +Add an Orchard nullifier +test to `coins_tests` - + zcash/zcash#5018->zcash/zcash#5240 - - + + - + zcash/zcash#5197->zcash/zcash#5024 - - + + - + zcash/zcash#5019 - - -zcash/zcash#5019 -Add Orchard keys and -addresses to the wallet + + +zcash/zcash#5019 +Add Orchard keys and +addresses to the wallet - + zcash/zcash#5019->zcash/zcash#5023 - - + + - + zcash/zcash#5020 - - -zcash/zcash#5020 -Add Orchard note -detection and storage to -the wallet + + +zcash/zcash#5020 +Add Orchard note +detection and storage to +the wallet - + zcash/zcash#5019->zcash/zcash#5020 - - + + - + zcash/zcash#5179 - - -zcash/zcash#5179 -Add Unified Address key -generation and storage to -the wallet + + +zcash/zcash#5179 +Add Unified Address key +generation and storage to +the wallet - + zcash/zcash#5019->zcash/zcash#5179 - - + + - + zcash/zcash#5255 - - -zcash/zcash#5255 -Add the ability to -generate Orchard spending -keys in the wallet + + +zcash/zcash#5255 +Add the ability to +generate Orchard spending +keys in the wallet - + zcash/zcash#5019->zcash/zcash#5255 - - + + - + zcash/zcash#5256 - - -zcash/zcash#5256 -Add support for Orchard -receiver inside Unified -Address logic + + +zcash/zcash#5256 +Add support for Orchard +receiver inside Unified +Address logic - + zcash/zcash#5019->zcash/zcash#5256 - - + + - + zcash/zcash#5178 - - -zcash/zcash#5178 -New RPC: z_getnewaccount + + +zcash/zcash#5178 +New RPC: z_getnewaccount - + zcash/zcash#5179->zcash/zcash#5178 - - + + - + zcash/zcash#5182 - - -zcash/zcash#5182 -New RPC: -z_getbalanceforaddress + + +zcash/zcash#5182 +New RPC: +z_getbalanceforaddress - + zcash/zcash#5179->zcash/zcash#5182 - - + + - + zcash/zcash#5185 - - -zcash/zcash#5185 -Add support for funding -z_sendmany from a UA -account + + +zcash/zcash#5185 +Add support for funding +z_sendmany from a UA +account - + zcash/zcash#5179->zcash/zcash#5185 - - + + - + zcash/zcash#5180 - - -zcash/zcash#5180 -New RPC: -z_getaddressforaccount + + +zcash/zcash#5180 +New RPC: +z_getaddressforaccount - + zcash/zcash#5179->zcash/zcash#5180 - - + + - + zcash/zcash#5183 - - -zcash/zcash#5183 -New RPC: -z_getbalanceforaccount + + +zcash/zcash#5183 +New RPC: +z_getbalanceforaccount - + zcash/zcash#5179->zcash/zcash#5183 - - + + - + zcash/orchard#36 - - -zcash/orchard#36 -Parsing and serialization -of Orchard keys and -addresses + + +zcash/orchard#36 +Parsing and serialization +of Orchard keys and +addresses - + zcash/orchard#36->zcash/zcash#5019 - - + + - + zcash/librustzcash#371 - - -zcash/librustzcash#371 -Implement parsing and -serialization of Unified -Addresses + + +zcash/librustzcash#371 +Implement parsing and +serialization of Unified +Addresses - + zcash/orchard#36->zcash/librustzcash#371 - - + + - + zcash/zcash#5133 - - -zcash/zcash#5133 -Implement Unified Address -parsing and serialization -to KeyIO + + +zcash/zcash#5133 +Implement Unified Address +parsing and serialization +to KeyIO - + zcash/librustzcash#371->zcash/zcash#5133 - - + + - + zcash/librustzcash#372 - - -zcash/librustzcash#372 -Implement parsing and -serialization of Unified -[Incoming / Full] Viewing -Keys and Unified Spending -Keys + + +zcash/librustzcash#372 +Implement parsing and +serialization of Unified +[Incoming / Full] Viewing +Keys and Unified Spending +Keys - + zcash/librustzcash#371->zcash/librustzcash#372 - - + + - + zcash/zcash#5133->zcash/zcash#5256 - - + + - + zcash/zcash#5133->zcash/zcash#5178 - - + + - + zcash/zcash#5133->zcash/zcash#5182 - - + + - + zcash/zcash#5133->zcash/zcash#5185 - - + + - + zcash/zcash#5181 - - -zcash/zcash#5181 -New RPC: -z_listunifiedreceivers + + +zcash/zcash#5181 +New RPC: +z_listunifiedreceivers - + zcash/zcash#5133->zcash/zcash#5181 - - + + - + zcash/zcash#5184 - - -zcash/zcash#5184 -Add support for UA -recipients to z_sendmany + + +zcash/zcash#5184 +Add support for UA +recipients to z_sendmany - + zcash/zcash#5133->zcash/zcash#5184 - - + + - + zcash/zcash#5191 - - -zcash/zcash#5191 -z_getbalance: Return -error if given a UA + + +zcash/zcash#5191 +z_getbalance: Return +error if given a UA - + zcash/zcash#5133->zcash/zcash#5191 - - + + - + zcash/zcash#5257 - - -zcash/zcash#5257 -Implement Unified Viewing -Key parsing and -serialization + + +zcash/zcash#5257 +Implement Unified Viewing +Key parsing and +serialization - + zcash/zcash#5133->zcash/zcash#5257 - - + + - + zcash/librustzcash#372->zcash/zcash#5257 - - + + - + zcash/orchard#30 - - -zcash/orchard#30 -Implement ZIP 32 for -Orchard + + +zcash/orchard#30 +Implement ZIP 32 for +Orchard - + zcash/orchard#30->zcash/zcash#5019 - - + + - + zcash/zcash#2534 - - - - -zcash/zcash#2534 -Bitcoin 0.12 P2P/Net PRs -1 + + + + +zcash/zcash#2534 +Bitcoin 0.12 P2P/Net PRs +1 - + zcash/zcash#5003 - - - - -zcash/zcash#5003 -net: prerequisites for -p2p encapsulation changes + + + + +zcash/zcash#5003 +net: prerequisites for +p2p encapsulation changes - + zcash/zcash#2534->zcash/zcash#5003 - - + + - + zcash/zcash#5005 - - - - -zcash/zcash#5005 -net: Split DNS resolving -functionality out of net -structures + + + + +zcash/zcash#5005 +net: Split DNS resolving +functionality out of net +structures - + zcash/zcash#2534->zcash/zcash#5005 - - + + - + zcash/zcash#5004 - - - - -zcash/zcash#5004 -Verify that expected -services are available -from peer nodes & -disconnect otherwise. + + + + +zcash/zcash#5004 +Verify that expected +services are available +from peer nodes & +disconnect otherwise. - + zcash/zcash#5003->zcash/zcash#5004 - - + + - + zcash/zcash#5006 - - - - -zcash/zcash#5006 -Rework AddNode behaviour + + + + +zcash/zcash#5006 +Rework AddNode behaviour - + zcash/zcash#5005->zcash/zcash#5006 - - + + - + zcash/zcash#5004->zcash/zcash#5006 - - + + - + zcash/zcash#5008 - - - - -zcash/zcash#5008 -net: Feeler connections -to increase online addrs -in the tried table. + + + + +zcash/zcash#5008 +net: Feeler connections +to increase online addrs +in the tried table. - + zcash/zcash#5006->zcash/zcash#5008 - - + + - + zcash/zcash#5034 - - - - -zcash/zcash#5034 -Bitcoin 0.17 locking PRs + + + + +zcash/zcash#5034 +Bitcoin 0.17 locking PRs - + zcash/zcash#5050 - - - - -zcash/zcash#5050 -Bitcoin 0.18 locking PRs + + + + +zcash/zcash#5050 +Bitcoin 0.18 locking PRs - + zcash/zcash#5034->zcash/zcash#5050 - - + + - + zcash/zcash#5163 - - - - -zcash/zcash#5163 -Bitcoin 0.19 locking PRs + + + + +zcash/zcash#5163 +Bitcoin 0.19 locking PRs - + zcash/zcash#5050->zcash/zcash#5163 - - + + - + zcash/zcash#5176 - - -zcash/zcash#5176 -Implement BIP 39 seed -phrase support + + +zcash/zcash#5176 +Implement BIP 39 seed +phrase support - + zcash/zcash#5176->zcash/zcash#5255 - - + + - + zcash/zcash#2673 - - -zcash/zcash#2673 -Support Hierarchical -Deterministic t-addresses -(BIP 32) + + +zcash/zcash#2673 +Support Hierarchical +Deterministic t-addresses +(BIP 32) - + zcash/zcash#5176->zcash/zcash#2673 - - + + - + zcash/zcash#2673->zcash/zcash#5179 - - + + - + zcash/zips#364 - - -zcash/zips#364 -[ZIP 339] Wallet Recovery -Words (a la BIP 39) + + +zcash/zips#364 +[ZIP 339] Wallet Recovery +Words (a la BIP 39) - + zcash/zips#364->zcash/zcash#5176 - - + + - + zcash/zcash#5177 - - -zcash/zcash#5177 -Deprecate old address- -related RPCs + + +zcash/zcash#5177 +Deprecate old address- +related RPCs - + zcash/zips#511 - - -zcash/zips#511 -ZIP 32: Document standard -key structure for Unified -Addresses + + +zcash/zips#511 +ZIP 32: Document standard +key structure for Unified +Addresses - + zcash/zips#511->zcash/zcash#5179 - - + + - + zcash/librustzcash#387 - - -zcash/librustzcash#387 -Implement Unified Address -key derivation + + +zcash/librustzcash#387 +Implement Unified Address +key derivation - + zcash/zips#511->zcash/librustzcash#387 - - + + - + zcash/zcash#5186 - - -zcash/zcash#5186 -z_viewtransaction: Figure -out how to render UAs + + +zcash/zcash#5186 +z_viewtransaction: Figure +out how to render UAs - + zcash/zcash#5198 - - -zcash/zcash#5198 -Switch to a `(txid, -auth_digest)` identifier -in places where the node -needs to commit to a -specific instance of a -transaction - - - - - -zcash/zcash#5199 - - -zcash/zcash#5199 -[ZIP 239] Relay v5+ -transactions with a -(txid, auth_digest) tuple -(or digest thereof) + + +zcash/zcash#5198 +Switch to a `(txid, +auth_digest)` identifier +in places where the node +needs to commit to a +specific instance of a +transaction - + zcash/zcash#5223 - - -zcash/zcash#5223 -Add RPC test case that -checks the auth data -commitments for v4 txs + + +zcash/zcash#5223 +Add RPC test case that +checks the auth data +commitments for v4 txs - + zcash/zips#534 - - -zcash/zips#534 -Adding to a full note -commitment tree should be -a consensus error + + +zcash/zips#534 +Adding to a full note +commitment tree should be +a consensus error - + zcash/zcash#5241 - - - - -zcash/zcash#5241 -Consensus: Add check to -ensure that the Orchard -commitment tree is not -overfull after -AppendBundle. + + + + +zcash/zcash#5241 +Consensus: Add check to +ensure that the Orchard +commitment tree is not +overfull after +AppendBundle. - + zcash/zips#534->zcash/zcash#5241 - - + + - + zcash/zcash#5241->zcash/zcash#5197 - - + + - + zcash/zcash#5245 - - -zcash/zcash#5245 -Implement consensus rule -that if effectiveVersion -≥ 5 and nActionsOrchard > -0, at least one of -enableSpendsOrchard and -enableOutputsOrchard is 1 + + +zcash/zcash#5245 +Implement consensus rule +that if effectiveVersion +≥ 5 and nActionsOrchard > +0, at least one of +enableSpendsOrchard and +enableOutputsOrchard is 1 - + zcash/zcash#5245->zcash/zcash#5024 - - + + - + zcash/zips#538 - - - - -zcash/zips#538 -ZIP 316: Define HRPs for -Unified Viewing Keys, and -include the HRP in the -padding + + + + +zcash/zips#538 +ZIP 316: Define HRPs for +Unified Viewing Keys, and +include the HRP in the +padding - + zcash/zips#538->zcash/librustzcash#372 - - + + - + zcash/librustzcash#418 - - -zcash/librustzcash#418 -zcash_address: Add HRPs -to padding of UAs + + +zcash/librustzcash#418 +zcash_address: Add HRPs +to padding of UAs - + zcash/zips#538->zcash/librustzcash#418 - - + + - + zcash/librustzcash#418->zcash/librustzcash#371 - - + + - + zcash-hackworks/zcash-test-vectors#43 - - -zcash-hackworks/zcash-test-vectors#43 -Update padding in Unified -Address test vectors + + +zcash-hackworks/zcash-test-vectors#43 +Update padding in Unified +Address test vectors - + zcash-hackworks/zcash-test-vectors#43->zcash/librustzcash#418 - - + + - + zcash-hackworks/zcash-test-vectors#36 - - -zcash-hackworks/zcash-test-vectors#36 -Orchard Merkle path test -vectors + + +zcash-hackworks/zcash-test-vectors#36 +Orchard Merkle path test +vectors - + zcash-hackworks/zcash-test-vectors#36->zcash/orchard#33 - - + + - + zcash/orchard#95 - - -zcash/orchard#95 -Implement Merkle path -validity chip + + +zcash/orchard#95 +Implement Merkle path +validity chip - + zcash-hackworks/zcash-test-vectors#36->zcash/orchard#95 - - + + - + zcash/orchard#95->zcash/orchard#4 - - + + - + zcash/halo2#75 - - -zcash/halo2#75 -Implement support for -recursion + + +zcash/halo2#75 +Implement support for +recursion - + zcash/halo2#251 - - -zcash/halo2#251 -Implement user-facing API -for recursive proving + + +zcash/halo2#251 +Implement user-facing API +for recursive proving - + zcash/halo2#75->zcash/halo2#251 - - + + - + zcash/halo2#79 - - -zcash/halo2#79 -Migrate Rescue and -Poseidon gadgets to -algebraic hash -abstraction + + +zcash/halo2#79 +Migrate Rescue and +Poseidon gadgets to +algebraic hash +abstraction - + zcash/halo2#78 - - -zcash/halo2#78 -Implement algebraic hash -/ random oracle -abstraction gadget + + +zcash/halo2#78 +Implement algebraic hash +/ random oracle +abstraction gadget - + zcash/halo2#78->zcash/halo2#79 - - + + - + zcash/halo2#250 - - -zcash/halo2#250 -Implement the recursive -verifier circuit + + +zcash/halo2#250 +Implement the recursive +verifier circuit - + zcash/halo2#78->zcash/halo2#250 - - + + - + zcash/halo2#250->zcash/halo2#75 - - + + - + zcash/halo2#57 - - -zcash/halo2#57 -Remove unused -fixed_values from -ProvingKey + + +zcash/halo2#57 +Remove unused +fixed_values from +ProvingKey - + zcash/halo2#82 - - -zcash/halo2#82 -Consider not sampling -beta and gamma if there -are no permutations or -lookups + + +zcash/halo2#82 +Consider not sampling +beta and gamma if there +are no permutations or +lookups - + zcash/halo2#248 - - -zcash/halo2#248 -Implement endoscaling in -the circuit + + +zcash/halo2#248 +Implement endoscaling in +the circuit - + zcash/halo2#248->zcash/halo2#250 - - + + - + zcash/halo2#249 - - -zcash/halo2#249 -Implement circuit logic -for handling public -inputs + + +zcash/halo2#249 +Implement circuit logic +for handling public +inputs - + zcash/halo2#249->zcash/halo2#250 - - + + - + zcash/halo2#246 - - -zcash/halo2#246 -Create recursive proof -structures + + +zcash/halo2#246 +Create recursive proof +structures - + zcash/halo2#247 - - -zcash/halo2#247 -Implement underlying -scaffolding for the -recursive circuit + + +zcash/halo2#247 +Implement underlying +scaffolding for the +recursive circuit - + zcash/halo2#246->zcash/halo2#247 - - + + - + zcash/halo2#247->zcash/halo2#250 - - + + - + zcash/halo2#245 - - -zcash/halo2#245 -Remove the need to -multiply by powers of x^n -in verifier + + +zcash/halo2#245 +Remove the need to +multiply by powers of x^n +in verifier - + zcash/halo2#245->zcash/halo2#250 - - + + - + zcash/halo2#210 - - -zcash/halo2#210 -Make multiopen -point_index_map dependent -only on the rotation + + +zcash/halo2#210 +Make multiopen +point_index_map dependent +only on the rotation - + zcash/halo2#210->zcash/halo2#250 - - + + - + zcash/halo2#312 - - -zcash/halo2#312 -[Book] Document gadget -API + + +zcash/halo2#312 +[Book] Document gadget +API diff --git a/zcash-zf-dag.svg b/zcash-zf-dag.svg index 30d2b0d0..021f1804 100644 --- a/zcash-zf-dag.svg +++ b/zcash-zf-dag.svg @@ -343,7 +343,7 @@ ZcashFoundation/zebra#2524 - + ZcashFoundation/zebra#2524