* Improved logging using nimbus-eth2 options
- log file support removal
- auto detection of tty, colour support and related.
* Added EthTime serializer (implemented on eth_types_json_serialization)
* added json chronicles logging support
for some eth, web3 and confutils types
---------
Co-authored-by: Pedro Miranda <pedro.miranda@nimbus.team>
* Correct docu
why:
`T` is mentioned on the metrics table but not explained
* Update state sync ticker
why:
Print last named state for debugging unexpected states.
* Rename `nec_consensus_head`=> `nec_sync_consensus_head`
why:
This variable is syncer local, derived from what would be vaguely be
the consensus head. In fact, at some point it is the consensus head
but often will keep that value while the consensus head advances.
* Handle legit system state when block processing is cancelled
why:
This state context was previously missing. It happens with problematic
blocks (i.e. corrupt or missing.) Rather than trying to remedy the batch
queue, all will be cancelled and the batch queue rebuilt from scratch.
* Update block queue with unexpectedly missing blocks
why:
Concurrently serving `RPC` requests might cause a reset of the `FC`
module data area. This in turn might produce a gap between expected `FC`
module top and the beginning of the already downloaded blocks list.
Currently this led to a deadlock situation because the missing blocks
were never downloaded by the syncer, neither installed into `FC` module
via `RFC`.
* Fix copyright year
This was added to cleanup database from a content type that was
removed.
After ping extensions upgrade all active nodes must have been
updated to remain compatible and thus must have ran this pruning
code.
* Sync scheduler provides an independent `ticker` loop process
why:
Can be used to update `metrics` and for debug logging. While an event
driven solution would stall if there are no events at the moment (e.g.
when the syncer hibernates, the `ticker` will run regardless.
* Use `runTicker()` loop interface alike for updating ticker
why:
Not event driven anymore so it will not stall when the syncer
hibernates.
* Re-implement logging ticker by running it within the `runTicker()` driver
why:
Simplifies implementation
* Re-name metrics variable to better fit into the current naming schemes
* Fix copyright header
Discard the received data on uTP content stream read timeout.
Before the data was still added to the queue and being processed
and should normally fail in validation. However as we know not all
data got read it should not even move to the validation step.
Added however a FIN send after the timeout instead of the delayed
socket clean-up which does not make much sense in that scenario
either. Basically either be nice and still send a FIN or just
destroy the socket immediatly.
* Force metrics update when peers vanish
why:
After that there might be reduced activity so that the next metrics
update is delayed.
* Update comments (code cosmetics)
* Tidy up nano-sleep wait directives to an `update.nim`-function
* Fix copyright year