profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/str4d/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

str4d/android-floating-action-button 97

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

str4d/age-plugin-yubikey 52

YubiKey plugin for age

str4d/android-wizardpager 45

Android pager-style wizard flow sample code - DEVELOPMENT MOVED

mmcloughlin/ec3 35

Elliptic Curve Cryptography Compiler: an incomplete experiment in code-generation for elliptic curves in Go

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

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

alecmuffett/videonion 19

video onion hackery (osx scripts)

daira/tweedle 15

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

push eventzcash/halo2

Jack Grigg

commit sha ca0f04dcb973adfb6448fc85f912d7839c127818

Add [BETA] to the crate description Just so people see it when searching crates.io for halo2.

view details

push time in a day

push eventzcash/halo2

Jack Grigg

commit sha 2c2349b5767940eb90c87b38624a571e1f3335d3

Change crate license-file property to point at COPYING

view details

push time in a day

PR opened zcash/halo2

Reviewers
halo2 0.1.0-beta.1

This is the beta version of halo2 used on testnet in zcashd v4.5.0.

+5 -6

0 comment

3 changed files

pr created time in a day

create barnchzcash/halo2

branch : release-0.1.0-beta.1

created branch time in a day

Pull request review commentzcash/zcash

Add BIP 44 coin type to persisted wallet state.

 class CWallet : public CCryptoKeyStore, public CValidationInterface      * completion the coin set and corresponding actual target value is      * assembled      */-    bool SelectCoinsMinConf(const CAmount& nTargetValue, int nConfMine, int nConfTheirs, std::vector<COutput> vCoins, std::set<std::pair<const CWalletTx*,unsigned int> >& setCoinsRet, CAmount& nValueRet) const;+    static bool SelectCoinsMinConf(const CAmount& nTargetValue, int nConfMine, int nConfTheirs, std::vector<COutput> vCoins, std::set<std::pair<const CWalletTx*,unsigned int> >& setCoinsRet, CAmount& nValueRet);

Ah, I guess this does work fine. Huh.

nuttycom

comment created time in a day

Pull request review commentzcash/zcash

Add BIP 44 coin type to persisted wallet state.

 BOOST_AUTO_TEST_CASE(coin_selection_tests)     CoinSet setCoinsRet, setCoinsRet2;     CAmount nValueRet; -    LOCK(wallet.cs_wallet);-

Given that add_coin now uses pwalletMain, this lock should be altered rather than removed:

    LOCK(pwalletMain->cs_wallet);
nuttycom

comment created time in a day

Pull request review commentzcash/zcash

Add BIP 44 coin type to persisted wallet state.

 static void ApproximateBestSubset(vector<pair<CAmount, pair<const CWalletTx*,uns }  bool CWallet::SelectCoinsMinConf(const CAmount& nTargetValue, int nConfMine, int nConfTheirs, vector<COutput> vCoins,-                                 set<pair<const CWalletTx*,unsigned int> >& setCoinsRet, CAmount& nValueRet) const+                                 set<pair<const CWalletTx*,unsigned int> >& setCoinsRet, CAmount& nValueRet)

This also seems suspicious to me.

nuttycom

comment created time in a day

PullRequestReviewEvent

Pull request review commentzcash/zcash

