Skip to content
This repository has been archived by the owner on Nov 6, 2020. It is now read-only.

Strict empty steps validation #10041

Merged
merged 3 commits into from
Dec 10, 2018
Merged

Strict empty steps validation #10041

merged 3 commits into from
Dec 10, 2018

Conversation

tomusdrw
Copy link
Collaborator

@tomusdrw tomusdrw commented Dec 10, 2018

Closes: #9950

Enables strict verification of empty steps - there can be no duplicates and empty steps should be ordered inside the seal.
Note that authorities won't produce invalid seals after #9939, this PR just adds verification to the seal to prevent forging incorrect blocks and potentially causing consensus issues.

Release note:
This features is enabled by default so any AuRa + EmptySteps chain should set strict_empty_steps_transition fork block number in their spec and upgrade to a client version with #9939 included.

@tomusdrw tomusdrw added A0-pleasereview 🤓 Pull request needs code review. B1-patch-beta 🕷🕷 M4-core ⛓ Core client code / Rust. B7-releasenotes 📜 Changes should be mentioned in the release notes of the next minor version release. B0-patch-stable 🕷 Pull request should also be back-ported to the stable branch. labels Dec 10, 2018
Copy link
Collaborator

@sorpaas sorpaas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. We probably also want to test a sync on Kovan, just to make sure. (Kovan doesn't have empty steps enabled.)

Copy link
Contributor

@andresilva andresilva left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andresilva andresilva added A8-looksgood 🦄 Pull request is reviewed well. and removed A0-pleasereview 🤓 Pull request needs code review. labels Dec 10, 2018
@andresilva andresilva merged commit 81b7698 into master Dec 10, 2018
@tomusdrw tomusdrw deleted the td-strict-emptysteps branch December 10, 2018 19:01
This was referenced Dec 11, 2018
niklasad1 pushed a commit that referenced this pull request Dec 12, 2018
* Add two failings tests for strict empty steps.

* Implement strict validation of empty steps.
niklasad1 pushed a commit that referenced this pull request Dec 12, 2018
* Add two failings tests for strict empty steps.

* Implement strict validation of empty steps.
Tbaut added a commit that referenced this pull request Dec 13, 2018
* bump beta to 2.2.5

* Fix empty steps (#9939)

* Don't send empty step twice or empty step then block.

* Perform basic validation of locally sealed blocks.

* Don't include empty step twice.

* Strict empty steps validation (#10041)

* Add two failings tests for strict empty steps.

* Implement strict validation of empty steps.

* ethcore: enable constantinople on ethereum (#10031)

* ethcore: change blockreward to 2e18 for foundation after constantinople

* ethcore: delay diff bomb by 2e6 blocks for foundation after constantinople

* ethcore: enable eip-{145,1014,1052,1283} for foundation after constantinople

* Change test miner max memory to malloc reports. (#10024)

* Fix: test corpus_inaccessible panic (#10019)

If system uptime is less than the duration in the test, thread
will panic due to: 'overflow when subtracting duration from instant'.

Changed duration to 20 seconds to make it unlikely the test will
fail due to this condition.

Since no operations that carry a similar risk of panic occur outside
of the tests, it doesn't seem warranted to depend on an external crate
to fix this.

* Bump crossbeam. (#10048)
Tbaut added a commit that referenced this pull request Dec 13, 2018
* bump stable to 2.1.10

* RPC: parity_getBlockReceipts (#9527)

* Block receipts RPC.

* Use lazy evaluation of block receipts (ecrecover).

* Optimize transaction_receipt to prevent performance regression.

* Fix RPC grumbles.

* Add block & transaction receipt tests.

* Fix conversion to block id.

* Update a few parity-common dependencies (#9663)

* Update a few parity-common dependencies

* cleanup

* cleanup

* revert update of ethereum/tests

* better reporting of network rlp errors

* Use rlp 0.3.0-beta.1

* fix util function get_dummy_blocks

* Already a Vec

* encode_list returns vec already

* Address grumble

* No need for betas

* Fix double spaces

* Fix empty steps (#9939)

* Don't send empty step twice or empty step then block.

* Perform basic validation of locally sealed blocks.

* Don't include empty step twice.

* Strict empty steps validation (#10041)

* Add two failings tests for strict empty steps.

* Implement strict validation of empty steps.

* ethcore: enable constantinople on ethereum (#10031)

* ethcore: change blockreward to 2e18 for foundation after constantinople

* ethcore: delay diff bomb by 2e6 blocks for foundation after constantinople

* ethcore: enable eip-{145,1014,1052,1283} for foundation after constantinople

* Change test miner max memory to malloc reports. (#10024)

* Bump crossbeam. (#10048)

* Revert "Bump crossbeam. (#10048)"

This reverts commit ed1db0c.
niklasad1 pushed a commit that referenced this pull request Dec 16, 2018
* Add two failings tests for strict empty steps.

* Implement strict validation of empty steps.
@5chdn 5chdn added this to the 2.3 milestone Dec 28, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A8-looksgood 🦄 Pull request is reviewed well. B0-patch-stable 🕷 Pull request should also be back-ported to the stable branch. B7-releasenotes 📜 Changes should be mentioned in the release notes of the next minor version release. M4-core ⛓ Core client code / Rust.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants