mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-22 20:56:42 +00:00
add package overview and examples
This commit is contained in:
parent
2e5cd21edf
commit
0116f1ebdc
1 changed files with 58 additions and 0 deletions
58
beacon/README.md
Normal file
58
beacon/README.md
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
# Beacon helpers in go-ethereum
|
||||
|
||||
This package contains helpers that are shared between the execution client and the consensus (beacon) layer. It is primarily used by:
|
||||
|
||||
- the `consensus/beacon` engine
|
||||
- light client integrations
|
||||
- external tooling that wants to reuse the same types and Merkle helpers that Geth uses internally
|
||||
|
||||
The code in this directory is considered low-level infrastructure. It is not a full beacon node implementation, but a small set of reusable pieces.
|
||||
|
||||
## Packages
|
||||
|
||||
- `beacon/types` – light client friendly types for headers, updates and sync committees.
|
||||
- `beacon/merkle` – helpers for verifying generalized Merkle proofs.
|
||||
- `beacon/params` – chain configuration and fork metadata used by the beacon helpers.
|
||||
|
||||
You can find the latest Go reference docs here:
|
||||
|
||||
- https://pkg.go.dev/github.com/ethereum/go-ethereum/beacon/types
|
||||
- https://pkg.go.dev/github.com/ethereum/go-ethereum/beacon/merkle
|
||||
- https://pkg.go.dev/github.com/ethereum/go-ethereum/beacon/params
|
||||
|
||||
## Example: verifying a Merkle proof
|
||||
|
||||
The `beacon/merkle` package exposes a small API for verifying Merkle branches in a binary tree:
|
||||
|
||||
```go
|
||||
package main
|
||||
```
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/ethereum/go-ethereum/beacon/merkle"
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// Root of the Merkle tree we are verifying against
|
||||
root := common.HexToHash("0x0000000000000000000000000000000000000000000000000000000000000000")
|
||||
|
||||
// Index of the leaf in the generalized index notation
|
||||
var index uint64 = 0
|
||||
|
||||
// Branch is the proof (siblings along the path to the root).
|
||||
// In a real application this is provided by a beacon API.
|
||||
var branch merkle.Values
|
||||
|
||||
// Leaf value we expect at the given position
|
||||
var value merkle.Value
|
||||
copy(value[:], []byte("example value"))
|
||||
|
||||
if err := merkle.VerifyProof(root, index, branch, value); err != nil {
|
||||
log.Printf("proof verification failed: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
log.Println("proof verified successfully")
|
||||
}
|
||||
Loading…
Reference in a new issue