* Merge pull request #7368 from paritytech/td-future-blocks
Wait for future blocks in AuRa
* Advance AuRa step as far as we can and prevent invalid blocks. (#7451)
* Advance AuRa step as far as we can.
* Wait for future blocks.
* Problem: AuRa's unsafeties around step duration (#7282)
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).
* Fix tests.
* detect different node, same-key signing in aura (#7245)
* detect different node, same-key signing in aura
* reduce scope of warning
* Advance AuRa step as far as we can.
* fixed panic when io is not available for export block, closes#7486 (#7495)
* Update Parity Mainnet Bootnodes
* Replace the Azure HDD bootnodes with the new ones :)
* Bump version.
* Reduce max block timestamp drift to 15 seconds (#7240)
* reduce max block timestamp drift to 15 seconds
* add test for block timestamp validation within allowed drift
* Update kovan HF block number.
* fix modexp bug: return 0 if base=0 (#6424)
* Running state test using parity-evm (#6355)
* Initial version of state tests.
* Refactor state to support tracing.
* Unify TransactResult.
* Add test.
* Byzantium updates
* overflow check in addition
* add test
* Unexpose methods on UI RPC. (#6295)
* Add more descriptive error when signing/decrypting using hw wallet.
* format instant change proofs correctly
* propagate stratum submit share error upstream, fixes#6258 (#6260)
* updated jsonrpc (#6264)
* Using multiple NTP servers (#6173)
* Small improvements to time estimation.
* Allow multiple NTP servers to be used.
* Removing boxing.
* Be nice.
* Be nicer.
* Update list of servers and add reference.
* Fix dapps CSP when UI is exposed externally (#6178)
* Allow embeding on any page when ui-hosts=all and fix dev_ui
* Fix tests.
* Fix cache path when using --base-path (#6212)
* Time should not contribue to overall status. (#6276)
* v1.7.1
* Light client improvements (#6156)
* no seal checking
* import command and --no-seal-check for light client
* fix eth_call
* tweak registry dapps lookup
* ignore failed requests to non-server peers
* Fix connecting to wildcard addresses. (#6167)
* Don't display an overlay in case the time sync check fails. (#6164)
* Small improvements to time estimation.
* Temporarily disable NTP time check by default.
* generate proofs on newly-created state
* report only missed steps after first block
* dont report skipped if not signer
* test
* finality tracing and passing valid header to `commit_block`
* avoid proposing multiple times on the same step when validator set changes
* limit benign reports
* Ordering -> AtomicOrdering
* reinstate warning now that spam is reduced
* flush pending transition changes when necessary
* ensure epochs aren't re-zoomed on every block
* Clarify function name
Function checks if sealing is currently underway, not to be confused
with checking whether the engine performs internal sealing.
* Error when work called on internal sealing engine
* Error submitting work for internal sealing engine
* Fix inverted bool and style grumbles
* Add can_produce_work_package to TestMinerService
* Error when setting engine signer on PoW chain
* Unit tests for engine signing
Setting engine signer should fail if chain does not seal internally
or client lacks account provider.
* Tweak TestMinerService
* Fix minor style grumbles
* do more validation of imported headers in light client
* generalize informant with traits
* informant implementation for light client
* make comment into TODO
* fix broken test
* disable full checking of headers in light client in sync tests