profile
viewpoint

str4d/android-floating-action-button 95

Floating Action Button for Android API 4+ based on Material Design specification

str4d/android-wizardpager 45

Android pager-style wizard flow sample code - DEVELOPMENT MOVED

Electric-Coin-Company/dev-ci-zcash 34

dev-ci testing using zcash clone, synced with github.com/zcash/zcash

str4d/bls 26

Rust crate for BLS signatures

alecmuffett/videonion 18

video onion hackery (osx scripts)

daira/tweedle 12

Generator and supporting evidence for security of the Tweedledum/Tweedledee pair of elliptic curves suitable for Halo

isislovecruft/ristretto-donna 11

A fork of floodyberry's ed25519-donna modified to support the Ristretto prime-order group

issue commentrustwasm/wasm-bindgen

OOB WASM memory read after refactoring Rust library dependency

This is pretty unlikely to be the fault of wasm-bindgen.

I suspected as much, but I was asked in the wg-wasm Discord channel to open the issue here. I'm happy to move it elsewhere if there's a more likely candidate.

Have you tried running wasm-bindgen in debug mode with extra asserts in place?

How can I enable more wasm-bindgen assertions beyond using wasm-pack build --dev?

Additionally are you sure that the rust application doesn't itself contain any unsafe code which may cause this?

There's no unsafe code in the library that I refactored. There is unsafe code in various (standard) dependencies, but nothing that I could think is involved in this part of the parsing code.

str4d

comment created time in 2 hours

delete branch str4d/zcash

delete branch : 145-wallet-encryption-secretbox

delete time in 6 hours

delete branch str4d/zcash

delete branch : issue-templates

delete time in 6 hours

delete branch str4d/zcash

delete branch : internalise-rust

delete time in 6 hours

delete branch str4d/zcash

delete branch : 4260-nu-branch-id-errors

delete time in 6 hours

delete branch str4d/zcash

delete branch : build-fixes

delete time in 6 hours

delete branch str4d/zcash

delete branch : equihash-validator-rust

delete time in 6 hours

delete branch str4d/zcash

delete branch : make-release-py3

delete time in 6 hours

delete branch str4d/zcash

delete branch : release-notes-v2.1.2

delete time in 6 hours

delete branch str4d/zcash

delete branch : nu4-activation-logic

delete time in 6 hours

delete branch str4d/zcash

delete branch : 4496-heartwood-chain-consistency-check

delete time in 6 hours

delete branch str4d/zcash

delete branch : disconnectblock-fixes

delete time in 6 hours

delete branch str4d/zcash

delete branch : metrics-ibd-progress-bar

delete time in 6 hours

Pull request review commentzcash/zcash

Remove priority logic

 static const double SUFFICIENT_FEETXS = 1; /** Require only an avg of 1 tx every 5 blocks in the combined pri bucket (way less pri txs) */ static const double SUFFICIENT_PRITXS = .2; -// Minimum and Maximum values for tracking fees and priorities+// Minimum and Maximum values for tracking fees static const double MIN_FEERATE = 10; static const double MAX_FEERATE = 1e7; static const double INF_FEERATE = MAX_MONEY;-static const double MIN_PRIORITY = 10;-static const double MAX_PRIORITY = 1e16;-static const double INF_PRIORITY = 1e9 * MAX_MONEY; -// We have to lump transactions into buckets based on fee or priority, but we want to be able-// to give accurate estimates over a large range of potential fees and priorities+// We have to lump transactions into buckets based on fee, but we want to be able+// to give accurate estimates over a large range of potential fees // Therefore it makes sense to exponentially space the buckets /** Spacing of FeeRate buckets */ static const double FEE_SPACING = 1.1; -/** Spacing of Priority buckets */-static const double PRI_SPACING = 2;+// TODO: determine which version to remove priority+// Client version at which priority is removed+static const int REMOVE_PRIORITY_VERSION = 0;

The next release will be 3.1.0, so set this to 3.1.0-beta1, which is 3010000

therealyingtong

comment created time in 6 hours

Pull request review commentzcash/zcash

Remove priority logic

 CFeeRate CBlockPolicyEstimator::estimateFee(int confTarget)     return CFeeRate(median); } -double CBlockPolicyEstimator::estimatePriority(int confTarget)-{-    // Return failure if trying to analyze a target we're not tracking-    if (confTarget <= 0 || (unsigned int)confTarget > priStats.GetMaxConfirms())-        return -1;--    return priStats.EstimateMedianVal(confTarget, SUFFICIENT_PRITXS, MIN_SUCCESS_PCT, true, nBestSeenHeight);-}- void CBlockPolicyEstimator::Write(CAutoFile& fileout) {     fileout << nBestSeenHeight;     feeStats.Write(fileout);-    priStats.Write(fileout);

Until the next release is cut (which would be 3.1.0-rc1 normally), we need to continue to write out at least an empty priStats here (so that the on-disk versioning remains consistent). So either add a bool hasPriStats parameter here and conditionally write as with the reader (which we can remove after the next release), or we could bump the version to 3.1.0-beta1 in this PR.

therealyingtong

comment created time in 6 hours

Pull request review commentzcash/zcash

Remove priority logic

 bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)     CAutoFile est_filein(fopen(est_path.string().c_str(), "rb"), SER_DISK, CLIENT_VERSION);     // Allowed to fail as this file IS missing on first startup.     if (!est_filein.IsNull())-        mempool.ReadFeeEstimates(est_filein);+        mempool.ReadFeeEstimates(est_filein, fFeeEstimatesInitialized);

fFeeEstimatesInitialized is never set to true before this point, and CTxMemPool::ReadFeeEstimates is not called in zcashd anywhere else, so revert the addition of this parameter to CTxMemPool::ReadFeeEstimates.

therealyingtong

comment created time in 6 hours

Pull request review commentzcash/zcash

Add a flag to get amount results as integer

 UniValue getreceivedbyaccount(const UniValue& params, bool fHelp)             "\nArguments:\n"             "1. \"account\"      (string, required) MUST be set to the empty string \"\" to represent the default account. Passing any other string will result in an error.\n"             "2. minconf        (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"-            "3. inZat           (bool, optional, default=false) Get the result amount as an integer.\n"+            "3. inZat           (bool, optional, default=false) Get the result amount in " + MINOR_CURRENCY_UNIT + " (as an integer).\n"             "\nResult:\n"-            "amount              (numeric) The total amount in " + CURRENCY_UNIT + " received for this account.\n"+            "amount              (numeric) The total amount in " + CURRENCY_UNIT + "(or " + MINOR_CURRENCY_UNIT + " if inZat is true) received at this address.\n"

Copy-paste error:

            "amount              (numeric) The total amount in " + CURRENCY_UNIT + "(or " + MINOR_CURRENCY_UNIT + " if inZat is true) received for this account.\n"
oxarbitrage

comment created time in 9 hours

Pull request review commentzcash/zcash

Add a flag to get amount results as integer

 UniValue getbalance(const UniValue& params, bool fHelp)             "1. \"account\"      (string, optional) DEPRECATED. If provided, it MUST be set to the empty string \"\" or to the string \"*\", either of which will give the total available balance. Passing any other string will result in an error.\n"             "2. minconf          (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"             "3. includeWatchonly (bool, optional, default=false) Also include balance in watchonly addresses (see 'importaddress')\n"-            "4. inZat            (bool, optional, default=false) Get the result amount as an integer.\n"+            "4. inZat            (bool, optional, default=false) Get the result amount in " + MINOR_CURRENCY_UNIT + " (as an integer).\n"             "\nResult:\n"-            "amount              (numeric) The total amount in " + CURRENCY_UNIT + " received for this account.\n"+            "amount              (numeric) The total amount in " + CURRENCY_UNIT + "(or " + MINOR_CURRENCY_UNIT + " if inZat is true) received at this address.\n"

Copy-paste error, but here we can improve the message (since accounts are deprecated):

            "amount              (numeric) The total amount in " + CURRENCY_UNIT + "(or " + MINOR_CURRENCY_UNIT + " if inZat is true) received.\n"
oxarbitrage

comment created time in 9 hours

pull request commentzcash/zcash

metrics: Add a progress bar when in Initial Block Download mode

I reverted the double-resolution change, and have switched to using ANSI codes to represent the progress bar. This keeps compatibility with all TTYs that already supported our metrics art.

For the blocks bar region, I invert the default background colour, which maintains the same high contrast as the previous block-character version. For the headers bar region, I picked a green colour from within the metrics art, which should be sufficiently distinct from both the background colour and its inverse. We can adjust the colour in a subsequent PR if users raise any issues.

@zkbot r+

str4d

comment created time in 9 hours

push eventstr4d/zcash

Jack Grigg

commit sha a79337c3ee6d93f83ac8b98db50666d41ab16b7f

metrics: Switch to ANSI colour codes for progress bar We already assume that ANSI colour codes work for the metrics art, whereas the block characters have inconsistent support in fonts.

view details

Jack Grigg

commit sha 12e169d09ff61fabe58ef0e053bb97098e42be4f

metrics: Only print IBD progress bar on TTY Now that it is created from space characters, it is meaningless to print it to a log file.

view details

push time in 9 hours

push eventstr4d/zcash

push time in 9 hours

pull request commentzcash/zcash

Initialize size_t in CTxMemPool::DynamicMemoryUsage before using it

