dependabot[bot]
8e268150a7
build(deps): bump tracing-subscriber from 0.2.9 to 0.2.10
...
Bumps [tracing-subscriber](https://github.com/tokio-rs/tracing ) from 0.2.9 to 0.2.10.
- [Release notes](https://github.com/tokio-rs/tracing/releases )
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.2.9...tracing-subscriber-0.2.10 )
Signed-off-by: dependabot[bot] <support@github.com>
2020-08-03 21:11:50 -04:00
dependabot[bot]
f3b65f9609
build(deps): bump tracing from 0.1.17 to 0.1.18
...
Bumps [tracing](https://github.com/tokio-rs/tracing ) from 0.1.17 to 0.1.18.
- [Release notes](https://github.com/tokio-rs/tracing/releases )
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-0.1.17...tracing-0.1.18 )
Signed-off-by: dependabot[bot] <support@github.com>
2020-08-03 15:49:30 -04:00
teor
d4d1edad5a
fix: Use types to avoid ChainVerifier inconsistencies ( #797 )
2020-07-31 10:21:20 +10:00
teor
e74ff18708
refactor: Move the checkpoint list tests to their own file
2020-07-31 07:21:43 +10:00
teor
5b9703f95a
fix: Avoid creating a CheckpointVerifier if it is not needed
...
Also:
* make sure the checkpoints cover all pre-Sapling blocks
* do some minor refactoring to reduce duplicate code
2020-07-30 13:30:18 +10:00
teor
fbeae99328
fix: Only warn on unexpected high blocks
...
High blocks are expected when we restart with most of the chain in our
state.
Also downgrade the message from warn to info.
2020-07-30 13:30:18 +10:00
teor
cf0fd043d4
feature: Update mainnet and testnet checkpoints
2020-07-28 22:27:49 -04:00
teor
396d209638
feature: Add the MinimumDifficulty consensus parameter
2020-07-28 10:34:41 +10:00
teor
1e787aecb9
feature: Check the previous block height in BlockVerifier
...
This is a temporary busy-waiting fix.
2020-07-27 14:14:44 -04:00
teor
2b1e7162b1
feature: Set the testnet Canopy upgrade height
...
See ZIP 251 and zcash/zips#385 for details.
Closes #756 .
2020-07-27 14:03:14 -04:00
teor
993532b604
feature: Add a "Genesis" network upgrade
...
We can use this network upgrade to implement different consensus rules
and chain context handling for genesis blocks.
Part of the chain state design in #682 .
2020-07-27 14:03:14 -04:00
teor
2d3926e800
fix: Replace a return with unreachable!
2020-07-27 13:49:11 -04:00
Alfredo Garcia
5b3c6e4c6c
Port bash checkpoint scripts to zebra-checkpoints single rust binary ( #740 )
...
* make zebra-checkpoints
* fix LOOKAHEAD_LIMIT scope
* add a default cli path
* change doc usage text
* add tracing
* move MAX_CHECKPOINT_HEIGHT_GAP to zebra-consensus
* do byte_reverse_hex in a map
2020-07-25 17:53:00 +10:00
Henry de Valence
4aa00ad216
Align crate versions and user-agent with NU numbers.
...
We had a brief discussion on discord and it seemed like we had consensus on the
following versioning policy:
* zebrad: match major version to NU version, so we will start by releasing
zebrad 3.0.0;
* zebra-* libraries: start by matching zebrad's version, then increment major
versions of each library as we need to make breaking changes (potentially
faster than the zebrad version, always respecting semver but making no
guarantees about the longevity of major releases).
This commit sets all of the crate versions to 3.0.0-alpha.0 -- the -alpha.0
marks it as a prerelease not subject to perfect adherence to compatibility
guarantees.
2020-07-24 11:46:37 -07:00
dependabot[bot]
f7c59c99b5
build(deps): bump tracing-subscriber from 0.2.8 to 0.2.9
...
Bumps [tracing-subscriber](https://github.com/tokio-rs/tracing ) from 0.2.8 to 0.2.9.
- [Release notes](https://github.com/tokio-rs/tracing/releases )
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.2.8...tracing-subscriber-0.2.9 )
Signed-off-by: dependabot[bot] <support@github.com>
2020-07-24 14:31:44 -04:00
teor
2acfcf3a90
Make the CheckpointVerifier handle partial restarts ( #736 )
...
Also put generic bounds on the BlockVerifier struct,
so we get better compilation errors.
2020-07-24 11:47:48 +10:00
teor
77a1fefa1e
Download genesis ( #731 )
...
* feature: Add more CheckpointVerifier tracing
* fix: Download the genesis block
2020-07-23 10:56:52 -07:00
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