dependabot[bot]
909b74a613
build(deps): bump tracing from 0.1.16 to 0.1.17 ( #734 )
...
Bumps [tracing](https://github.com/tokio-rs/tracing ) from 0.1.16 to 0.1.17.
- [Release notes](https://github.com/tokio-rs/tracing/releases )
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-0.1.16...tracing-0.1.17 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-23 10:54:56 -07:00
Jane Lusby
c1a1493159
use dirs crate for default location of state and config ( #714 )
...
* use dirs crate for default location of state and config
* panic if a path isn't specified for zebra-state
2020-07-23 21:12:20 +10:00
teor
132875198e
fix: Simplify ChainVerifier
2020-07-23 03:46:24 -04:00
teor
0e0c36c010
fixup! feature: Add network upgrade activation heights
2020-07-23 15:52:18 +10:00
teor
4b683ea2b1
feature: Add Consensus Branch Ids
2020-07-23 15:52:18 +10:00
teor
359febb2e2
doc: Update a CheckpointList comment
2020-07-23 15:52:18 +10:00
teor
c9ee85c3b5
feature: Add network upgrade activation heights
2020-07-23 15:52:18 +10:00
Henry de Valence
4a98b8fa0d
Add basic metrics to the syncer.
2020-07-22 21:59:00 -07:00
Henry de Valence
c2c2a28e8b
Improve tracing output in chain verifier
2020-07-22 21:59:00 -07:00
Jane Lusby
7d4e717182
Add block locator request to state layer ( #712 )
...
* Add block locator request to state layer
* pass genesis in request
* Update zebrad/src/commands/start/sync.rs
* fix errors
2020-07-22 18:01:31 -07:00
teor
cf9bd2c974
diagnostic: Warn on unexpected high blocks
2020-07-23 10:26:25 +10:00
teor
52002ac3c5
feature: Add tracing to chain and checkpoint verifiers
2020-07-23 10:26:25 +10:00
teor
e75697300b
fix: Remove some dead code lints
2020-07-23 10:26:25 +10:00
teor
a998346f4c
refactor: Split out a simpler chain::init function
...
This new chain::init function will let us hide the BlockVerifier and
CheckpointVerifier from the zebra-consensus public interface.
(If needed.)
2020-07-23 10:26:25 +10:00
Jane Lusby
a722cf33f7
enable new tracing instrumentation in tokio
2020-07-22 14:39:54 -04:00
Henry de Valence
add093e3bf
consensus: fix error parameters in redjubjub::Verifier
2020-07-22 14:29:55 -04:00
teor
b8b1239ac4
feature: Implement a basic ChainVerifier service
...
The ChainVerifier service chooses between CheckpointVerifier and
BlockVerifier, based on the block's height.
2020-07-22 12:51:19 +10:00
teor
f1a0036824
feature: Expect the hard-coded checkpoint lists to parse
2020-07-22 12:51:19 +10:00
teor
53606dfae8
fix: Stop the BlockVerifier modifying the state
...
We're going to make a new ChainVerifier that modifies the state.
2020-07-22 12:51:19 +10:00
teor
b0cd920fad
feature: Use the Heartwood protocol version in zebra-network
2020-07-21 10:46:07 -07:00
dependabot[bot]
2208a6a22d
build(deps): bump tracing-subscriber from 0.2.7 to 0.2.8
...
Bumps [tracing-subscriber](https://github.com/tokio-rs/tracing ) from 0.2.7 to 0.2.8.
- [Release notes](https://github.com/tokio-rs/tracing/releases )
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.2.7...tracing-subscriber-0.2.8 )
Signed-off-by: dependabot[bot] <support@github.com>
2020-07-21 12:01:40 -04:00
teor
1b0c0f027f
Add Hard-Coded Checkpoint Lists ( #674 )
...
* Add checkpoint list generation scripts
* Limit the checkpoint block data size
* Limit the checkpoint height gap
* Add Mainnet and Testnet checkpoint lists
* Parse hard-coded checkpoint lists
The lists were generated using the following limits:
- 256 MB spacing, based on block byte size, and
- 2000 blocks.
2020-07-21 23:11:51 +10:00
Alfredo Garcia
fe2a468417
add favicon to generated docs ( #681 )
2020-07-17 16:45:29 -07:00
teor
c13907d1af
fix: Combine two matches
2020-07-16 10:06:29 -07:00
teor
b648375bbe
fix: Hard-code the genesis previous block hash
2020-07-16 10:06:29 -07:00
teor
39e67c8748
feature: Check the genesis hash in checkpoint lists
...
And use the consensus parameters to get the genesis previous block hash.
2020-07-16 10:06:29 -07:00
teor
648d8daf12
feature: Initial consensus parameter module
2020-07-16 10:06:29 -07:00
teor
1915634d2b
Check for bad heights or hashes in checkpoint lists ( #639 )
...
* Add MIN and MAX for BlockHeight and LockTime
* Remove duplicate test cases
* fix a comment about the minimum lock time
The minimum LockTime::Time is 5 November 1985 00:53:20 UTC, so the first
day that only contains valid times is 6 November 1985 (in all timezones).
Similarly, the maximum LockTime::Time is 7 February 2106 06::28::15 UTC,
so the last day that only contains valid times in all time zones is
5 February 2106.
* fix: Reject checkpoint lists with bad hashes or heights
Reject the all-zeroes hash, because it is the parent hash of the genesis
block, and should never appear in a checkpoint list.
Reject checkpoint heights that are greater than the maximum block
height.
2020-07-16 15:09:22 +10:00
teor
851afad01f
fix: Resist CheckpointVerifier memory DoS attacks ( #635 )
...
* fix: Resist CheckpointVerifier memory DoS attacks
Allow a maximum of 2 queued blocks at each height, as a tradeoff between
efficient bad block rejection, and memory usage.
Closes #628 .
* fix: Make max queued blocks at height equal to fanout
* fix: Just allocate all the capacity upfront
* fix: Use with_capacity(1) and reserve_exact(1)
2020-07-15 13:27:10 -07:00
teor
a19fdd9f25
fix: Rename to is_time_valid_at
2020-07-15 09:16:54 -07:00
teor
c2e4f7b0a5
refactor: Move the local clock check to a BlockHeader method
2020-07-15 09:16:54 -07:00
teor
5548dffd3b
refactor: Move the coinbase first check to a Block method
2020-07-15 09:16:54 -07:00
teor
47bc02ea44
partial revert: Use &Block, not Arc<Block>
2020-07-15 09:16:54 -07:00
Jane Lusby
72ec79dd5e
Update zebra-consensus/src/checkpoint/list.rs
...
Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>
2020-07-15 09:16:54 -07:00
teor
6f064e0154
refactor: Use Arc<Block> in BlockVerifier
...
Arc is a bit more flexible when using futures.
And improve the documentation for coinbase_is_first_check.
Closes #627 .
2020-07-15 09:16:54 -07:00
teor
30effa6a46
doc: Improve checkpoint test comments
...
Closes #626 .
2020-07-15 09:16:54 -07:00
teor
e58c913897
refactor: Make max_height call max_height_in_range
...
Closes #630 .
2020-07-15 09:16:54 -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
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
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
Henry de Valence
8b72781fe1
deps: Update redjubjub to 0.2
...
Closes #606 .
2020-07-09 15:20:23 -04: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
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
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