kvstore

package
v1.10.0 Latest Latest
Warning

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

Go to latest
Published: Nov 19, 2024 License: MIT, MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrFormatUnavailable = errors.New("format unavailable")
	ErrUnsupportedFormat = errors.New("unsupported format")
)
View Source
var ErrNotFound = errors.New("not found")

ErrNotFound is returned when a pre-image cannot be found in the KV store.

Functions

This section is empty.

Types

type KV

type KV interface {
	// Put puts the pre-image value v in the key-value store with key k.
	// KV store implementations may return additional errors specific to the KV storage.
	Put(k common.Hash, v []byte) error

	// Get retrieves the pre-image with key k from the key-value store.
	// It returns ErrNotFound when the pre-image cannot be found.
	// KV store implementations may return additional errors specific to the KV storage.
	Get(k common.Hash) ([]byte, error)

	// Closes the KV store.
	Close() error
}

KV is a Key-Value store interface for pre-image data.

func NewDiskKV

func NewDiskKV(logger log.Logger, dir string, defaultFormat types.DataFormat) (KV, error)

NewDiskKV creates a new KV implementation. If the specified directly contains an existing KV store that has the format recorded, the recorded format is used ensuring compatibility with the existing data. If the directory does not contain existing data or doesn't have the format recorded, defaultFormat is used which may result in the existing data being unused. If the existing data records a format that is not supported, an error is returned. The format is automatically recorded if it wasn't previously stored.

type LocalPreimageSource added in v1.0.5

type LocalPreimageSource struct {
	// contains filtered or unexported fields
}

func NewLocalPreimageSource added in v1.0.5

func NewLocalPreimageSource(config *config.Config) *LocalPreimageSource

func (*LocalPreimageSource) Get added in v1.0.5

func (s *LocalPreimageSource) Get(key common.Hash) ([]byte, error)

type MemKV

type MemKV struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

MemKV implements the KV store interface in memory, backed by a regular Go map. This should only be used in testing, as large programs may require more pre-image data than available memory. MemKV is safe for concurrent use.

func NewMemKV

func NewMemKV() *MemKV

func (*MemKV) Close added in v1.9.2

func (m *MemKV) Close() error

func (*MemKV) Get

func (m *MemKV) Get(k common.Hash) ([]byte, error)

func (*MemKV) Put

func (m *MemKV) Put(k common.Hash, v []byte) error

type PreimageSource added in v1.0.5

type PreimageSource func(key common.Hash) ([]byte, error)

type PreimageSourceSplitter added in v1.0.5

type PreimageSourceSplitter struct {
	// contains filtered or unexported fields
}

func NewPreimageSourceSplitter added in v1.0.5

func NewPreimageSourceSplitter(local PreimageSource, global PreimageSource) *PreimageSourceSplitter

func (*PreimageSourceSplitter) Get added in v1.0.5

func (s *PreimageSourceSplitter) Get(key [32]byte) ([]byte, error)

Jump to

Keyboard shortcuts

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