Commit Graph

968 Commits

Author SHA1 Message Date
teor e1bb95603c
Put zebrad/Cargo.toml in a nicer order (#650) 2020-07-14 10:17:05 -07:00
Alfredo Garcia 04b2eeedd0
Longer checkpoint gap test case (#643)
* create longer checkpoint test

* use futures unordered to syncronize background futures

Co-authored-by: Jane Lusby <jane@zfnd.org>
2020-07-13 09:29:21 -07:00
dependabot[bot] ebcf6b0385 Bump sled from 0.32.0 to 0.32.1
Bumps [sled](https://github.com/spacejam/sled) from 0.32.0 to 0.32.1.
- [Release notes](https://github.com/spacejam/sled/releases)
- [Changelog](https://github.com/spacejam/sled/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spacejam/sled/compare/v0.32...v0.32.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-13 11:51:35 -04:00
Jane Lusby 2b48008129
setup skeleton zebra-utils crate for independent binaries (#638)
* setup skeleton zebra-utils crate for independent binaries

* resolve review comments
2020-07-10 12:31:01 -07:00
teor 870a0be928 fix: Make sure checkpoint heights and hashes are unique
Previously, CheckpointList would silently ignore duplicate heights or
hashes.

Closes #632.
2020-07-10 10:53:32 -07:00
Jane Lusby 06fff62561 remove git dependency on equihash crate 2020-07-10 07:52:52 -04:00
Deirdre Connolly 56361654c6
Fix CD workflow using cloudbuild.yaml (#637)
* Fix variable substitutions in CD workflow and gcloud build config

* Docker needs everything lowercase

* Store container image in GCR

* Don't use GITHUB_REPOSITORY
2020-07-10 07:37:54 -04:00
teor 8b5ec155f0
Consensus refactor (#629)
* Flatten consensus::verify::* to consensus::*
* Move consensus::*::tests into their own files
* Move CheckpointList into its own file
* Move Progress and Target into a types module

QueuedBlock and QueuedBlockList can stay in checkpoint.rs, because
they are tightly coupled to CheckpointVerifier.
2020-07-10 16:51:01 +10:00
Alfredo Garcia 5d6a5ca329
Add consensus coinbase checks (#593)
* add coinbase check and test case

Co-authored-by: Jane Lusby <jane@zfnd.org>
2020-07-10 09:13:44 +10:00
Jane Lusby 765e1e61e7
fix spandoc instrumentation for await expressions (#618)
* fix spandoc instrumentation for await expressions

* depend on released version of spandoc
2020-07-09 17:43:44 -04:00
Jane Lusby 0474a79669
Add cool helpers for using zcash_serialize / zcash_deserialize (#586)
Co-authored-by: Dimitris Apostolou <dimitris.apostolou@icloud.com>
2020-07-09 15:29:31 -04:00
Henry de Valence 8b72781fe1 deps: Update redjubjub to 0.2
Closes #606.
2020-07-09 15:20:23 -04:00
Deirdre Connolly e0a71c229d
Trigger Google Cloud Builds via GitHub App integration (#614)
Use cloudbuild.yaml for all invocations including via gcloud cli and github build triggers
2020-07-09 14:22:56 -04:00
Henry de Valence fcd2f43f39 network: add warning to connection handling code. 2020-07-09 11:15:06 -07:00
Henry de Valence 217c25ef07 network: propagate tracing Spans through peer connection 2020-07-09 11:15:06 -07:00
Henry de Valence ff4e722cd7 sync: touch up tracing output. 2020-07-09 11:15:06 -07:00
dependabot[bot] d627889104 Bump tracing from 0.1.15 to 0.1.16
Bumps [tracing](https://github.com/tokio-rs/tracing) from 0.1.15 to 0.1.16.
- [Release notes](https://github.com/tokio-rs/tracing/releases)
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-0.1.15...tracing-0.1.16)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-09 10:22:27 -07:00
Deirdre Connolly 2cd58c8325
Add RedJubjub signature verifier service (#460)
Using tower-batch-based async pattern.

Now the Verifier is agnostic of redjubjub SigTypes.  Updated tests to
generate sigs of both types and batch verifies the whole batch.

Resolves #407
2020-07-08 17:23:00 -04:00
Deirdre Connolly 83f0747490 Remove straggler install_tracing()
This was removed in the PR but the actual squashed commit still had it. 🤔
2020-07-08 16:55:56 -04:00
teor f2052b398b
feature: Implement CheckpointVerifier (#524)
* Return Poll::Ready(Err(_)) when verification has finished
* Turn checkpoint::init() into CheckpointVerifier::new()
* Accept IntoIterator<...> for CheckpointVerifier::new()
* Add a CheckpointList type

* Replace the state service with oneshot channels.
* Reject redundant checkpoint blocks
* impl Drop for CheckpointVerifier

* Add fields for caching blocks, and managing verify chains.
* Add current checkpoint functions
* Use a checkpoint range
* Get full backtraces with Err::Try
* Add enums for verification progress and target block heights.

* Replace install_tracing() with zebra_test::init()
* Add a test that mixes good and bad blocks
* Add timeouts to the checkpoint test futures
2020-07-08 21:22:36 +10:00
Alfredo Garcia c8cbb08ae3
check equihash solution covers the block header (#607) 2020-07-08 20:58:20 +10:00
Jane Lusby 959f029457
make clippy warnings errors in CI (#605)
* make clippy warnings errors in CI

* Apply fixes from cargo clippy --all-features --all-targets -- -D warnings

* Resolve merge conflicts

Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
2020-07-07 16:26:22 -07:00
Alfredo Garcia f14e577ea9 apply clippy code suggestions 2020-07-07 18:33:14 -04:00
dependabot[bot] 2a6a3ee518 Bump chrono from 0.4.12 to 0.4.13
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.12 to 0.4.13.
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/master/CHANGELOG.md)
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.12...v0.4.13)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-07 18:31:55 -04:00
Jane Lusby 270002c956
Add formal design for syncer (#583)
* Add formal design for syncer

* move away from RFC language

* Update design/0000-template.md

Co-authored-by: Dimitris Apostolou <dimitris.apostolou@icloud.com>

Co-authored-by: Dimitris Apostolou <dimitris.apostolou@icloud.com>
2020-07-07 12:54:34 -07:00
dependabot[bot] 3debe97cb2 Bump equihash from `5b2c71e` to `ae2a248`
Bumps [equihash](https://github.com/ZcashFoundation/librustzcash) from `5b2c71e` to `ae2a248`.
- [Release notes](https://github.com/ZcashFoundation/librustzcash/releases)
- [Commits](5b2c71e112...ae2a248133)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-07 12:31:09 -07:00
Henry de Valence 68f57b2577 Update ed25519-zebra to 1.0. 2020-07-07 11:49:21 -07:00
Henry de Valence e54438f4e4 Update zebra-chain/src/block/header.rs 2020-07-07 11:13:49 -07:00
Dimitris Apostolou ba81d7d4c0 Fix typos 2020-07-07 11:13:49 -07:00
Jane Lusby a733580fd8
add proptests for invalid forms of input (#550)
* add proptests for invalid forms of input

* apply proptests to each valid block we have

* start moving equihash logic to BlockHeader

* provide an error based interface

* cleanup logging in dependent crate

* use is_equihash_solution_valid everywhere

* switch to proper equihash crate branch
2020-07-07 11:01:02 -07:00
Alfredo Garcia db30e53470
Create a test for block size (#558)
* add block size limit test
* calculate max_transactions_in_block and max_inputs_in_tx
* abstract block generation
* move all test vectors to zebra-test
2020-07-07 10:37:32 +10:00
Jane Lusby ac8185f2f3
remove patch for newly released color-eyre dependency (#595) 2020-07-06 13:37:11 -07:00
Alfredo Garcia d736355f9f
Add ZIP143 and ZIP243 test vectors (#585) 2020-07-03 09:45:40 +10:00
Deirdre Connolly a267030d7b Adjust coverage job to only trigger on changes to *.rs files
Moves it to its own workflow. Also pulls in latest tarpaulin release every time. 🤞
2020-07-02 15:38:20 -04:00
dependabot[bot] 5ee48a6675
Bump chrono from 0.4.11 to 0.4.12 (#580)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.11 to 0.4.12.
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/master/CHANGELOG.md)
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.11...v0.4.12)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-02 10:33:39 -07:00
dependabot[bot] a1d02c2606 Bump tracing-subscriber from 0.2.6 to 0.2.7
Bumps [tracing-subscriber](https://github.com/tokio-rs/tracing) from 0.2.6 to 0.2.7.
- [Release notes](https://github.com/tokio-rs/tracing/releases)
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.2.6...tracing-subscriber-0.2.7)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-02 06:47:04 -04:00
dependabot[bot] de08f66b33 Bump codecov/codecov-action from v1.0.7 to v1.0.10
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from v1.0.7 to v1.0.10.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Commits](https://github.com/codecov/codecov-action/compare/v1.0.7...f3570723ef743f6942b6a480461ed0cd6c0f9baa)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-02 06:44:39 -04:00
teor c8829d8408 fix: Adjust bounds on the LockTime Arbitrary impl
The previous code could generate LockTime::Time with (u32::MAX + 1),
but the maximum valid value is u32::MAX due to the field size.
2020-07-02 14:30:34 +10:00
Jane Lusby 00e750654a
add nullifier types (#568)
* add nullifier types

* Apply suggestions from code review

Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>

* add zcash_deserialize impls

* Add docs

Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
2020-07-01 17:57:32 -07:00
Jane Lusby c216f5ca25
Refine type for MAC (#577) 2020-07-01 17:57:03 -07:00
Deirdre Connolly 7f1bc8d922
Try to make CodeCov bot comment on PRs quieter (#576)
* require_changes: true - "Comments will now only post when coverage
changes. Furthermore, if a comment already exists, and a newer commit
results in no coverage change for the entire pull, the comment will be
deleted."

* just the 'diff' view
2020-07-01 20:37:51 -04:00
Jane Lusby 8281b9040c
Start work on new Amount type (#554) 2020-07-01 16:31:30 -07:00
Jane Lusby 51f6ce86ff
Implement retry policy for syncer (#551) 2020-07-01 13:35:01 -07:00
teor f999ec75e6 fix: Remove a non-standard unicode character in a comment 2020-07-01 16:03:14 -04:00
teor 7bace99569 fix: Update a comment with the correct parity-zcash path 2020-07-01 16:03:14 -04:00
Jane Lusby 6cbb6d4574
consolidate arbitrary impls to one file in zebra-chain (#553)
* consolidate arbitrary impls to one file in zebra-chain

* move the ones I missed

* move test-vectors

Co-authored-by: Jane Lusby <jane@zfnd.org>
2020-06-30 14:23:38 -07:00
Jane Lusby 7245d91fe9
fix block downloading to be parallelized and commited via the verifier (#540) 2020-06-30 09:42:09 -07:00
Jane Lusby afd0e90a74
Implement equihash verification (#549)
This change brings in the `equihash` crate from librustzcash and uses it to add a basic `is_valid` test for `EquihashSolutions`.

Co-authored-by: Jane Lusby <jane@zfnd.org>
2020-06-26 11:21:02 -07:00
Deirdre Connolly eff8a3889e Revert "Sign container images for later binary authorization"
This reverts commit 0bb8b2b059.
2020-06-25 17:03:07 -04:00
Deirdre Connolly 038a09ad36 Revert "Use gcloud sdk latest stable in actions; use --quiet for alpha commands"
This reverts commit 8367c765a0.
2020-06-25 17:03:07 -04:00