Version: v21.1.0+incompatible Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Feb 1, 2021 License: GPL-3.0 Imports: 11 Imported by: 0



Package forkid implements EIP-2124 (



This section is empty.


View Source
var (
	// ErrRemoteStale is returned by the validator if a remote fork checksum is a
	// subset of our already applied forks, but the announced next fork block is
	// not on our already passed chain.
	ErrRemoteStale = errors.New("remote needs update")

	// ErrLocalIncompatibleOrStale is returned by the validator if a remote fork
	// checksum does not match any local checksum variation, signalling that the
	// two chains have diverged in the past at some point (possibly at genesis).
	ErrLocalIncompatibleOrStale = errors.New("local incompatible or needs update")


This section is empty.


type Filter

type Filter func(id ID) error

Filter is a fork id filter to validate a remotely advertised ID.

func NewFilter

func NewFilter(chain *core.BlockChain) Filter

NewFilter creates a filter that returns if a fork ID should be rejected or not based on the local chain's status.

func NewStaticFilter

func NewStaticFilter(config *params.ChainConfig, genesis common.Hash) Filter

NewStaticFilter creates a filter at block zero.

type ID

type ID struct {
	Hash [4]byte // CRC32 checksum of the genesis block and passed fork block numbers
	Next uint64  // Block number of the next upcoming fork, or 0 if no forks are known

ID is a fork identifier as defined by EIP-2124.

func NewID

func NewID(chain *core.BlockChain) ID

NewID calculates the Ethereum fork ID from the chain config and head.

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL