Last week:
GetLightClientBootstrap
in tekucurrent_sync_committee
and next_sync_committee
, will be provided alongside a merkle proofstate.latest_block_header
in #light-clients
LightClientBootstrap
, as the state_root
given should be hash_tree_root(state)
and not state.latest_block_header.state_root
as per the specThis week
GetLightClientBootstrap
GetLightClientUpdatesByRange
This is the final dev update for robzajac in EPF cohort three. Project summary The light client protocol is a way for nodes in low-computation environments to sync to the latest block header without needing to trust a third party. It is built on the introduction of the sync committee in Altair, a randomly selected set of 512 validators (rotating every 256 epochs) which signs the headers of newly attested blocks. The goal of this project was to implement support for the light client APIs in the consensus client teku. These APIs are the method by which light clients poll the data required to participate in their sync protocol. A secondary goal was to make progress in the research area of node RPC incentivization or otherwise design a way to incentivize the serving of light client data. More information on light clients can be found in the original project proposal. Status report
Feb 23, 2023This is a project proposal for EPF Cohort Three by robzajac. The goal of this project is to enable greater decentralization and trustless access to the Ethereum consensus layer by implementing the light client protocol in teku. This will increase the availability of light client data in the CL and make it easier for light clients to sync to the latest block header without needing to trust a third party. Motivation The light client protocol is a way for clients in minimal computational environments to sync to the latest block header without needing to trust the data provider (e.g. a node hosted on Infura). For more on the protocol and its motivation, see background reading. This protocol describes both the light client itself, and a "light client server" which provides the data needed for the light client to execute its sync protocol. While there have been several light client projects in development (e.g. recently announced RPC-proxy light clients Kevlar and Helios), there are not as many implementations of the light client server. Currently, the majority providers for light client data in beacon nodes are the consensus clients Nimbus and Lodestar. Serving this data is done altruistically, as light clients do not contribute any computation to the network. In order to contribute to greater availability of this data, as well as expand client diversity, more consensus clients should implement the light client protocol.
Feb 23, 2023As described in the latest dev update, persisting light-client data on disk and serving requests with a table lookup will be the best way to provide light client support in teku. It has the advantages of: Providing the best light client update per is_better_update, given that light client updates can be compared and saved per sync-committee period Providing the highest rate of data availability, as all nodes that see a block will be able to serve light client data corresponding to the block (previously an archive node would be required for historic states) Code maintainability, as the logic of updating when we sync and serving from the table is much simpler than computing the slot required for light client updates and retrieving the relevant beacon states on-the-fly This doc will briefly describe the interface and details of this table in teku. Light client data schemas Add two columns with type:
Feb 17, 2023This week I focused mainly on two things: Worked on getting my mainnet besu + teku pair up and running on a node provided by Mario. Initially had some issues with the configurations for the clients, but now the EL & CL syncs are both complete with teku up-to-date in archive mode.Archive mode in teku is necessary for accessing historic states, which are required to derive light client data. We can test the light client API already implemented (light client bootstrap) on this mainnet client pair. Worked on the light client updates by range API and the light client data availability problem. Light client data, at least for LightClientUpdate, is derived from beacon state. The light client API specifies that servers should provide light client data for a historic period of ~5 months. Most nodes, at least in teku, run in prune mode, meaning that they do not store any state beyond the latest finalized. Archive nodes have a significant storage requirement that most nodes will not provide (especially archive nodes running with >= 5 months of historic data, not just e.g. from the latest checkpoint).
Feb 12, 2023or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up