low attestations during epoch should instafail in CI; dbg -> warn level in `newPayload` log (#4830)

* low attestations during epoch should instafail in CI; dbg -> warn level on newPayload log

* improve newPayload warning message when no valid EL connected

* reduce potential spam; make log spelling more consistent; use fatal/quit
This commit is contained in:
tersec 2023-04-19 19:42:30 +00:00 committed by GitHub
parent 2246a6ec95
commit d3400ca11b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 5 deletions

View File

@ -1962,12 +1962,15 @@ func init(T: type FullBlockId, blk: Eth1BlockHeader|BlockObject): T =
func isNewLastBlock(m: ELManager, blk: Eth1BlockHeader|BlockObject): bool = func isNewLastBlock(m: ELManager, blk: Eth1BlockHeader|BlockObject): bool =
m.latestEth1Block.isNone or blk.number.uint64 > m.latestEth1BlockNumber m.latestEth1Block.isNone or blk.number.uint64 > m.latestEth1BlockNumber
func hasConnection*(m: ELManager): bool =
m.elConnections.len > 0
func hasProperlyConfiguredConnection*(m: ELManager): bool = func hasProperlyConfiguredConnection*(m: ELManager): bool =
for connection in m.elConnections: for connection in m.elConnections:
if connection.etcStatus == EtcStatus.match: if connection.etcStatus == EtcStatus.match:
return true return true
return false false
proc startExchangeTransitionConfigurationLoop(m: ELManager) {.async.} = proc startExchangeTransitionConfigurationLoop(m: ELManager) {.async.} =
debug "Starting exchange transition configuration loop" debug "Starting exchange transition configuration loop"

View File

@ -218,7 +218,8 @@ from web3/engine_api_types import
PayloadAttributesV1, PayloadAttributesV2, PayloadExecutionStatus, PayloadAttributesV1, PayloadAttributesV2, PayloadExecutionStatus,
PayloadStatusV1 PayloadStatusV1
from ../eth1/eth1_monitor import from ../eth1/eth1_monitor import
ELManager, asEngineExecutionPayload, sendNewPayload, forkchoiceUpdated ELManager, asEngineExecutionPayload, forkchoiceUpdated, hasConnection,
sendNewPayload
proc expectValidForkchoiceUpdated( proc expectValidForkchoiceUpdated(
elManager: ELManager, headBlockPayloadAttributesType: typedesc, elManager: ELManager, headBlockPayloadAttributesType: typedesc,
@ -283,7 +284,12 @@ proc newExecutionPayload*(
Future[Opt[PayloadExecutionStatus]] {.async.} = Future[Opt[PayloadExecutionStatus]] {.async.} =
if not elManager.hasProperlyConfiguredConnection: if not elManager.hasProperlyConfiguredConnection:
debug "No EL connection for newPayload" if elManager.hasConnection:
info "No execution client connected; cannot process block payloads",
executionPayload = shortLog(executionPayload)
else:
debug "No execution client connected; cannot process block payloads",
executionPayload = shortLog(executionPayload)
return Opt.none PayloadExecutionStatus return Opt.none PayloadExecutionStatus
debug "newPayload: inserting block into execution engine", debug "newPayload: inserting block into execution engine",

View File

@ -329,11 +329,12 @@ proc weigh_justification_and_finalization(
current_epoch = current_epoch, current_epoch = current_epoch,
checkpoint = shortLog(state.current_justified_checkpoint) checkpoint = shortLog(state.current_justified_checkpoint)
elif strictVerification in flags: elif strictVerification in flags:
warn "Low attestation participation in previous epoch", fatal "Low attestation participation in previous epoch",
total_active_balance, total_active_balance,
previous_epoch_target_balance, previous_epoch_target_balance,
current_epoch_target_balance, current_epoch_target_balance,
epoch = get_current_epoch(state) epoch = get_current_epoch(state)
quit 1
if current_epoch_target_balance * 3 >= total_active_balance * 2: if current_epoch_target_balance * 3 >= total_active_balance * 2:
state.current_justified_checkpoint = state.current_justified_checkpoint =

View File

@ -236,7 +236,7 @@ proc createAndSendAttestation(node: BeaconNode,
fork, genesis_validators_root, data) fork, genesis_validators_root, data)
if res.isErr(): if res.isErr():
warn "Unable to sign attestation", validator = shortLog(validator), warn "Unable to sign attestation", validator = shortLog(validator),
attestatingData = shortLog(data), error_msg = res.error() attestationData = shortLog(data), error_msg = res.error()
return return
res.get() res.get()
attestation = attestation =