@zkbot r+

oxarbitrage

comment created time in 9 hours

issue openedzcash/zcash

Implement ZIP 212

created time in 13 hours

issue openedzcash/zcash

Implement ZIP 215

The preferred strategy is to switch to the ed25519-zebra Rust crate from Canopy activation; this blocks on the Zcash Foundation, so we should have a preferred alternative in the case that the crate isn't ready in time.

created time in 13 hours

issue openedzcash/zcash

Implement ZIP 214

created time in 13 hours

issue openedzcash/zcash

Implement ZIP 207

created time in 13 hours

PR opened zcash/zips

[ZIP 304] Sapling Address Signatures

Closes https://github.com/zcash/zips/issues/345.

+286 -0

0 comment

1 changed file

pr created time in a day

push eventstr4d/zips

Za Wilcox

commit sha 62e61fd1acac524cd850bd43c54589caba65fa7f

This relabeling brings the figures into closer agreement with the surrounding text.

view details

Daira Hopwood

commit sha 5651875ca8be3d5637bf40c3898304e2f37e701e

ZIP 206: minor wording improvements; make Final. MIN_PEER_PROTO_VERSION is 170002 for Blossom nodes, not 170007. Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

Daira Hopwood

commit sha 3e7d58efe7c3199662c2d4b2cc2f5c4cd2232a24

ZIP 208: minor wording improvements, make Final. Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

Daira Hopwood

commit sha 8a6dc9c9fead91bfb7c2530059705504f6b497d6

Wording tweak: replace "it" with "the note". I was able to read this "it" as a reference to "the transaction". closes #174 Author: Za Wilgustus <zancas@protonmail.com> Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

Daira Hopwood

commit sha 20d506168bf95bca696c1549916f9e360f2f4fa9

Add Acknowledgements to Henry de Valance, Deirdre Connolly, Chelsea Komlo, and Trail of Bits. Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

Daira Hopwood

commit sha 62251dc54f93695746c7076f5170b03ea36d66f3

Change 'Payment address' to 'Shielded payment address' in key components diagrams. Also remove obsolete key_components.{odg,pdf} files. Co-Authored-By: Za Wilcox <zancas@protonmail.com> Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

Daira Hopwood

commit sha 0a3ef339917381784d3b96c25cd00b29e6ef1760

Update incremental Merkle tree diagram. Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

Daira Hopwood

commit sha ed6baf0fef509d6919191d16979e74ffd58ca82f

Change History entry. Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

Daira Hopwood

commit sha 0d582758dd2ea9599dee6ffe85283ecb9ce0febe

Specify a retrospective soft fork implemented in zcashd v2.1.1-1 that limits the nTime field of a block relative to its median-time-past. Correct the definition of median-time-past for the first PoWMedianBlockSpan blocks in a chain. Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

Daira Hopwood

commit sha 849d9435ae477404766a64c15598cdc1f70d75f2

Use the term monomorphism for an injective homomorphism, in the context of a "signature scheme with key monomorphism". Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

Daira Hopwood

commit sha 7af527675b7938a010aa3f0eb4f0e53e4af6130d

Regenerate PDFs. Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

Daira Hopwood

commit sha 258c3729de1e899c565c8632ac59c9af386d5542

Merge pull request #320 from daira/spec-timejacking-fix Protocol Specification version 2020.1.0

view details

Daira Hopwood

commit sha 35d34967eeb395f972965c6dab9f3f7e3189916a

Add link to protocol spec on index page. Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

Daira Hopwood

commit sha 2e26bb072dfd5f842fe9e779bdec8cabeb4fa9bf

Resolve conflicts in the specification of memo fields by deferring to ZIP 302. Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

Daira Hopwood

commit sha 2e5aad23a156752e603f5ad084a62039fbc45ea6

Regenerate PDFs for protocol spec. Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

Daira Hopwood

commit sha 206ff55affb1192efbd9ff3defd4c72f05d44427

Merge pull request #322 from daira/spec-resolve-memo-conflict Resolve conflicts in the specification of memo fields by deferring to ZIP 302

view details

Josh Cincinnati

commit sha 4f5f2aa4c3f06a4be74485443d0735788dbd044e

mutually agreed modifications to zip-1014

view details

Daira Hopwood

commit sha 7448bba530b1aefe8db86bfe52038e13a8f87fb4

Rename the "ZF-MG" slice to "MG", and the "ZF-GU" slice to "ZF". Clearer, and reflects common use in the forum and Helios poll. Based on https://github.com/zcash/zips/pull/319/commits/1f851eb1c3ef75d34a042e91b6fa878d6969a63a Co-authored-by: Eran Tromer <eran@tromer.org> Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

Daira Hopwood

commit sha d3d52c75fe36cf9a1a62629de7d6a11cb461b5ad

Resolve a wording ambiguity: Major Grant funding decisions are intended to be subject to veto if they violate any U.S. law, not just law relating to the ZF's reporting requirements. Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

Daira Hopwood

commit sha f7229384d91c32e71fec963af949d49d65f20aed

Clear up a stale reference to "both of these processes" (originally one of the processes referred to was the Community Panel's power to change the Funding Cap, which no longer exists). Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

push time in a day

push eventstr4d/librustzcash

Nikolay Volf

commit sha 081937162ce7cea128d7fd6adea30d35ef14b584

Initial commit

view details

NikVolf

commit sha ae364f3ae7d284ccb1e00be21c0654a785d727a3

initial commit

view details

NikVolf

commit sha c794cdc6803ba01f00aa6790dd2d7d45b7c6f5d3

fix signature and generate h

view details

NikVolf

commit sha 845babc3c213a1de8fdd79f7c5b665be9c2f3d25

remove unuse dep

view details

NikVolf

commit sha fec7e077649f1d89936b024367abed4568b63b1b

refactor and fix warnings

view details

NikVolf

commit sha 66c31be6c500951c099673132586199b52e1391a

commit from cbindgen

view details

NikVolf

commit sha 261ad90d337e10aacfa18b6327eabf13a8191c61

truncate leaf and test

view details

NikVolf

commit sha f316c1b439f81ec373e25964e2a5b24a62e260d8

remove whitespaces

view details

NikVolf

commit sha 5c6d85671458a60d4d071958119e7697e0fdf79c

extra test

view details

NikVolf

commit sha 767d73f777758f2c39ec22eff975d7b1635664e2

extra asserts

view details

NikVolf

commit sha 3a09eef6b3aa20de3e09ef6c4764f1e9cc21cdf8

some ascii fun

view details

NikVolf

commit sha bd8eea97b7d81ef85181803883d0a718e3b84680

add docs/comments and fix bug

view details

NikVolf

commit sha 27337f1bb00eced4e48c29fd17a9d95e15c0b821

use assert_matches!

view details

NikVolf

commit sha 5a479363ff08742ec2cbb79dfc56dbd11ffb1a92

new initializer

view details

NikVolf

commit sha e7d67364cca6c63d40eb25ad3abed2688d87bee6

add quickcheck(failing) also failing append

view details

NikVolf

commit sha c05446d2aee99bc47662619500ec90be388a2748

add get_peaks method

view details

NikVolf

commit sha fa04929891e96b218ed8febbe5c9f2b1c85f9161

refactored append and fixed tests

view details

NikVolf

commit sha 68983dc0c1a1322cedca50ba63f5f5821a1634b0

extra tests and notes

view details

NikVolf

commit sha 4c49f09515308b5794e1a1bebbf08a0210c625f9

extra quick-checks and fixes for deleting from full root

view details

NikVolf

commit sha d58b33fb78a2ca7d5435a9c83d41585f4c47ddb2

simplify and optimize get_peaks

view details

push time in 3 days

Pull request review commentzcash/librustzcash

pairing: Refactor traits to reflect bls12_381 crate API

 pub mod bls12_381; use core::ops::Mul; use ff::{Field, PrimeField, ScalarEngine};

The lint here is expected; it will be resolved when both this PR and #237 have been merged.

str4d

comment created time in 3 days

push eventstr4d/librustzcash

Jack Grigg

commit sha 57bb18ca6f056cfd3072ad764fdcf7a1584675be

pairing: Move final_exponentiation into a MillerLoopResult trait

view details

Jack Grigg

commit sha da2e638c7dc3c526600edac4427112bda0cfcc23

pairing: Pass affine references to Engine::pairing

view details

Jack Grigg

commit sha b9d6df913324d54ce14e64c3db464fee3e1466e2

pairing: Extract Engine::miller_loop into a MultiMillerLoop trait This enables MultiMillerLoop to be conditionally implemented, for example in libraries where Engine::pairing supports no-std, but MultiMillerLoop requires an allocator.

view details

push time in 3 days

PR opened zcash/librustzcash

Reviewers
pairing: Refactor traits to reflect bls12_381 crate API
+205 -204

0 comment

10 changed files

pr created time in 3 days

create barnchstr4d/librustzcash

branch : pairing-refactor

created branch time in 3 days

PR opened zcash/librustzcash

Reviewers
Replace E: ScalarEngine with Scalar: PrimeField

Instead of imposing the requirement that bellman users explicitly specify an engine for every proving system, we allow the Rust type system to figure it out for us. An engine is specifically useful in places where we require defined relationships between several types; ff::ScalarEngine only has one type, and thus any usage of it can be trivially replaced by an explicit Scalar type. This is also more readable :)

+712 -702

0 comment

34 changed files

