Sean Bowe
8 years ago
3 changed files with 112 additions and 30 deletions
@ -0,0 +1,69 @@ |
|||
Daira Hopwood (1): |
|||
zkSNARK: Add constraint that the total value in a JoinSplit is a 64-bit integer. |
|||
|
|||
Nathan Wilcox (4): |
|||
Add a depends description for googletest. |
|||
Add a zcash-gtest binary to our build with a single tautological test. |
|||
Add coverage support scoped to only the zcash-gtest run; invoke with make zcash-cov; make cov is a superset. |
|||
Add googlemock 1.7.0 dependency. |
|||
|
|||
Sean Bowe (49): |
|||
Add serialization for primitive boost::optional<T>. |
|||
New implementation of incremental merkle tree |
|||
Integrate new incremental merkle tree implementation into consensus. |
|||
Test old tree along with new tree as much as possible. |
|||
Deprecate the old tree and remove old tree tests from the test suite. |
|||
Initialize curve/field parameters in case another test hasn't done so. |
|||
Improve well-formedness checks and add additional serialization/deserialization tests. |
|||
Add more well-formedness checks/tests to tree. |
|||
Make appending algorithm more succinct. |
|||
Move incremental merkle tree tests to zcash-gtest. |
|||
NoteEncryption implementation and integration, removal of ECIES and crypto++ dependencies. |
|||
Move NoteEncryption tests to gtest suite. |
|||
Add additional tests for ephemeral key behavior. |
|||
Clarify the usage of decryption API. |
|||
Check exception has specific string message. |
|||
Small nit fixes |
|||
Run `zcash-gtest` in `make check` and fix performance tests. |
|||
Perform zerocash tests as part of full-test-suite, in preparation for removal of zerocash waterfall. |
|||
Distinguish the failure cases of wfcheck in tree. |
|||
Change ciphertext length to match protocol spec, and refactor the use of constants. |
|||
Initialize libsodium in the gtest suite. |
|||
Introduce new `libzcash` Zcash protocol API and crypto constructions surrounding the zkSNARK circuit. |
|||
zkSNARK: Foundations of circuit design and verification logic. |
|||
zkSNARK: Add "zero" constant variable. |
|||
zkSNARK: Enforce spend-authority of input notes. |
|||
zkSNARK: Enforce disclosure of input note nullifiers |
|||
zkSNARK: Authenticate h_sig with a_sk |
|||
zkSNARK: Enforce that new output notes have unique `rho` to prevent faerie gold attack. |
|||
zkSNARK: Enforce disclosure of commitments to output notes. |
|||
zkSNARK: Ensure that values balance correctly. |
|||
zkSNARK: Witness commitments to input notes. |
|||
zkSNARK: Enforce merkle authentication path from nonzero-valued public inputs to root. |
|||
libzcash: Add tests for API |
|||
Remove scriptPubKey/scriptSig from CPourTx, and add randomSeed. |
|||
Transplant of libzcash. |
|||
Added public zkSNARK parameter generation utility. |
|||
Stop testing old tree against new tree. |
|||
Remove nearly all of libzerocash. |
|||
Update public zkSNARK parameters for new circuit. |
|||
Fix performance measurements due to modified transaction structure. |
|||
Remove the zerocash tests from the full test suite. |
|||
Protect-style joinsplits should anchor to the latest root for now, until #604 is resolved. |
|||
Use inheritance for PRF gadgets. |
|||
Rename ZCASH_ constants to ZC_. |
|||
Rename hmac -> mac in circuit. |
|||
`Note` values should be little-endian byte order. |
|||
Update zkSNARK proving/verifying keys. |
|||
Add h_sig test vectors. |
|||
Change testnet network magics. |
|||
|
|||
Taylor Hornby (7): |
|||
Add check that vpubs are not both nonzero and test it. |
|||
Fix sighash tests |
|||
Add empty merkle/noteencryption tests so Sean can rebase. |
|||
Fix RPC tests |
|||
Rename bitcoin.conf and bitcoind.pid to zcash.conf and zcashd.pid in qa/ and src/ |
|||
Trivial change: Capitalize the Z in Zerocash |
|||
Remove the Merkle tree hash function's fixed point. |
|||
|
@ -1,60 +1,73 @@ |
|||
Release Process |
|||
==================== |
|||
Meta: There should always be a single release engineer to disambiguate responsibility. |
|||
|
|||
### Define the release version as: |
|||
|
|||
$ ZCASH_RELEASE=${UPSTREAM_VERSION}.z${ZCASH_RELEASE_COUNTER} |
|||
## A. Define the release version as: |
|||
|
|||
$ ZCASH_RELEASE=${UPSTREAM_VERSION}.z${ZCASH_RELEASE_COUNTER} |
|||
|
|||
Example: |
|||
|
|||
$ ZCASH_RELEASE=0.11.2.z2 |
|||
|
|||
Also, the following commands use the ZCASH_RELEASE_PREV bash variable |
|||
for the previous release: |
|||
|
|||
$ ZCASH_RELEASE_PREV=0.11.2.z1 |
|||
$ ZCASH_RELEASE=0.11.2.z2 |
|||
|
|||
Also, the following commands use the ZCASH_RELEASE_PREV bash variable for the previous release: |
|||
|
|||
### update (commit) version in sources |
|||
$ ZCASH_RELEASE_PREV=0.11.2.z1 |
|||
|
|||
## B. create a new release branch / github PR |
|||
### B1. update (commit) version in sources |
|||
|
|||
doc/README.md |
|||
src/clientversion.h |
|||
|
|||
In clientverion.h change CLIENT_VERSION_IS_RELEASE to false while Zcash |
|||
doc/README.md |
|||
|
|||
In `clientversion.h` change CLIENT_VERSION_IS_RELEASE to false while Zcash |
|||
is in alpha-test phase. |
|||
|
|||
### write release notes |
|||
### B2. write release notes |
|||
|
|||
git shortlog helps a lot, for example: |
|||
|
|||
$ git shortlog --no-merges v${ZCASH_RELEASE_PREV}..HEAD \ |
|||
> ./doc/release-notes/release-notes-${ZCASH_RELEASE}.md |
|||
|
|||
### B3. merge the previous changes |
|||
|
|||
Do the normal pull-request, review, testing process for this release PR. |
|||
|
|||
### merge the previous changes |
|||
## C. Verify code artifact hosting |
|||
|
|||
Do the normal pull-request, review, testing process. |
|||
### C1. Ensure depends tree is working |
|||
|
|||
### make tags / release-branch for the newly merged result |
|||
http://ci.leastauthority.com:8010/builders/depends-sources |
|||
|
|||
### C2. Ensure public parameters work |
|||
|
|||
Run `./fetch-params.sh`. |
|||
|
|||
## D. make tags / release-branch for the newly merged result |
|||
|
|||
In this example, we ensure zc.v0.11.2.latest is up to date with the |
|||
previous merged PR, then: |
|||
|
|||
$ git tag v${ZCASH_RELEASE} |
|||
$ git tag v${ZCASH_RELEASE} |
|||
$ git branch zc.v${ZCASH_RELEASE} |
|||
$ git push origin v${ZCASH_RELEASE} |
|||
$ git push origin zc.v${ZCASH_RELEASE} |
|||
|
|||
## E. update github default branch to this new release branch |
|||
## F. write / publish a release announcement |
|||
## G. deploy testnet |
|||
## H. write and publish appropriate announcements (blog, zcash-dev, slack) |
|||
## I. celebrate |
|||
## missing steps |
|||
|
|||
### update github default branch to this new release branch |
|||
Zcash still needs: |
|||
|
|||
### write / publish a release announcement |
|||
* deterministic build |
|||
|
|||
### celebrate |
|||
* signatured tags |
|||
|
|||
### missing steps |
|||
* thorough pre-release testing (presumably more thorough than standard PR tests) |
|||
|
|||
Zcash still needs: |
|||
* release deployment steps (eg: updating build-depends mirror, deploying testnet, etc...) |
|||
|
|||
a. deterministic build |
|||
b. signatured tags |
|||
c. thorough pre-release testing (presumably more thorough than standard PR tests) |
|||
d. release deployment steps (eg: updating build-depends mirror, deploying testnet, etc...) |
|||
e. proper zcash-specific versions and names in software and documentation. |
|||
* proper zcash-specific versions and names in software and documentation. |
|||
|
Loading…
Reference in new issue