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

[stable] Missing AuRa backports #7499

Merged
merged 5 commits into from
Jan 8, 2018
Merged

[stable] Missing AuRa backports #7499

merged 5 commits into from
Jan 8, 2018

Conversation

tomusdrw
Copy link
Collaborator

@tomusdrw tomusdrw commented Jan 8, 2018

Thanks @andresilva for spotting this.

debris and others added 4 commits January 8, 2018 16:42
* Advance AuRa step as far as we can.

* Wait for future blocks.
Firstly, `Step.duration_remaining` casts it to u32, unnecesarily
limiting it to 2^32. While theoretically this is "good enough" (at 3
seconds steps it provides room for a little over 400 years), it is
still a lossy way to calculate the remaining time until the next step.

Secondly, step duration might be zero, triggering division by zero
in `Step.calibrate`

Solution: rework the code around the fact that duration is
typically in single digits and never grows, hence, it can be represented
by a much narrower range (u16) and this highlights the fact that
multiplying u64 by u16 will only result in an overflow in even further
future, at which point we should panic informatively (if anybody's
still around)

Similarly, panic when it is detected that incrementing the step
counter wrapped around on the overflow of usize.

As for the division by zero, prevent it by making zero an invalid
value for step duration. This will make AuRa log the constraint
mismatch and panic (after all, what purpose would zero step duration
serve? it makes no sense within the definition of the protocol,
as finality can only be achieved as per the specification
if messages are received within the step duration, which would violate
the speed of light and other physical laws in this case).
@tomusdrw tomusdrw added A8-backport 🕸 Pull request is already reviewed well in another branch. M4-core ⛓ Core client code / Rust. labels Jan 8, 2018
* detect different node, same-key signing in aura

* reduce scope of warning
@andresilva
Copy link
Contributor

LGTM!

@5chdn 5chdn merged commit c8f5731 into stable Jan 8, 2018
@5chdn 5chdn added this to the Patch milestone Jan 23, 2018
@debris debris deleted the td-stable-miss branch April 10, 2018 13:26
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A8-backport 🕸 Pull request is already reviewed well in another branch. M4-core ⛓ Core client code / Rust.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants