Skip to content

Validator Endpoints

Currently mostly unimplemented

beacon_client.validator_endpoints.ValidatorEndpoints

Source code in beacon_client/validator_endpoints.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
class ValidatorEndpoints:
    def get_block_proposers_duties(self, epoch: int) -> dict:
        """
        Request beacon node to provide all validators that are scheduled to propose a block in the given epoch.
        Duties should only need to be checked once per epoch, however a chain reorganization could occur that results in a change of duties.
        For full safety, you should monitor head events and confirm the dependent root in this response matches:

        event.current_duty_dependent_root when compute_epoch_at_slot(event.slot) == epoch
        event.block otherwise
        The dependent_root value is get_block_root_at_slot(state, compute_start_slot_at_epoch(epoch) - 1) or the genesis block root in the case of underflow.
        Args:
            epoch: provide all proposers for the given epoch value
        """
        return self._query_url(f"/eth/v1/validator/duties/proposer/{epoch}")

get_block_proposers_duties(epoch)

Request beacon node to provide all validators that are scheduled to propose a block in the given epoch. Duties should only need to be checked once per epoch, however a chain reorganization could occur that results in a change of duties. For full safety, you should monitor head events and confirm the dependent root in this response matches:

event.current_duty_dependent_root when compute_epoch_at_slot(event.slot) == epoch event.block otherwise The dependent_root value is get_block_root_at_slot(state, compute_start_slot_at_epoch(epoch) - 1) or the genesis block root in the case of underflow.

Parameters:

Name Type Description Default
epoch int

provide all proposers for the given epoch value

required
Source code in beacon_client/validator_endpoints.py
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
def get_block_proposers_duties(self, epoch: int) -> dict:
    """
    Request beacon node to provide all validators that are scheduled to propose a block in the given epoch.
    Duties should only need to be checked once per epoch, however a chain reorganization could occur that results in a change of duties.
    For full safety, you should monitor head events and confirm the dependent root in this response matches:

    event.current_duty_dependent_root when compute_epoch_at_slot(event.slot) == epoch
    event.block otherwise
    The dependent_root value is get_block_root_at_slot(state, compute_start_slot_at_epoch(epoch) - 1) or the genesis block root in the case of underflow.
    Args:
        epoch: provide all proposers for the given epoch value
    """
    return self._query_url(f"/eth/v1/validator/duties/proposer/{epoch}")