pr created time in 3 days

create barnchstr4d/librustzcash

branch : bellman-scalar

created branch time in 3 days

Pull request review commentzcash/zcash

Add a flag to get amount results as integer

 UniValue z_getbalance(const UniValue& params, bool fHelp)     if (!EnsureWalletIsAvailable(fHelp))         return NullUniValue; -    if (fHelp || params.size()==0 || params.size() >2)+    if (fHelp || params.size() == 0 || params.size() > 3)         throw runtime_error(-            "z_getbalance \"address\" ( minconf )\n"+            "z_getbalance \"address\" ( minconf inZat )\n"             "\nReturns the balance of a taddr or zaddr belonging to the node's wallet.\n"             "\nCAUTION: If the wallet has only an incoming viewing key for this address, then spends cannot be"             "\ndetected, and so the returned balance may be larger than the actual balance.\n"             "\nArguments:\n"             "1. \"address\"      (string) The selected address. It may be a transparent or private address.\n"             "2. minconf          (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"+            "3. inZat            (bool, optional, default=false) Get the result amount as an integer.\n"             "\nResult:\n"             "amount              (numeric) The total amount in " + CURRENCY_UNIT + " received for this address.\n"

Ditto.

oxarbitrage

comment created time in 3 days

Pull request review commentzcash/zcash

Add a flag to get amount results as integer

 UniValue getreceivedbyaccount(const UniValue& params, bool fHelp)     if (!EnsureWalletIsAvailable(fHelp))         return NullUniValue; -    if (fHelp || params.size() < 1 || params.size() > 2)+    if (fHelp || params.size() < 1 || params.size() > 3)         throw runtime_error(-            "getreceivedbyaccount \"account\" ( minconf )\n"+            "getreceivedbyaccount \"account\" ( minconf ) ( inZat )\n"             "\nDEPRECATED. Returns the total amount received by addresses with <account> in transactions with at least [minconf] confirmations.\n"             "\nArguments:\n"             "1. \"account\"      (string, required) MUST be set to the empty string \"\" to represent the default account. Passing any other string will result in an error.\n"-            "2. minconf          (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"+            "2. minconf        (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"+            "3. inZat           (bool, optional, default=false) Get the result amount as an integer.\n"             "\nResult:\n"             "amount              (numeric) The total amount in " + CURRENCY_UNIT + " received for this account.\n"

Ditto.

oxarbitrage

comment created time in 3 days

Pull request review commentzcash/zcash

Add a flag to get amount results as integer

 UniValue getbalance(const UniValue& params, bool fHelp)     if (!EnsureWalletIsAvailable(fHelp))         return NullUniValue; -    if (fHelp || params.size() > 3)+    if (fHelp || params.size() > 4)         throw runtime_error(-            "getbalance ( \"account\" minconf includeWatchonly )\n"+            "getbalance ( \"account\" minconf includeWatchonly inZat )\n"             "\nReturns the server's total available balance.\n"             "\nArguments:\n"             "1. \"account\"      (string, optional) DEPRECATED. If provided, it MUST be set to the empty string \"\" or to the string \"*\", either of which will give the total available balance. Passing any other string will result in an error.\n"             "2. minconf          (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"             "3. includeWatchonly (bool, optional, default=false) Also include balance in watchonly addresses (see 'importaddress')\n"+            "4. inZat            (bool, optional, default=false) Get the result amount as an integer.\n"             "\nResult:\n"             "amount              (numeric) The total amount in " + CURRENCY_UNIT + " received for this account.\n"

Ditto.

oxarbitrage

comment created time in 3 days

Pull request review commentzcash/zcash

Add a flag to get amount results as integer

 UniValue getreceivedbyaddress(const UniValue& params, bool fHelp)     if (!EnsureWalletIsAvailable(fHelp))         return NullUniValue; -    if (fHelp || params.size() < 1 || params.size() > 2)+    if (fHelp || params.size() < 1 || params.size() > 3)         throw runtime_error(-            "getreceivedbyaddress \"zcashaddress\" ( minconf )\n"+            "getreceivedbyaddress \"zcashaddress\" ( minconf ) ( inZat )\n"             "\nReturns the total amount received by the given Zcash address in transactions with at least minconf confirmations.\n"             "\nArguments:\n"             "1. \"zcashaddress\"  (string, required) The Zcash address for transactions.\n"-            "2. minconf             (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"+            "2. minconf         (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"+            "3. inZat           (bool, optional, default=false) Get the result amount as an integer.\n"             "\nResult:\n"             "amount   (numeric) The total amount in " + CURRENCY_UNIT + " received at this address.\n"

This needs to be updated to reflect the units variability.

oxarbitrage

comment created time in 3 days

Pull request review commentzcash/zcash

Add a flag to get amount results as integer

 UniValue getbalance(const UniValue& params, bool fHelp)     if (!EnsureWalletIsAvailable(fHelp))         return NullUniValue; -    if (fHelp || params.size() > 3)+    if (fHelp || params.size() > 4)         throw runtime_error(-            "getbalance ( \"account\" minconf includeWatchonly )\n"+            "getbalance ( \"account\" minconf includeWatchonly inZat )\n"             "\nReturns the server's total available balance.\n"             "\nArguments:\n"             "1. \"account\"      (string, optional) DEPRECATED. If provided, it MUST be set to the empty string \"\" or to the string \"*\", either of which will give the total available balance. Passing any other string will result in an error.\n"             "2. minconf          (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"             "3. includeWatchonly (bool, optional, default=false) Also include balance in watchonly addresses (see 'importaddress')\n"+            "4. inZat            (bool, optional, default=false) Get the result amount as an integer.\n"

Ditto.

oxarbitrage

comment created time in 3 days

Pull request review commentzcash/zcash

Add a flag to get amount results as integer

 UniValue getreceivedbyaccount(const UniValue& params, bool fHelp)     if (!EnsureWalletIsAvailable(fHelp))         return NullUniValue; -    if (fHelp || params.size() < 1 || params.size() > 2)+    if (fHelp || params.size() < 1 || params.size() > 3)         throw runtime_error(-            "getreceivedbyaccount \"account\" ( minconf )\n"+            "getreceivedbyaccount \"account\" ( minconf ) ( inZat )\n"             "\nDEPRECATED. Returns the total amount received by addresses with <account> in transactions with at least [minconf] confirmations.\n"             "\nArguments:\n"             "1. \"account\"      (string, required) MUST be set to the empty string \"\" to represent the default account. Passing any other string will result in an error.\n"-            "2. minconf          (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"+            "2. minconf        (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"+            "3. inZat           (bool, optional, default=false) Get the result amount as an integer.\n"

Ditto.

oxarbitrage

comment created time in 3 days

Pull request review commentzcash/zcash

Add a flag to get amount results as integer

 UniValue z_getbalance(const UniValue& params, bool fHelp)     if (!EnsureWalletIsAvailable(fHelp))         return NullUniValue; -    if (fHelp || params.size()==0 || params.size() >2)+    if (fHelp || params.size() == 0 || params.size() > 3)         throw runtime_error(-            "z_getbalance \"address\" ( minconf )\n"+            "z_getbalance \"address\" ( minconf inZat )\n"             "\nReturns the balance of a taddr or zaddr belonging to the node's wallet.\n"             "\nCAUTION: If the wallet has only an incoming viewing key for this address, then spends cannot be"             "\ndetected, and so the returned balance may be larger than the actual balance.\n"             "\nArguments:\n"             "1. \"address\"      (string) The selected address. It may be a transparent or private address.\n"             "2. minconf          (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"+            "3. inZat            (bool, optional, default=false) Get the result amount as an integer.\n"

Ditto.

oxarbitrage

comment created time in 3 days

Pull request review commentzcash/zcash

Add a flag to get amount results as integer

 UniValue getreceivedbyaddress(const UniValue& params, bool fHelp)     if (!EnsureWalletIsAvailable(fHelp))         return NullUniValue; -    if (fHelp || params.size() < 1 || params.size() > 2)+    if (fHelp || params.size() < 1 || params.size() > 3)         throw runtime_error(-            "getreceivedbyaddress \"zcashaddress\" ( minconf )\n"+            "getreceivedbyaddress \"zcashaddress\" ( minconf ) ( inZat )\n"             "\nReturns the total amount received by the given Zcash address in transactions with at least minconf confirmations.\n"             "\nArguments:\n"             "1. \"zcashaddress\"  (string, required) The Zcash address for transactions.\n"-            "2. minconf             (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"+            "2. minconf         (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"+            "3. inZat           (bool, optional, default=false) Get the result amount as an integer.\n"
            "3. inZat           (bool, optional, default=false) Get the result amount in " + MINOR_CURRENCY_UNIT + " (as an integer).\n"
oxarbitrage

comment created time in 3 days

Pull request review commentzcash/zcash

Add a flag to get amount results as integer

 def run_test(self):         self.sync_all()         check_array_result(self.nodes[1].listreceivedbyaddress(),                            {"address":addr},-                           {"address":addr, "account":"", "amount":Decimal("0.1"), "confirmations":10, "txids":[txid,]})+                           {"address":addr, "account":"", "amount":Decimal("0.1"), "amountZat":10000000, "confirmations":10, "txids":[txid,]})         # With min confidence < 10         check_array_result(self.nodes[1].listreceivedbyaddress(5),                            {"address":addr},-                           {"address":addr, "account":"", "amount":Decimal("0.1"), "confirmations":10, "txids":[txid,]})+                           {"address":addr, "account":"", "amount":Decimal("0.1"), "amountZat":10000000, "confirmations":10, "txids":[txid,]})         # With min confidence > 10, should not find Tx         check_array_result(self.nodes[1].listreceivedbyaddress(11),{"address":addr},{ },True)          # Empty Tx         addr = self.nodes[1].getnewaddress()         check_array_result(self.nodes[1].listreceivedbyaddress(0,True),                            {"address":addr},-                           {"address":addr, "account":"", "amount":0, "confirmations":0, "txids":[]})+                           {"address":addr, "account":"", "amount":0, "confirmations":0, "amountZat":int("0"), "txids":[]})
                           {"address":addr, "account":"", "amount":0, "confirmations":0, "amountZat":0, "txids":[]})
oxarbitrage

comment created time in 3 days

pull request commentzcash/librustzcash

Implement ff traits for bls12_381 and jubjub crates

Rebased the PR; it now only implements the ff traits for the structs that are used as scalars in the group implementations, because the Base associated types are being removed from the group traits.

str4d

comment created time in 4 days

push eventstr4d/librustzcash

Jack Grigg

commit sha 932f1c97372bddd99944ebadbff51e5e19ed587f

Implement TransparentAddress encoding and decoding

view details

Jack Grigg

commit sha b94d5670767458e65fd1334e69b220480c669159

group: Direct-to-affine CurveProjective::batch_normalize Replaces the mutating CurveProjective::batch_normalization API, and removes the need for CurveProjective::is_normalized. The new temporary implementation in pairing::bls12_381::ec is adapted from bls12_381::g1.

view details

Jack Grigg

commit sha 0941dddc1311a31161c90d44befc9d02a61da5ef

group: Return subtle::Choice from CurveAffine::is_identity

view details

Jack Grigg

commit sha b0a3713d7e05fb36f49785175183f004e1d99e0f

group: Add mixed-addition scalar multiplication bounds to CurveAffine Replaces the explicit CurveAffine::mul trait method.

view details

Jack Grigg

commit sha b77f8ddddad1ba622329aeacfb35a8cfd0a898ea

group: Remove EncodedPoint::{into_affine, into_affine_unchecked} Replaced by explicit APIs on the CurveAffine trait. GroupDecodingError has been moved into pairing::bls12_381::ec, as it is no longer used by the group traits.

view details

Jack Grigg

commit sha ceecd32ac431d37538a41ec95093aecf2a1799b9

group: Remove EncodedPoint::from_affine The EncodedPoint trait is replaced by explicit bounds on the CurveAffine::{Uncompressed, Compressed} associated types.

view details

Jack Grigg

commit sha 5f1607c9b5a5caafbc65f5f6f560f1b4512a928e

group: Rename into_*(&self) -> to_*(&self) Rust naming convention uses the into_ prefix for methods that consume self, and the to_ prefix for methods that take an immutable reference.

view details

str4d

commit sha a22957b5759caf49149fa6a7296ec1b4e153b71e

Merge pull request #231 from str4d/group-remove-encodedpoint group: CurveAffine and CurveProjective trait refactor

view details

Jack Grigg

commit sha 4edff963210fd2f3c6e5e0dd2a6a984aa83c8d6f

Fix various lints

view details

Jack Grigg

commit sha 2892cf94c1575fa9ebb939ca4d3fa6145c3651f0

Migrate to protobuf-codegen-pure 2.14

view details

Jack Grigg

commit sha c4887320220b22c54efd305c5d66e8ede22d8e37

Use text directive on sage script doc comment instead of norun norun is an invalid directive, and no_run would cause the sage script to be compiled as Rust.

view details

str4d

commit sha 8831150825a594b2dc9a05526f4233cad6e1a654

Merge pull request #232 from str4d/lint-fixes Lint fixes

view details

str4d

commit sha 121231199cb85cc07303a2b82d88c7936b6f35eb

Merge pull request #205 from str4d/taddr-encoding Implement TransparentAddress encoding and decoding

view details

Aditya Kulkarni

commit sha 4b1d8e5226f32b251189433e686e6694b870a012

Add methods to get OutPoint n, hash

view details

str4d

commit sha 5ff85627448b407437b42fed4258386d2eda5ad5

Merge pull request #222 from adityapk00/zecwallet_compat Expose the `hash` and `n` fields of Transparent Outputs

view details

Jack Grigg

commit sha f208c498cfe4d5a568706b535b1dd9148ad7e193

bls12_381: Fix typo in Fp::from_bytes documentation

view details

Jack Grigg

commit sha 463d72cc3e00c9e73d751fe9a2f53477c9ea7ab1

bls12_381: Implement ff traits for Scalar

view details

Jack Grigg

commit sha b0542dd6d395f201bf1f78693d92c14a7d025ccf

jubjub: Implement ff traits for Fr

view details

push time in 4 days

pull request commentzcash/zcash

Rename NU4 to Canopy in constant and function names

@zkbot r+

daira

comment created time in 4 days

issue openedzcash/librustzcash

zcash_proofs: Batch verification APIs for blocks / transactions

Depends on https://github.com/zkcrypto/bellman/issues/31

created time in 4 days

issue openedzcash/librustzcash

Replace SaplingVerificationContext with separate verifiers for proofs, spendAuthSigs, and bindingSig

Currently, we have a single SaplingVerificationContext which we initialize, use to verify each Spend and Output description, and then call final_check to verify bindingSig. The reason for this workflow was that there is a data dependency on the entire transaction to fully verify it. However, this data dependency is only a blocker on bindingSig; the remaining components can be verified independently of the whole transaction (after computing sigHash), and also batch-verified.

Furthermore, the data dependency for bindingSig is effectively just on computing bvk. Once we have that, verification of bindingSig is equivalent to verifying a spendAuthSig.

We should extract the per-proof and per-signature verifiers from SaplingVerificationContext, so they can be run independently or batched. SaplingVerificationContext would continue to apply the various consensus checks on each spend and output, and final_check would return bvk, which could then be used to e.g. batch-verify bindingSig alongside the spendAuthSigs.

created time in 4 days

pull request commentzcash/zcash

Rename NU4 to Canopy in constant and function names

@zkbot r+

daira

comment created time in 4 days

issue openedzkcrypto/group

Trait refactor

We've been working on refactoring the group crate traits over in https://github.com/zcash/librustzcash. See here for the current state of the refactor (as of 2020-05-28). The core of the current refactor is the following:

trait Group: GroupOps + GroupOps<<Self as Group>::Subgroup> {
    type Subgroup: PrimeGroup
    fn identity() -> Self::Subgroup;
}
trait PrimeGroup: Group {}

However, we can't easily convince rustc that PrimeGroup is only implemented on types for which Group::Subgroup = Self, and this then causes issues when using the group operations because Self::Subgroup != Self::Subgroup::Subgroup.

I'm now considering the following approach, where we define several base traits, and then separate top-level traits for prime-order and cofactor groups:

/// An element of a cryptographic group.
trait Group: GroupOps + ScalarMul<<Self as Group>::Scalar> {
    type Scalar: PrimeField;
    fn identity() -> Self;
    ...
}
/// Efficient representation of an elliptic curve point.
trait Curve<Affine>: Group + GroupOps<Affine> // Mixed addition {
    fn to_affine() -> Affine;
    ...
}
/// A group element with a defined encoding.
trait GroupEncoding {
    type Repr: Default + AsRef<[u8]> + AsMut<[u8]>;
    fn from_bytes(&Self::Repr) -> CtOption<Self>;
    ...
}
/// Affine representation of an elliptic curve point that has a defined uncompressed encoding.
trait UncompressedEncoding {
    type Uncompressed: Default + AsRef<[u8]> + AsMut<[u8]>;
    fn from_uncompressed(&Self::Uncompressed) -> CtOption<Self>;
    ...
}

/// An element of a prime-order cryptographic group.
trait PrimeGroup: Group + GroupEncoding {}
trait PrimeCurve: Curve<<Self as PrimeCurve>::Affine> {
    type Affine: PrimeCurveAffine<Curve = Self, Scalar = Self::Scalar>
        // Scalar multiplication with mixed addition
        + Mul<Self::Scalar, Output = Self>;
}
pub trait PrimeCurveAffine:
    GroupEncoding
    // Scalar multiplication with mixed addition
    + Mul<<Self as PrimeCurveAffine>::Scalar, Output = <Self as PrimeCurveAffine>::Curve>
{
    type Scalar: PrimeField;
    type Curve: PrimeCurve<Affine = Self, Scalar = Self::Scalar>;
    fn identity() -> Self;
    fn to_curve(&self) -> Self::Curve;
    ...
}

trait CofactorGroup:
    Group
    + GroupEncoding
    // Using the type system to enforce Group + Subgroup -> Group
    + GroupOps<<Self as CofactorGroup>::Subgroup>
{
    /// The large prime-order subgroup in which cryptographic operations are performed.
    /// If `Self` also implements `PrimeGroup`, then `Self::Subgroup` may be `Self`.
    type Subgroup: PrimeGroup<Scalar = Self::Scalar> + Into<Self>;
    fn mul_by_cofactor(&self) -> Self::Subgroup;
    fn into_subgroup(self) -> CtOption<Self::Subgroup>;
    ...
}
trait CofactorCurve: Curve<<Self as CofactorCurve>::Affine> + CofactorGroup {
    type Affine: CofactorCurveAffine<Curve = Self, Scalar = Self::Scalar>
        // Scalar multiplication with mixed addition
        + Mul<Self::Scalar, Output = Self>;
}
trait CofactorCurveAffine:
    GroupEncoding
    // Scalar multiplication with mixed addition
    + Mul<<Self as CofactorCurveAffine>::Scalar, Output = <Self as CofactorCurveAffine>::Curve>
{
    type Scalar: PrimeField;
    type Curve: CofactorCurve<Affine = Self, Scalar = Self::Scalar>;
    fn identity() -> Self;
    fn to_curve(&self) -> Self::Curve;
    ...
}

The advantage of this kind of API is two-fold:

  • PrimeGroup does not have a Subgroup associated type, bounding any recursion.
  • Protocol implementors can either restrict their implementations to only work with PrimeGroups, or can explicitly choose to support CofactorGroups (and then explicitly handle the subgroup conversion with e.g. CofactorGroup::mul_by_cofactor, which would be a no-op for PrimeGroups).

created time in 4 days

issue commentZcashFoundation/zebra

Implement Groth16 batch verification optimizations

https://github.com/zkcrypto/bellman/issues/31 is the upstream issue for this in bellman.

dconnolly

comment created time in 5 days

pull request commentzcash/zcash

metrics: Add a progress bar when in Initial Block Download mode

I added @daira's double-resolution change:

     Downloading blocks | 822961 (831328 headers) / ~847460 (97%)
                        | [████████████████████████████████████████████████▙ ]
           Next upgrade | Heartwood at block height 903000, in around 69 days
            Connections | 8
  Network solution rate | 5874133152 Sol/s

The quarter-block and three-quarter-block characters don't render in the default WSL 2 terminal (using code page 65001 (UTF-8)) unless the font is set to a modern font like DejaVu Sans Mono or Source Code Pro. I guess the non-standard block character shapes weren't always implemented.

In the font set being used for GitHub's code blocks (SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace), they render in my browser (Firefox) using Segoe UI Symbol (because they aren't in Consolas) and are wider than the full blocks.

So if we want to go with the double-resolution change and these block characters, we need to rely on a modern font, not just UTF-8. That's not going to be fun to detect...

str4d

comment created time in 5 days

pull request commentzcash/zcash

metrics: Add a progress bar when in Initial Block Download mode

I see two options:

  • We detect the terminal's encoding by inspecting LC_CTYPE or print-and-measure, and switch between block characters and backup characters based on what is supported. This unfortunately isn't reliable but should be good enough.
  • We use the same trick that the ZEC+♥️ images use: set a non-background colour with ANSI codes and then print a space. This doesn't give us half-height blocks for headers (or the more unusual shapes for double-resolution), so it would only be a partial fix.

We could also combine these, using the ANSI codes approach as the fallback.

str4d

comment created time in 5 days

push eventstr4d/zcash

Jack Grigg

commit sha 568ffc31309c3f84752b7e75f647902e6ec611ec

metrics: Double the IBD progress bar resolution Uses half-width block characters to obtain a 100-step bar in 50 characters. Co-authored-by: Daira Hopwood <daira@jacaranda.org>

view details

push time in 5 days

push eventstr4d/zcash

str4d

commit sha 485bb5c71816f110e7cd57f553642f6c622fcd7e

metrics: Double the IBD progress bar resolution Uses half-width block characters to obtain a 100-step bar in 50 characters. Co-authored-by: Daira Hopwood <daira@jacaranda.org>

view details

push time in 5 days

pull request commentzcash/zcash

Automated smoke tests

I've replaced the hard-coded automation with config flags. The smoke tests can now be run in automated / user-less mode with --automate --use-faucet.

str4d

comment created time in 5 days

push eventstr4d/zcash

Jack Grigg

commit sha c2144f7af735142c25870a760d32abccc1b4d1a1

qa: Add --use-faucet flag to smoke tests

view details

Jack Grigg

commit sha 4498eb26db1ce0ae4acac5d068b40e4d1b33ef37

qa: Remove unused timeout configuration from wait_for_balance

view details

Jack Grigg

commit sha 5a577c76307cd45fd4db207bbe3c563c13bf4d7d

qa: Add --automate flag to smoke tests

view details

push time in 5 days

pull request commentzcash/zcash

Report headers download

I've implemented my progress-bar idea from https://github.com/zcash/zcash/pull/3936#issuecomment-517242698 in https://github.com/zcash/zcash/pull/4545.

solardiz

comment created time in 5 days

PR opened zcash/zcash

metrics: Add a progress bar when in Initial Block Download mode metrics screen scratching an itch

The progress bar shows both headers (half-height) and blocks (full-height).

Additionally, the "not mining" message is no longer shown on mainnet, as the built-in CPU miner is not effective at the current network difficulty.

Example output:

Thank you for running a mainnet zcashd v3.0.0 node!
You're helping to strengthen the network and contributing to a social good :)

In order to ensure you are adequately protecting your privacy when using Zcash,
please see <https://z.cash/support/security/>.

     Downloading blocks | 822049 (832850 headers) / ~846820 (97%)
                        | [████████████████████████████████████████████████▄ ]
           Next upgrade | Heartwood at block height 903000, in around 70 days
            Connections | 8
  Network solution rate | 6877575530 Sol/s

Since starting this node 3 minutes, 1 seconds ago:
- You have validated 46035 transactions!

[Press Ctrl+C to exit] [Set 'showmetrics=0' to hide]
+34 -17

0 comment

1 changed file

pr created time in 5 days

create barnchstr4d/zcash

branch : metrics-ibd-progress-bar

created branch time in 5 days

pull request commentzcash/zcash

Report headers download

@zkbot r+

solardiz

comment created time in 5 days

pull request commentzcash/zcash

Report headers download

Rebased on current master.

solardiz

comment created time in 5 days

push eventsolardiz/zcash

Larry Ruane

commit sha 2e505df3511f78396b3b4a9994888b857781d7ee

add timestampindex related RPC getblockhashes

view details

Larry Ruane

commit sha 5bba8493d5ef0a4470935ec5d20ce6a001feb130

fix getblockdeltas documentation formatting

view details

Larry Ruane

commit sha 6e7e50be4d42cea1e40388b48b3eda8840fae272

insightexplorer minor bug fixes

view details

Larry Ruane

commit sha 70bda8416a410e2618e641b587d0bc845feec088

insightexplorer fix LogPrintf

view details

Homu

commit sha 2528af69ff5f16d72aa0523037a7fdc2526de94f

Auto merge of #4025 - bitcartel:shorter_block_target_interval_zip208, r=daira Implement ZIP 208: Shorter Block Target Spacing Closes #3690.

view details

Homu

commit sha 5fd1f5afc04b867627978a9b82d551ae04c04603

Auto merge of #3972 - LarryRuane:3708-getblockhashesrpc, r=str4d 3708 getblockhashesrpc Part of #3708

view details

Larry Ruane

commit sha 7c5a791b73775c4c51767113d50cb4f931a53591

insightexplorer: formatting, pyflakes cleanups

view details

Eirik Ogilvie-Wigley

commit sha 0b83bf493a75a42172945765bf88256fb9d1d802

make-release.py: Versioning changes for 2.0.7-rc1.

view details

Eirik Ogilvie-Wigley

commit sha 9055babafd3c99c92cba54a40662e70d17c87938

make-release.py: Updated manpages for 2.0.7-rc1.

view details

Eirik Ogilvie-Wigley

commit sha 017c933e371b06cca42c9b56ea8f36c5f9444885

make-release.py: Updated release notes and changelog for 2.0.7-rc1.

view details

Homu

commit sha fa1b656482a38d3a6c97950b35521a9c45da1e9c

Auto merge of #4089 - Eirik0:release-v2.0.7-rc1, r=Eirik0 Release v2.0.7 rc1

view details

zebambam

commit sha 929b302e4082279a602059c737b958bf01327ef5

Updated location to new download server

view details

Tori Mitchell

commit sha 58d7dbec830c1f9433bd036147e82fb87f6560ae

Merge pull request #4101 from zebambam/fix_depends_sources_checking_script Updated location to new download server

view details

zebambam

commit sha c4bfc3a257c975e75baa1bfa6ce183aa1d9e8137

Fixes 4097, improves caching on parameter downloads

view details

Homu

commit sha 65b44ab59ca2d68987fc496b287e9a19426da8f5

Auto merge of #4098 - zebambam:optimize_parameter_downloads, r=str4d Improve caching on parameter downloads Yay, fun week! Closes #4097.

view details

Jack Grigg

commit sha cfdf0403328e05b12a8a737134bfa6886181e49c

test: Fix AuthServiceProxy closed conn detection

view details

Daira Hopwood

commit sha f58bc7b638c74c667c7750f2d25ce55dc9479fd3

Add RPC test and test framework constants for Sapling->Blossom activation. Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

Eirik Ogilvie-Wigley

commit sha b49e782ebae52363353f15476fefa739ea13d4d1

Update download path

view details

Eirik Ogilvie-Wigley

commit sha 1288fb1dd8b89b1bf0bf4eba270d7b6b93d88fc8

Set testnet Blossom activation height

view details

Eirik Ogilvie-Wigley

commit sha 6bb36fb379f848e1e7598e0ddb57bf4290e18a70

Notable changes for v2.0.7

view details

push time in 5 days

pull request commentzcash/zcash

Add missing <stdexcept> header for std::invalid_argument

And another one 😑

@zkbot retry

defuse

comment created time in 5 days

pull request commentzcash/zcash

Automated smoke tests

I ran the full smoke test and verified it works. I then reworked the commits, and refactored @mdr0id's commit to split out the testnet faucet helpers.

The remaining work is to redo the final commit on this branch to add the options needed for automation.

str4d

comment created time in 5 days

push eventstr4d/zcash

Eirik Ogilvie-Wigley

commit sha aa4b98a7c3ae2e804083391402e3298a86042207

Resolve decimal vs float issues

view details

Eirik Ogilvie-Wigley

commit sha b21fcf37cb1f8e86813bfc6459ac753673246de3

Various improvements - Print time since start for each operation - Print traceback for any raised exceptions - Improve messages to user - Warning cleanups

view details

mdr0id

commit sha a63c1d62790411d03df05a72d32fcc502b3f3a85

Add helpers for tapping and donating to the testnet faucet

view details

mdr0id

commit sha d371ea02d99f16eb458db670cabc269b4178e2ff

add automation for releases

view details

push time in 5 days

pull request commentzcash/zcash

Add missing <stdexcept> header for std::invalid_argument

Transient failures.

@zkbot retry

defuse

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 class CTxMemPoolEntry; static const double DEFAULT_DECAY = .998;  /**- * We will instantiate two instances of this class, one to track transactions- * that were included in a block due to fee, and one for txs included due to- * priority.  We will lump transactions into a bucket according to their approximate- * fee or priority and then track how long it took for those txs to be included+ * We will instantiate one instance of this class to track transactions+ * that were included in a block due to fee.  

Trailing whitespace.

therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 def run_test (self):         self.nodes[0].generate(1)         self.sync_all() -        # Create tx of lower value to be prioritized on node 0-        # Older transactions get mined first, so this lower value, newer tx is unlikely to be mined without prioritisation-        priority_tx_0 = self.nodes[0].sendtoaddress(self.nodes[1].getnewaddress(), 0.1)+        # Create free tx to be prioritized on node 0+        utxo_list_0 = self.nodes[0].listunspent()+        assert(len(utxo_list_0) > 0)+        utxo_0 = utxo_list_0[0]+        inputs_0 = [{"txid": utxo_0["txid"], "vout": utxo_0["vout"]}]+        outputs_0 = {self.nodes[1].getnewaddress(): utxo_0["amount"]}+        raw_tx_0 = self.nodes[0].createrawtransaction(inputs_0, outputs_0)+        tx_hex_0 = self.nodes[0].signrawtransaction(raw_tx_0)["hex"]+        priority_tx_0 = self.nodes[0].decoderawtransaction(tx_hex_0)["txid"]+        print("priority_tx_0: ", priority_tx_0)+        assert_equal(self.nodes[0].sendrawtransaction(tx_hex_0), priority_tx_0)

Why is it necessary to create a transaction manually here, instead of using one of the wallet APIs? (I vaguely recall looking at this with you in a pairing, but can't recall the outcome.)

therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa         } else {             // Don't accept it if it can't get into a block             CAmount txMinFee = GetMinRelayFee(tx, nSize, true);-            if (fLimitFree && nFees < txMinFee)+            if (fLimitFree && nFees + nFeeDelta < txMinFee){                 return state.DoS(0, error("AcceptToMemoryPool: not enough fees %s, %d < %d",-                                        hash.ToString(), nFees, txMinFee),+                                        hash.ToString(), nFees + nFeeDelta, txMinFee),

Ditto here.

therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 BOOST_AUTO_TEST_CASE(BlockPolicyEstimates)     for (int i = 1; i < 10;i++) {         BOOST_CHECK(mpool.estimateFee(i).GetFeePerK() < origFeeEst[i-1] + deltaFee);         BOOST_CHECK(mpool.estimateFee(i).GetFeePerK() > origFeeEst[i-1] - deltaFee);-        BOOST_CHECK(mpool.estimatePriority(i) < origPriEst[i-1] + deltaPri);-        BOOST_CHECK(mpool.estimatePriority(i) > origPriEst[i-1] - deltaPri);     }       // Mine 15 more blocks with lots of transactions happening and not getting mined     // Estimates should go up     while (blocknum < 265) {         for (int j = 0; j < 10; j++) { // For each fee/pri multiple-            for (int k = 0; k < 5; k++) { // add 4 fee txs for every priority tx+            for (int k = 0; k < 5; k++) { // add 4 fee txs  

Trailing whitespace.

therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 using namespace std;  CTxMemPoolEntry::CTxMemPoolEntry():-    nFee(0), nTxSize(0), nModSize(0), nUsageSize(0), nTime(0), dPriority(0.0),+    nFee(0), nTxSize(0), nModSize(0), nUsageSize(0), nTime(0),     hadNoDependencies(false), spendsCoinbase(false) {     nHeight = MEMPOOL_HEIGHT; }  CTxMemPoolEntry::CTxMemPoolEntry(const CTransaction& _tx, const CAmount& _nFee,-                                 int64_t _nTime, double _dPriority,-                                 unsigned int _nHeight, bool poolHasNoInputsOf,-                                 bool _spendsCoinbase, uint32_t _nBranchId):-    tx(_tx), nFee(_nFee), nTime(_nTime), dPriority(_dPriority), nHeight(_nHeight),+                                 int64_t _nTime, unsigned int _nHeight, bool poolHasNoInputsOf, bool _spendsCoinbase, uint32_t _nBranchId):

Leave the line wraps as they were.

therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 BOOST_AUTO_TEST_CASE(BlockPolicyEstimates)     block.clear();     for (int i = 1; i < 10;i++) {         BOOST_CHECK(mpool.estimateFee(i).GetFeePerK() > origFeeEst[i-1] - deltaFee);-        BOOST_CHECK(mpool.estimatePriority(i) > origPriEst[i-1] - deltaPri);     }      // Mine 100 more blocks where everything is mined every block     // Estimates should be below original estimates (not possible for last estimate)     while (blocknum < 365) {         for (int j = 0; j < 10; j++) { // For each fee/pri multiple-            for (int k = 0; k < 5; k++) { // add 4 fee txs for every priority tx+            for (int k = 0; k < 5; k++) { // add 4 fee txs  

Trailing whitespace.

therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa         // We don't yet know if the transaction commits to consensusBranchId,         // but if the entry gets added to the mempool, then it has passed         // ContextualCheckInputs and therefore this is correct.-        CTxMemPoolEntry entry(tx, nFees, GetTime(), dPriority, chainActive.Height(), mempool.HasNoInputsOf(tx), fSpendsCoinbase, consensusBranchId);+        CTxMemPoolEntry entry(tx, nFees + nFeeDelta, GetTime(), chainActive.Height(), mempool.HasNoInputsOf(tx), fSpendsCoinbase, consensusBranchId);

I can't see where the delta was being applied to nFees before here previously, so I think the + nFeeDelta change here is either an error, or fixing a bug that isn't apparently obvious from the commit history.

therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 BOOST_AUTO_TEST_CASE(BlockPolicyEstimates)     }      std::vector<CAmount> origFeeEst;-    std::vector<double> origPriEst;     // Highest feerate is 10*baseRate and gets in all blocks,     // second highest feerate is 9*baseRate and gets in 9/10 blocks = 90%,     // third highest feerate is 8*base rate, and gets in 8/10 blocks = 80%,     // so estimateFee(1) should return 9*baseRate.     // Third highest feerate has 90% chance of being included by 2 blocks,     // so estimateFee(2) should return 8*baseRate etc...-    for (int i = 1; i < 10;i++) {+    for (int i = 1; i < 9;i++) {

Why is this range decreased?

therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 UniValue mempoolToJSON(bool fVerbose = false)         {             const uint256& hash = e.GetTx().GetHash();             UniValue info(UniValue::VOBJ);-            info.pushKV("size", (int)e.GetTxSize());-            info.pushKV("fee", ValueFromAmount(e.GetFee()));-            info.pushKV("time", e.GetTime());-            info.pushKV("height", (int)e.GetHeight());-            info.pushKV("startingpriority", e.GetPriority(e.GetHeight()));-            info.pushKV("currentpriority", e.GetPriority(chainActive.Height()));+            info.push_back(Pair("size", (int)e.GetTxSize()));+            info.push_back(Pair("fee", ValueFromAmount(e.GetFee())));+            info.push_back(Pair("time", e.GetTime()));+            info.push_back(Pair("height", (int)e.GetHeight()));

I think this suffered from merge conflicts when #4526 was merged. It should be:

            info.pushKV("size", (int)e.GetTxSize());
            info.pushKV("fee", ValueFromAmount(e.GetFee()));
            info.pushKV("time", e.GetTime());
            info.pushKV("height", (int)e.GetHeight());
therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 UniValue prioritisetransaction(const UniValue& params, bool fHelp) {     if (fHelp || params.size() != 3)         throw runtime_error(-            "prioritisetransaction <txid> <priority delta> <fee delta>\n"+            "prioritisetransaction <txid> <fee delta>\n"             "Accepts the transaction into mined blocks at a higher (or lower) priority\n"             "\nArguments:\n"             "1. \"txid\"       (string, required) The transaction id.\n"-            "2. priority delta (numeric, required) The priority to add or subtract.\n"-            "                  The transaction selection algorithm considers the tx as it would have a higher priority.\n"-            "                  (priority of a transaction is calculated: coinage * value_in_satoshis / txsize) \n"+            "2. priority delta (numeric, deprecated) We no longer have the concept of priority.\n"+            "                  This should be set to zero.\n"

The usage line and arguments need to be consistent. Either have an explicit zero in the usage line, or remove the priority delta completely.

Additionally, as is, this API now ignores the priority setting, so mining pools who aren't aware of this change might just be setting priority delta and not realise that it now does nothing. We should either enforce that the priority delta is zero, or remove it.

I'm on the fence about which of these to do. Upstream chose to completely remove the field and break backwards compatibility, but they did so three years ago, and mining pools will have long-since updated. Thus two-argument usage is not unreasonable for our mining pools to upgrade to. OTOH, if the mining pools were only setting the priority delta, removing that would cause their current priority delta to be interpreted as a fee delta. I'd prefer a visible change that will result in an RPC error: either (if left) forcing it to be zero, or (if removed) forcing there to be only two arguments.

therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 BOOST_AUTO_TEST_CASE(BlockPolicyEstimates)     // This makes the tx count about 1.33 per bucket, above the 1 threshold     while (blocknum < 200) {         for (int j = 0; j < 10; j++) { // For each fee/pri multiple-            for (int k = 0; k < 5; k++) { // add 4 fee txs for every priority tx+            for (int k = 0; k < 5; k++) { // add 4 fee txs  

Trailing whitespace.

therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 CBlockTemplate* CreateNewBlock(const CChainParams& chainparams, const MinerAddre             if (nBlockSigOps + nTxSigOps >= MAX_BLOCK_SIGOPS)                 continue; -            // Skip free transactions if we're past the minimum block size:             const uint256& hash = tx.GetHash();-            double dPriorityDelta = 0;-            CAmount nFeeDelta = 0;-            mempool.ApplyDeltas(hash, dPriorityDelta, nFeeDelta);-            if (fSortedByFee && (dPriorityDelta <= 0) && (nFeeDelta <= 0) && (feeRate < ::minRelayTxFee) && (nBlockSize + nTxSize >= nBlockMinSize))+            CAmount nFeeDelta = mempool.GetFeeDelta(hash);++            // Skip free transactions if we're past the priority block size:+            if ((nFeeDelta <= 0) && (feeRate < ::minRelayTxFee) && (nBlockSize + nTxSize >= nBlockPrioritySize))

This does not maintain the current fee behaviour. Revert to this behaviour:

            // Skip free transactions if we're past the minimum block size:
            CAmount nFeeDelta = mempool.GetFeeDelta(hash);
            if ((nFeeDelta <= 0) && (feeRate < ::minRelayTxFee) && (nBlockSize + nTxSize >= nBlockMinSize))
therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 CBlockTemplate* CreateNewBlock(const CChainParams& chainparams, const MinerAddre             if (nBlockSigOps + nTxSigOps >= MAX_BLOCK_SIGOPS)                 continue; -            // Skip free transactions if we're past the minimum block size:             const uint256& hash = tx.GetHash();-            double dPriorityDelta = 0;-            CAmount nFeeDelta = 0;-            mempool.ApplyDeltas(hash, dPriorityDelta, nFeeDelta);-            if (fSortedByFee && (dPriorityDelta <= 0) && (nFeeDelta <= 0) && (feeRate < ::minRelayTxFee) && (nBlockSize + nTxSize >= nBlockMinSize))+            CAmount nFeeDelta = mempool.GetFeeDelta(hash);++            // Skip free transactions if we're past the priority block size:+            if ((nFeeDelta <= 0) && (feeRate < ::minRelayTxFee) && (nBlockSize + nTxSize >= nBlockPrioritySize))                 continue; -            // Prioritise by fee once past the priority size or we run out of high-priority-            // transactions:-            if (!fSortedByFee &&-                ((nBlockSize + nTxSize >= nBlockPrioritySize) || !AllowFree(dPriority)))-            {-                fSortedByFee = true;-                comparer = TxPriorityCompare(fSortedByFee);-                std::make_heap(vecPriority.begin(), vecPriority.end(), comparer);-            }+            std::make_heap(vecPriority.begin(), vecPriority.end(), comparer);

Remove this. It was only being run in one iteration of the loop before (when fSortedByFee was toggled), and now is being run every iteration.

therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 def run_test (self):         assert(mytxid is not None)         self.sync_all() -        # check that priority of the tx sending from a zaddr is not 0         mempool = self.nodes[0].getrawmempool(True)-        assert(Decimal(mempool[mytxid]['startingpriority']) >= Decimal('1000000000000'))

Ditto.

therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 CBlockTemplate* CreateNewBlock(const CChainParams& chainparams, const MinerAddre     // Limit to betweeen 1K and MAX_BLOCK_SIZE-1K for sanity:     nBlockMaxSize = std::max((unsigned int)1000, std::min((unsigned int)(MAX_BLOCK_SIZE-1000), nBlockMaxSize)); -    // How much of the block should be dedicated to high-priority transactions,-    // included regardless of the fees they pay-    unsigned int nBlockPrioritySize = GetArg("-blockprioritysize", DEFAULT_BLOCK_PRIORITY_SIZE);-    nBlockPrioritySize = std::min(nBlockMaxSize, nBlockPrioritySize);-     // Minimum block size you want to create; block will be filled with free transactions     // until there are no more or the block reaches this size:     unsigned int nBlockMinSize = GetArg("-blockminsize", DEFAULT_BLOCK_MIN_SIZE);     nBlockMinSize = std::min(nBlockMaxSize, nBlockMinSize);+    unsigned int nBlockPrioritySize = GetArg("-blockprioritysize", DEFAULT_BLOCK_PRIORITY_SIZE);

nBlockPrioritySize still needs to be limited to nBlockMaxSize, so this change should be undone, but below we are removing the usage of nBlockPrioritySize, so let's just delete it entirely (and the -blockprioritysize config option).

therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 def run_test(self):          self.sync_all() -        # Verify priority of tx is MAX_PRIORITY, defined as 1E+16 (10000000000000000)         mempool = self.nodes[1].getrawmempool(True)-        assert(Decimal(mempool[mytxid]['startingpriority']) == Decimal('1E+16'))

Ditto.

therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 def run_test(self):          self.sync_all() -        # Verify priority of tx is MAX_PRIORITY, defined as 1E+16 (10000000000000000)         mempool = self.nodes[0].getrawmempool(True)-        assert(Decimal(mempool[mytxid]['startingpriority']) == Decimal('1E+16'))

Ditto.

therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 def run_test(self):          self.sync_all() -        # Verify priority of tx is MAX_PRIORITY, defined as 1E+16 (10000000000000000)         mempool = self.nodes[0].getrawmempool(True)-        assert(Decimal(mempool[mytxid]['startingpriority']) == Decimal('1E+16'))+        print("mempool: ", mempool, "\n")+        blockTemplate = self.nodes[0].getblocktemplate()+        print("blockTemplate: ", blockTemplate)

Remove all this; the getrawmempool call is only there for verifying the priority.

therealyingtong

comment created time in 5 days

Pull request review commentzcash/zcash

Remove priority logic

 CFeeRate CBlockPolicyEstimator::estimateFee(int confTarget)     return CFeeRate(median); } -double CBlockPolicyEstimator::estimatePriority(int confTarget)-{-    // Return failure if trying to analyze a target we're not tracking-    if (confTarget <= 0 || (unsigned int)confTarget > priStats.GetMaxConfirms())-        return -1;--    return priStats.EstimateMedianVal(confTarget, SUFFICIENT_PRITXS, MIN_SUCCESS_PCT, true, nBestSeenHeight);-}- void CBlockPolicyEstimator::Write(CAutoFile& fileout) {     fileout << nBestSeenHeight;     feeStats.Write(fileout);-    priStats.Write(fileout); }  void CBlockPolicyEstimator::Read(CAutoFile& filein) {     int nFileBestSeenHeight;     filein >> nFileBestSeenHeight;     feeStats.Read(filein);-    priStats.Read(filein);

We need to verify that nothing else is expected to be read from this file after the call to CBlockPolicyEstimator::Read. If something else is written afterwards, we will need to read and discard the priority stats here (ideally only for old files, if possible).

therealyingtong

comment created time in 5 days

pull request commentzcash/zcash

Automated smoke tests

Looking at the changes in the last commit, there are two flags we want:

  • A flag for using the testnet faucet.
  • A flag for answering all yes/no questions (e.g. "do you want to keep waiting") with yes.

The first is useful without the second for a developer, while using both of these together would give full automation on testnet. When testing mainnet, you'd still need to manually enter an address, so full automation isn't currently possible without some other configuration mechanism, but I think that can be handled later.

str4d

comment created time in 5 days

pull request commentzcash/zcash

Refactor GetFilteredNotes and z_listreceivedbyaddress

Now that 3.0.0 has been released, we can pick this back up. @oxarbitrage please rebase this on current master, and then I'll review.

oxarbitrage

comment created time in 5 days

pull request commentzcash/zcash

Add options and help to AFL scripts

Transient failure.

@zkbot retry

oxarbitrage

comment created time in 5 days

PR closed zcash/zcash

Reviewers
Include the package name and version in metrics UI. metrics screen

Scratching an itch: the metrics UI now displays the official package name and version. This patch should also support any source forks which should have renamed their PACKAGE_STRING.

Issues:

This requires HAVE_CONFIG_H. I don't understand how to find the same information on other platforms. I expect builds to fail on those platforms with PACKAGE_STRING as an undefined symbol in metrics.cpp

There's no automated testing of any kind.

I'm not sure I'm using _ correctly and couldn't find it's API documentation (nor which dependency it comes from, since I don't know how to figure that out with C++).

+1 -1

8 comments

1 changed file

nejucomo

pr closed time in 5 days

pull request commentzcash/zcash

Include the package name and version in metrics UI.

Replaced by #4180.

nejucomo

comment created time in 5 days

pull request commentzcash/zcash

Automated smoke tests

@mdr0id I think the automatic tapping of the testnet faucet should be behind a flag (which can then be made incompatible with the mainnet flag). I'll hold off making those kinds of changes until I've done the rest of the refactor.

str4d

comment created time in 5 days

pull request commentzcash/zcash

Automated smoke tests

Rebased on master to fix merge conflicts; in doing so, I removed the commit that made float modifications to various other RPC tests.

I'm going to run this locally to check that it works, and then do some cleaning up of the PR (e.g. merging the Python 3 changes back into the original commits).

str4d

comment created time in 5 days

push eventstr4d/zcash

avnish

commit sha 678ddb633a1d0f8c79903e1319244a1b88f85ff4

changed block_test to BlockTests

view details

avnish

commit sha 47952a6db8ef7a56b227f1daa13a68320b602f9b

changed test names from _ to CamelCase

view details

avnish

commit sha d7e66404569bed2c51d6b5f6aa681ee415e45190

changed header_size_is_expected to HeaderSizeIsExpected

view details

avnish

commit sha fa5b6f12252e32934b4153ea9d90c0729feb80ab

changed "equihash_tests" to EquihashTests

view details

avnish

commit sha 3b7ca24f66b20f59e9a49decfa13d6b6912bdca1

changed founders_reward_test to FoundersRewardTest

view details

avnish

commit sha 6a08ffa4a84f35a1b0cff5203a3b4fd3aff85a2d

changes tests to camelcase

view details

avnish

commit sha 36f2f2d44a69f707ee034ab31c65d301dfe6ecd3

chnged keystore_tests to KeystoreTests

view details

avnish

commit sha 533a9fcb9d3c04088fc2302930e4f2b119c822b2

changed libzcash_utils to LibzcashUtils

view details

avnish

commit sha 7f83400ada1a5de7ac63fb9bb715ca7d9807c411

changed test to CamelCase

view details

avnish

commit sha 4ac74d9652c0e12ca959cacea51ea6b8e9252e67

changed test to CamelCase

view details

avnish

commit sha b82b5d25dca73691830d99a7ecd03714d31631d0

changed test to CamelCase

view details

avnish

commit sha f6ba975e0b2cc80aa15a1adfe0a5d36c75139957

changed seven_eq_seven to SevenEqSeven

view details

avnish

commit sha 079983c4f0ebb83652795b301d9580c822645761

changed txid_tests to TxidTests

view details

avnish

commit sha ffa022e61bbc5f498aa2ab739923d779f852aa2c

changed wallet_zkeys_test to WalletZkeysTest

view details

Av Nish

commit sha eb038a497aaa8be622877cffc5db290172a843ae

Merge branch 'master' into to-camelcase

view details

Larry Ruane

commit sha 2bedcd3ecfb0e9c9bee1e0da80bccb0f28436986

zcutil/fetch-params.sh unneeded --testnet arg should warn user

view details

avnish98

commit sha a98028269fc53175c4d9cd49c875215f789858f7

Merge remote-tracking branch 'upstream/master' into to-camelcase

view details

avnish98

commit sha 6824a62fc875b291cf5f67013841bded73484c7c

requested changes are rectified

view details

Taylor Hornby

commit sha fd50cbd0892e04fb6e8708e089777272bc553dbc

Make the equihash validator macro set its output to false when throwing an exception.

view details

Taylor Hornby

commit sha 288e72d6438b126a0fdc40e030079b9cad2a8617

Add test for unused bits in the Equihash solution encoding.

view details

push time in 5 days

push eventstr4d/zcash

Jonathan "Duke" Leto

commit sha 3a5235050b8838f23608a9674a6bf5b12a355e89

Add confirmations to z_listreceivedbyaddress

view details

Alfredo Garcia

commit sha de473938484af05ec65a54f1901f3d60f5ed3d24

fix rpc testcase

view details

Alfredo Garcia

commit sha 7e946d7ccb224bfdc22ac98ed4484033c077923d

add blockheight, blockindex and blocktime to z_listreceivedbyaddress

view details

Alfredo Garcia

commit sha 0ee0588025358086670c5af12e1875e387d29ea5

change time to blocktime in help

view details

Alfredo Garcia

commit sha 30ad88cf4cf5dd66a3bca74ada77a17c589afe59

add status to transactions

view details

Alfredo Garcia

commit sha 5e6d43a3ac945759da13c87aed9c25fbfe61e020

minor fix

view details

Alfredo Garcia

commit sha e992825e0a486d4de4066d521eea14586e9e8ad9

add txexpirynotify

view details

Alfredo Garcia

commit sha 11de2d33e78dce029cf7c03d9d95bc4e826f9116

change tuples to classes

view details

Jack Grigg

commit sha 3c7385bc8e5e73d4d6a6092faaaf51978e4d5f7d

Add encoding and decoding for Sapling extended full viewing keys

view details

Jack Grigg

commit sha a1d22b2d4aca57ee3fa94344cca85a5500c818d6

Add Sapling ExtFVK support to z_exportviewingkey

view details

Jack Grigg

commit sha 1bcbe4e21d4a18df144c3a7d73e179c7add79f42

Add in-memory Sapling ExtFVK support to z_importviewingkey

view details

Jack Grigg

commit sha a62405f44f5586e973b26e5be99780d77ef29bd6

Store imported Sapling ExtFVKs in wallet database

view details

Jack Grigg

commit sha 3ff8f0b4a35f9a15a0aadf399b7da78ae8421bfc

Migrate GitHub issue template to new format

view details

Jack Grigg

commit sha 972917ee7b51a4561edc7196a1c14c303f2a70aa

Add GitHub issue templates for feature requests and UX reports

view details

Jack Grigg

commit sha 443fe7d092a58ed83084854f647569fb1261ab03

Bring in librustzcash crate Source: https://github.com/zcash/librustzcash.git Revision: a57dc7f47807ea50cb0a5deec9b84b3e7da11bc0

view details

Jack Grigg

commit sha ef81abdde392253154e9bcde33e141503b508e50

Bring in Cargo.lock from librustzcash repo Source: https://github.com/zcash/librustzcash.git Revision: a57dc7f47807ea50cb0a5deec9b84b3e7da11bc0

view details

Jack Grigg

commit sha 28b2a65c6461d62e1708d4d311b67ff6ca94ac31

rust: Pin toolchain to 1.36.0, matching depends system

view details

Jack Grigg

commit sha 62d0af94cfcc160f8f56f1e9dcb9bfe418b8911c

rust: Adjust Cargo.toml so that it compiles The Cargo.lock is updated to account for the Zcash Rust crates no longer being in the same workspace. Dependencies that were not transitive dependencies of librustzcash are also removed, but no versions change.

view details

Jack Grigg

commit sha 72ab00fdee5bd712197c71d28ba3791fee625f05

Update .gitignore for Rust code

view details

Jack Grigg

commit sha 90f723413600e7900f79b02640b78f574dd8b0a8

Replace librustzcash from depends system with src/rust The --enable-online-rust configure flag replicates the behaviour of the LIBRUSTZCASH_OVERRIDE environment variable (enabling the build system to use crates.io instead of vendored dependencies).

view details

push time in 5 days

pull request commentzcash/zcash

banlist.dat: store banlist on disk

Rebased on master to fix merge conflicts with #4343 and #4526.

str4d

comment created time in 5 days

issue commentzcash/zcash

API request, ListSinceBlock for zaddrs

Now that we have z_viewtransaction (#4146), we should revisit #2105 and see whether it still makes sense or needs to be rewritten.

BitHighlander

comment created time in 5 days

PR closed zcash/zcash

Reviewers
Annotations documentation libsnark testing

This pull request adds debugging "annotations" to the zcash snark circuit gadgets.

The gadgetlib1 examples in libsnark have such annotations (see the SHA256 gadget for example), but the Zcash gadgets don't use them. They only have an effect when DEBUG is defined anyway. For an example of how they can be used, see https://github.com/amiller/zcash/blob/circuit-annotations/README.md

There's not much direct benefit to having them in this code repository, except that it may make it easier for developers of other Zcash-compatible libraries to have a canonical name for each variable and constraint.

+98 -79

5 comments

7 changed files

amiller

pr closed time in 5 days

pull request commentzcash/zcash

Annotations

The code in question was removed by #4060. bellman has its own concept of "namespaces", which the hybrid Sprout circuit uses.

amiller

comment created time in 5 days

more