nimbus-eth2/beacon_chain/spec
Jacek Sieka 805e85e1ff
time: spring cleaning (#3262)
Time in the beacon chain is expressed relative to the genesis time -
this PR creates a `beacon_time` module that collects helpers and
utilities for dealing the time units - the new module does not deal with
actual wall time (that's remains in `beacon_clock`).

Collecting the time related stuff in one place makes it easier to find,
avoids some circular imports and allows more easily identifying the code
actually needs wall time to operate.

* move genesis-time-related functionality into `spec/beacon_time`
* avoid using `chronos.Duration` for time differences - it does not
support negative values (such as when something happens earlier than it
should)
* saturate conversions between `FAR_FUTURE_XXX`, so as to avoid
overflows
* fix delay reporting in validator client so it uses the expected
deadline of the slot, not "closest wall slot"
* simplify looping over the slots of an epoch
* `compute_start_slot_at_epoch` -> `start_slot`
* `compute_epoch_at_slot` -> `epoch`

A follow-up PR will (likely) introduce saturating arithmetic for the
time units - this is merely code moves, renames and fixing of small
bugs.
2022-01-11 11:01:54 +01:00
..
datatypes time: spring cleaning (#3262) 2022-01-11 11:01:54 +01:00
eth2_apis Harden CommitteeIndex, SubnetId, SyncSubcommitteeIndex (#3259) 2022-01-09 01:28:49 +02:00
presets rename upgrade_to_{merge,bellatrix}; detect unchanging spec YAMLs (#3265) 2022-01-10 09:39:43 +00:00
beacon_time.nim time: spring cleaning (#3262) 2022-01-11 11:01:54 +01:00
beaconstate.nim time: spring cleaning (#3262) 2022-01-11 11:01:54 +01:00
crypto.nim REST cleanups (#3255) 2022-01-08 22:06:34 +02:00
digest.nim update from phase0/altair v1.1.6 URLs to v1.1.8 spec URLs (#3238) 2022-01-04 03:57:15 +00:00
english_word_list.txt Bump testutils 2020-06-01 16:58:28 +03:00
eth2_merkleization.nim Use nim-ssz-serialization module and rm local ssz code 2021-11-10 13:37:24 +02:00
eth2_ssz_serialization.nim initial migration from spec/datatypes/{merge => bellatrix} (#3249) 2022-01-06 12:25:35 +01:00
forks.nim time: spring cleaning (#3262) 2022-01-11 11:01:54 +01:00
helpers.nim time: spring cleaning (#3262) 2022-01-11 11:01:54 +01:00
keystore.nim Implementation of the Keymanager API (BETA) 2022-01-04 18:51:45 +02:00
light_client_sync.nim time: spring cleaning (#3262) 2022-01-11 11:01:54 +01:00
network.nim time: spring cleaning (#3262) 2022-01-11 11:01:54 +01:00
presets.nim REST cleanups (#3255) 2022-01-08 22:06:34 +02:00
signatures.nim time: spring cleaning (#3262) 2022-01-11 11:01:54 +01:00
signatures_batch.nim time: spring cleaning (#3262) 2022-01-11 11:01:54 +01:00
ssz_codec.nim REST JSON support improvements (#3232) 2022-01-06 08:38:40 +01:00
state_transition.nim time: spring cleaning (#3262) 2022-01-11 11:01:54 +01:00
state_transition_block.nim initial migration from spec/datatypes/{merge => bellatrix} (#3249) 2022-01-06 12:25:35 +01:00
state_transition_epoch.nim time: spring cleaning (#3262) 2022-01-11 11:01:54 +01:00
validator.nim time: spring cleaning (#3262) 2022-01-11 11:01:54 +01:00
weak_subjectivity.nim time: spring cleaning (#3262) 2022-01-11 11:01:54 +01:00