activity

package
v1.19.2 Latest Latest
Warning

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

Go to latest
Published: Jun 26, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Activity

type Activity interface {
	Name() string
	// Reset is called when a chain container resets due to an invalidated block.
	// Activities should clean up any cached state for that chain at or after the timestamp.
	// The invalidatedBlock is the block that was is the target of the reset
	// This is a no-op for activities that don't maintain chain-specific state.
	Reset(chainID eth.ChainID, timestamp uint64, invalidatedBlock eth.BlockRef)
}

Activity is an open interface to collect pluggable behaviors which satisfy sub-activitiy interfaces.

type RPCActivity

type RPCActivity interface {
	Activity
	RPCNamespace() string
	RPCService() interface{}
}

RPCActivity is an Activity that can be exposed to the RPC server. Any methods exposed through the RPC server are mounted under the activity namespace.

type RunnableActivity

type RunnableActivity interface {
	Activity
	Start(ctx context.Context) error
	Stop(ctx context.Context) error
}

RunnableActivity is an Activity that can be started and stopped independently. The Supernode calls start through a goroutine and calls stop when the application is shutting down.

type VerificationActivity

type VerificationActivity interface {
	Activity

	// Reset resets the activity's state.
	Reset(chainID eth.ChainID, timestamp uint64, invalidatedBlock eth.BlockRef)

	// CurrentL1 returns the current L1 block ID.
	CurrentL1() eth.BlockID

	// VerifiedAtTimestamp returns true if the activity has verified the data at the given timestamp.
	VerifiedAtTimestamp(ts uint64) (bool, error)

	// IsActiveAt reports whether this verification activity is responsible for
	// verifying L2 content at the given timestamp. Activities that are scheduled
	// (e.g. an interop activation in the future) return false for timestamps
	// strictly before their activation point, signaling that callers may treat
	// data at or before that timestamp as safe without consulting this activity.
	IsActiveAt(ts uint64) bool

	// LatestVerifiedL2Block returns the latest verified L2 block.
	// (block, ts, nil) — verified tip at ts.
	// (empty, ts, nil) — no verified entry; ts is the pre-activation cap the
	//   caller should resolve to a canonical L2 block. ts==0 means no cap.
	// (empty, 0, err) — verifier is transiently unavailable.
	LatestVerifiedL2Block(chainID eth.ChainID) (eth.BlockID, uint64, error)

	// VerifiedBlockAtL1 returns the latest verified L2 block whose data was
	// derived from or before the supplied L1 block. Return shape matches
	// LatestVerifiedL2Block: an empty BlockID with non-zero ts is a cap, not a
	// failure.
	VerifiedBlockAtL1(chainID eth.ChainID, l1Block eth.L1BlockRef) (eth.BlockID, uint64, error)
}

VerificationActivity is an Activity that can be used to verify the correctness of the Supernode's Chains

Directories

Path Synopsis
internal
raftwallogdb
Package raftwallogdb implements LogsDB on top of hashicorp/raft-wal.
Package raftwallogdb implements LogsDB on top of hashicorp/raft-wal.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL