Potuz 1f0c1f7150 Allow nodes with and without payload in forkchoice (#14288)
* Allow nodes with and without payload in forkchoice

    This PR takes care of adding nodes to forkchoice that may or may not
    have a corresponding payload. The rationale is as follows

    - The node structure is kept almost the same as today.
    - A zero payload hash is considered as if the node was empty (except for
      the tree root)
    - When inserting a node we check what the right parent node would be
      depending on whether the parent had a payload or not.
    - For pre-epbs forks all nodes are full, no logic changes except a new
      steps to gather the parent hash that is needed for block insertion.

    This PR had to change some core consensus types and interfaces.
    - It removed the ROBlockEPBS interface and added the corresponding ePBS
      fields to the ReadOnlyBeaconBlockBody
    - It moved the setters and getters to epbs dedicated files.

    It also added a checker for `IsParentFull` on forkchoice that simply
    checks for the parent hash of the parent node.

* review
2024-08-14 09:57:27 -03:00
2024-07-02 04:03:24 +00:00
2021-11-12 15:55:45 +00:00
2024-04-01 20:04:40 +00:00
2024-02-15 05:46:47 +00:00
2024-02-15 05:46:47 +00:00
2024-04-02 16:30:05 +00:00
2024-05-31 16:24:17 +00:00
2024-08-14 09:57:27 -03:00
2024-08-02 21:36:09 +00:00
2024-07-31 11:06:15 +00:00
2024-08-14 09:56:55 -03:00
2024-02-15 05:46:47 +00:00
2019-07-22 14:10:17 -05:00
2024-07-08 06:29:10 +00:00
2022-11-18 19:12:19 +00:00
2024-07-08 06:29:10 +00:00
2024-07-08 06:29:10 +00:00
2024-02-15 15:23:31 +00:00
2018-07-20 10:23:48 -05:00
2024-01-10 15:34:11 +00:00
2023-10-19 12:23:11 +00:00
2024-07-02 04:03:24 +00:00

Prysm: An Ethereum Consensus Implementation Written in Go

Build status Go Report Card Consensus_Spec_Version 1.4.0 Execution_API_Version 1.0.0-beta.2 Discord GitPOAP Badge

This is the core repository for Prysm, a Golang implementation of the Ethereum Consensus specification, developed by Offchain Labs. See the Changelog for details of the latest releases and upcoming breaking changes.

Getting Started

A detailed set of installation and usage instructions as well as breakdowns of each individual component are available in the official documentation portal. If you still have questions, feel free to stop by our Discord.

Staking on Mainnet

To participate in staking, you can join the official eth2 launchpad. The launchpad is the only recommended way to become a validator on mainnet. You can explore validator rewards/penalties via Bitfly's block explorer: beaconcha.in, and follow the latest blocks added to the chain on beaconscan.

Contributing

Branches

Prysm maintains two permanent branches:

  • master: This points to the latest stable release. It is ideal for most users.
  • develop: This is used for development, it contains the latest PRs. Developers should base their PRs on this branch.

Guide

Want to get involved? Check out our Contribution Guide to learn more!

License

GNU General Public License v3.0

Terms of Use

Description
No description provided
Readme 904 MiB
Languages
Go 95.3%
Starlark 4.1%
Shell 0.4%
Smarty 0.1%