Add BIP 44 coin type to persisted wallet state.

 bool CWallet::SetHDSeed(const HDSeed& seed)      {         LOCK(cs_wallet);+        CWalletDB(strWalletFile).WriteNetworkInfo(networkIdString);

AFAICT this will only be called when GenerateNewSeed is called (i.e. for brand new wallets that don't have an hdseed), so existing wallets would not store this value, and thus will have no entry to check their configured parameters against. We have two options:

  • Keep the PR as-is. Existing wallets will on every launch assume that the wallet.dat is for the network corresponding to the datadir the wallet was loaded from, unless -wallet=/absolute/path is given, in which case we're assuming the wallet is for the network the node was started from. This matches existing behaviour, and continually trusts the node operator (or e.g. ZecWallet Full Node user) to configure their node correctly.
  • Persist this information for existing wallets if it is missing. This is effectively a "Trust On First Use" model: the above assumption is made the first time the node is restarted, and from that point onwards the wallet.dat tracks the network. If the node operator makes a mistake on that first restart, that will persist and (currently) there is no way to override it. But assuming no mistake is made, the wallet is protected going forward.
nuttycom

comment created time in a day

Pull request review commentzcash/zcash

Add BIP 44 coin type to persisted wallet state.

 void CWallet::SetHDChain(const CHDChain& chain, bool memonly)     hdChain = chain; } +void CWallet::CheckNetworkInfo(std::pair<std::string, std::string> readNetworkInfo)+{+    LOCK(cs_wallet);+    std::pair<string, string> networkInfo(PACKAGE_NAME, networkIdString);+    if (readNetworkInfo != networkInfo)+        throw std::runtime_error(+                strprintf("%s: this wallet is for a different network (%s, %s) than the node is configured for (%s, %s)",

We should have an RPC test that checks this works.

nuttycom

comment created time in a day

Pull request review commentzcash/zcash

Add BIP 44 coin type to persisted wallet state.

 BOOST_AUTO_TEST_CASE(coin_selection_tests)     CoinSet setCoinsRet, setCoinsRet2;     CAmount nValueRet; -    LOCK(wallet.cs_wallet);-     // test multiple times to allow for differences in the shuffle order     for (int i = 0; i < RUN_TESTS; i++)     {         empty_wallet();          // with an empty wallet we can't even pay one cent-        BOOST_CHECK(!wallet.SelectCoinsMinConf( 1 * CENT, 1, 6, vCoins, setCoinsRet, nValueRet));+        BOOST_CHECK(!CWallet::SelectCoinsMinConf( 1 * CENT, 1, 6, vCoins, setCoinsRet, nValueRet));

This looks very suspicious to me. Does this work? Does this method actually not use any properties of CWallet?

nuttycom

comment created time in a day

PullRequestReviewEvent

push eventstr4d/librustzcash

Kris Nuttycombe

commit sha 2945905d52b11815dca80910b9986ae9aa6a2372

Implement manual serialization for incremental Merkle tree components. This also adds parsing of the legacy CommitmentTree format, to permit easy migration of persisted data.

view details

Jack Grigg

commit sha 8b05727361e6d240816a34f6c0d9b6087f83b97b

zcash_primitives: Benchmark trial decryption of compact outputs These are effectively identical to full-output trial decryption (as the primary cost is the scalar multiplication), but it's good to check.

view details

Jack Grigg

commit sha 3ffa3ae4359d51229002b66a88ecbe4c50db0fcd

zcash_primitives: Add flamegraph support to benchmarks on Unix Use `cargo bench -- --profile-time TIME_IN_SECONDS` to measure the flamegraphs. They will be placed in `target/criterion/`.

view details

Jack Grigg

commit sha 0f15743200f55c9986180f719ad89e4d260466fc

Disable default benchmark harness for all workspace crates This is necessary in order to provide criterion-specific arguments to `cargo bench`, such as `--profile-time`.

view details

Jack Grigg

commit sha 16d38ea354aa9c65a875fa41943cbd483c41f61a

zcash_primitives: Remove spaces from benchmark group names

view details

str4d

commit sha 945a199ddd9384487c8a20d50d76dd334f029a86

zcash_primitives: Use `not(unix)` instead of `windows` for flamegraphs Co-authored-by: Daira Hopwood <daira@jacaranda.org>

view details

str4d

commit sha 99d877e22d58610dc43021b831a28286ef353a89

Merge pull request #421 from str4d/bench-compact-decryption zcash_primitives: Benchmark trial decryption of compact outputs

view details

Jack Grigg

commit sha 83c6a2d1ca17ac0689b1238e40709b25972b745b

Store OutputDescription `ephemeral_key` as bytes This removes an unnecessary `to_bytes` during trial decryption of notes, and more closely matches the protocol spec. We retain the consensus rule canonicity check on epk due to `SaplingVerificationContext::check_output` taking a `jubjub::ExtendedPoint`, forcing `zcashd` to parse the bytes.

view details

Daira Hopwood

commit sha d1443e5049c32615155eaed0e36915dbe5222f6b

ZIP 339 support. Signed-off-by: Daira Hopwood <daira@jacaranda.org>

view details

Jack Grigg

commit sha 279a8b6bb6770c5a309b0d67d099e7a7f91f9dd8

Use `EphemeralKeyBytes` type in place of `[u8; 32]`

view details

Jack Grigg

commit sha 0facec094f3ea71cb3a94cdc687d1ac11f7c3e4c

Update changelogs with `EphemeralKeyBytes` changes

view details

str4d

commit sha 51aa991ce05b1c7996e4663752f8044999ee7f06

Merge pull request #423 from str4d/trial-decryption-optimisation Store OutputDescription `ephemeral_key` as bytes

view details

Jack Grigg

commit sha 8a615c43938a5d8237835cd686247cebfa7ae0ea

zcash_note_encryption: Add batched trial decryption APIs

view details

Jack Grigg

commit sha d0026b460b0675441536865f85ad7b2b063e78bc

zcash_primitives: Implement batched trial decryption optimisation

view details

Jack Grigg

commit sha 4b4dd2ea5577345b91066fddb6f91d1c826897af

zcash_note_encryption: Add support for batch-parsing `ephemeral_key` This is useful when the underlying curve requires an inversion to parse an encoded point (such as for Jubjub).

view details

Jack Grigg

commit sha 45521c78496f2a1ce2ed99c515496615dcc51bf8

zcash_primitives: Test that batched trial decryption matches unbatched

view details

Jack Grigg

commit sha d8410063ab2f064558cb2b98fcfc3793559e1b51

zcash_primitives: Implement `Domain::batch_epk` for `jubjub`

view details

str4d

commit sha 13b023387bafdc7b5712c933dc0e16ee94b96a6a

Merge pull request #425 from str4d/batch-note-decryption Batch note decryption

view details

Kris Nuttycombe

commit sha 98dc330cdb1c96e980e62b5bc901edbaa128fea2

Merge pull request #424 from daira/zip339-primitives ZIP 339 support

view details

Kris Nuttycombe

commit sha 5ba7bbc53b536990a85ddc47895172c2fe44e305

Serialize `Option` values by value, not by reference. Co-authored-by: str4d <jack@electriccoin.co>

view details

push time in a day

issue commentzcash/zcash

Addresses aren’t recognized with importaddress.

The above address is inherently invalid:

$ python
Python 3.8.10 (default, Jun  2 2021, 10:49:15)
>>> import base58
>>> base58.b58decode_check('t1RTDdKBeiQvrmjKfpny3AETyhY6RxdHf')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.8/site-packages/base58/__init__.py", line 157, in b58decode_check
    raise ValueError("Invalid checksum")
ValueError: Invalid checksum

It looks like the address might be truncated? A normal t-addr encoding is 35 characters.

ytrezq

comment created time in a day

Pull request review commentzcash/zcash-seeder

Update protocol version for Orchard

  #define MIN_RETRY 1000 -#define REQUIRE_VERSION 170013+#define REQUIRE_VERSION 170014

Hmm, actually now that I think about it, I think we probably should make this change once we've seen at least 50% of the mainnet and testnet upgrade to 4.5.0.

mdr0id

comment created time in a day

PullRequestReviewEvent

pull request commentzcash/zcash-seeder

Upstream changes

I've been running this PR on my mainnet seeder for the last three months, with no issues AFAICT.

str4d

comment created time in 2 days

create barnchstr4d/librustzcash

branch : remove-patches

created branch time in 2 days

create barnchzcash/orchard

branch : remove-patches

created branch time in 2 days

Pull request review commentzcash/zcash-seeder

Update protocol version for Orchard

  #define MIN_RETRY 1000 -#define REQUIRE_VERSION 170013+#define REQUIRE_VERSION 170014

So we should bump this after the later of "mainnet EoS halt" and "testnet NU5 activation".

mdr0id

comment created time in 2 days

PullRequestReviewEvent

Pull request review commentzcash/zcash-seeder

Update protocol version for Orchard

  #define MIN_RETRY 1000 -#define REQUIRE_VERSION 170013+#define REQUIRE_VERSION 170014

I think the same rationale applies even more strongly for testnet, as there are way fewer peers.

mdr0id

comment created time in 2 days

PullRequestReviewEvent

delete branch zcash/zcash-seeder

delete branch : update-seeds

delete time in 2 days

push eventzcash/zcash-seeder

Jack Grigg

commit sha f39c74bc4aa82aa9e77b4f3b07d9e6547a87cb04

Remove old DNS seeder from seeds

view details

str4d

commit sha d6cc03e365e5022c9cdcd03229349818f0dc4c24

Merge pull request #11 from zcash/update-seeds Update initial seeds

view details

push time in 2 days

PR merged zcash/zcash-seeder

Update initial seeds
+1 -1

1 comment

1 changed file

str4d

pr closed time in 2 days

Pull request review commentzcash/zcash-seeder

Update protocol version for Orchard

 class CDataStream; class CAutoFile; static const unsigned int MAX_SIZE = 0x02000000; -static const int PROTOCOL_VERSION = 170013;+static const int PROTOCOL_VERSION = 170014;

This is the correct version to update to ensure that the testnet seeders will still be able to connect to peers after NU5 testnet activation.

mdr0id

comment created time in 2 days

PullRequestReviewEvent

Pull request review commentzcash/zcash-seeder

Update protocol version for Orchard

  #define MIN_RETRY 1000 -#define REQUIRE_VERSION 170013+#define REQUIRE_VERSION 170014

We should not bump this yet; it will cause the seeders to immediately stop advertising any pre-170014 peers, which could inhibit integration into the network as nodes restart. We should instead bump this after EoS halt.

mdr0id

comment created time in 2 days

PullRequestReviewEvent