Skip to content

Commit

Permalink
Refactor to print logs more efficiently (ChainSafe#4785)
Browse files Browse the repository at this point in the history
  • Loading branch information
maschad committed Feb 22, 2023
1 parent 1014495 commit f1f0e36
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 33 deletions.
57 changes: 26 additions & 31 deletions packages/validator/src/services/indices.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import {ValidatorIndex} from "@lodestar/types";
import {Logger} from "@lodestar/utils";
import {toHexString} from "@chainsafe/ssz";
import {Api, ApiError} from "@lodestar/api";
import {ValidatorResponse, ValidatorStatus} from "@lodestar/api/lib/beacon/routes/beacon/state.js";
import {Api, ApiError, ValidatorResponse, ValidatorStatus} from "@lodestar/api";
import {batchItems} from "../util/index.js";
import {Metrics} from "../metrics.js";

Expand Down Expand Up @@ -124,40 +123,36 @@ export class IndicesService {
}

function logValidatorStatuses(allValidators: Map<ValidatorStatus, ValidatorResponse[]>, logger: Logger): void {
allValidators.get("active")?.forEach((validatorState: ValidatorResponse) => {
logger.info("Validator activated", {
pubkey: toHexString(validatorState.validator.pubkey),
index: validatorState.index,
});
});

[...(allValidators.get("pending_initialized") ?? []), ...(allValidators.get("pending_queued") ?? [])]?.forEach(
(validatorState: ValidatorResponse) => {
logger.info("Validator pending", {
pubkey: toHexString(validatorState.validator.pubkey),
index: validatorState.index,
});
}
);

allValidators.get("withdrawal_done")?.forEach((validatorState: ValidatorResponse) => {
logger.info("Validator withdrawn", {
const loggedValidatorStates: {[key: string]: ValidatorStatus[]} = {
"Validator activated": ["active"],
"Validator pending": ["pending_initialized", "pending_queued"],
"Validator withdrawn": ["withdrawal_done"],
"Validator exited": ["exit_slashed", "exit_unslashed"],
};

const logFormatter = (message: string, validatorState: ValidatorResponse): void => {
logger.info(message, {
pubkey: toHexString(validatorState.validator.pubkey),
index: validatorState.index,
});
};
Object.keys(loggedValidatorStates).map((key) => {
getValidatorStatesByStatuses(loggedValidatorStates[key], allValidators).forEach(
(validatorState: ValidatorResponse) => {
logFormatter(key, validatorState);
}
);
});

[...(allValidators.get("exited_slashed") ?? []), ...(allValidators.get("exited_unslashed") ?? [])]?.forEach(
(validatorState: ValidatorResponse) => {
logger.info("Validator Exited", {
pubkey: toHexString(validatorState.validator.pubkey),
index: validatorState.index,
});
}
);

logger.info("Initialized Validators: ", {
logger.info("Initialized validators", {
total: allValidators.size,
available: allValidators.get("active")?.length,
active: allValidators.get("active")?.length,
});
}

function getValidatorStatesByStatuses(
statuses: ValidatorStatus[],
allValidators: Map<ValidatorStatus, ValidatorResponse[]>
): ValidatorResponse[] {
return statuses.filter((status) => allValidators.has(status)).map((status) => allValidators.get(status));
}
4 changes: 2 additions & 2 deletions packages/validator/src/services/prepareBeaconProposer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {Api, ApiError} from "@lodestar/api";
import {SLOTS_PER_EPOCH} from "@lodestar/params";
import {BeaconConfig} from "@lodestar/config";

import {ProposerPreparationData} from "@lodestar/api/lib/beacon/routes/validator.js";
import {ProposerPreparationData} from "@lodestar/api";
import {IClock, batchItems, LoggerVc} from "../util/index.js";
import {Metrics} from "../metrics.js";
import {ValidatorStore} from "./validatorStore.js";
Expand Down Expand Up @@ -49,7 +49,7 @@ export function pollPrepareBeaconProposer(
feeRecipient,
});

logger.info("Validator exists in Beacon Chain", {validatorIndex: index, feeRecipient, pubKey});
logger.info("Validator exists in beacon chain", {validatorIndex: index, feeRecipient, pubKey});
});
ApiError.assert(await api.validator.prepareBeaconProposer(proposers));
} catch (e) {
Expand Down

0 comments on commit f1f0e36

Please sign in to comment.