Example #1
0
def initialize_beacon_database(chain_config: BeaconChainConfig,
                               chaindb: BaseBeaconChainDB,
                               base_db: AtomicDatabaseAPI) -> None:
    try:
        chaindb.get_canonical_head_root()
    except CanonicalHeadNotFound:
        chain_config.initialize_chain(base_db)
Example #2
0
def initialize_beacon_database(chain_config: BeaconChainConfig,
                               chaindb: BaseBeaconChainDB,
                               base_db: BaseAtomicDB,
                               block_class: Type[BaseBeaconBlock]) -> None:
    try:
        chaindb.get_canonical_head(block_class)
    except CanonicalHeadNotFound:
        chain_config.initialize_chain(base_db)
Example #3
0
def get_chain_from_genesis(db, index):
    pubkey = index_to_pubkey[index]
    validator_keymap = {pubkey: keymap[pubkey]}
    genesis_data = BeaconGenesisData(
        genesis_time=genesis_state.genesis_time,
        state=genesis_state,
        validator_keymap=validator_keymap,
    )
    beacon_chain_config = BeaconChainConfig(chain_name='TestTestTest',
                                            genesis_data=genesis_data)
    chain_class = beacon_chain_config.beacon_chain_class
    return chain_class.from_genesis(
        base_db=db,
        genesis_state=genesis_state,
        genesis_block=genesis_block,
        # TODO(ralexstokes) do we need to avoid pulling in this as a global dependency?
        config=XIAO_LONG_BAO_CONFIG,
    )
Example #4
0
def get_chain_from_genesis(db, indices):
    # pubkey -> privkey map
    validator_keymap = {
        index_to_pubkey[index]: keymap[index_to_pubkey[index]]
        for index in indices
    }
    genesis_data = BeaconGenesisData(
        genesis_time=genesis_state.genesis_time,
        state=genesis_state,
        validator_keymap=validator_keymap,
    )
    beacon_chain_config = BeaconChainConfig(chain_name='TestTestTest', genesis_data=genesis_data)
    chain_class = beacon_chain_config.beacon_chain_class
    return chain_class.from_genesis(
        base_db=db,
        genesis_state=genesis_state,
        genesis_block=genesis_block,
        genesis_config=beacon_chain_config.genesis_config,
    )
Example #5
0
def _get_network_config_path_for(profile: str) -> pathlib.Path:
    return BeaconChainConfig.get_genesis_config_file_path(profile)
Example #6
0
def chain_config(genesis_state, eth2_config, chain_class):
    return BeaconChainConfig(genesis_state, eth2_config, {}, beacon_chain_class=chain_class)
Example #7
0
def _get_network_config_path_from() -> pathlib.Path:
    return BeaconChainConfig.get_genesis_config_file_path()
Example #8
0
genesis_time = int(time.time())

genesis_state, genesis_block = create_mock_genesis(
    num_validators=NUM_VALIDATORS,
    config=XIAO_LONG_BAO_CONFIG,
    keymap=keymap,
    genesis_block_class=SerenityBeaconBlock,
    genesis_time=genesis_time,
)
genesis_data = BeaconGenesisData(
    genesis_time=genesis_time,
    genesis_slot=XIAO_LONG_BAO_CONFIG.GENESIS_SLOT,
    keymap=keymap,
    num_validators=NUM_VALIDATORS,
)
beacon_chain_config = BeaconChainConfig(chain_name='TestTestTest',
                                        genesis_data=genesis_data)
chain_class = beacon_chain_config.beacon_chain_class


class FakeProtocol:
    def __init__(self):
        self.inbox = []

    def send_new_block(self, block):
        self.inbox.append(block)


class FakePeer:
    def __init__(self):
        self.sub_proto = FakeProtocol()
Example #9
0
def chain_config(genesis_state, eth2_config):
    return BeaconChainConfig(genesis_state, eth2_config, {})