kvstore

package
v1.7.4 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2024 License: MIT, MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

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 DiskKV

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

DiskKV is a disk-backed key-value store, every key-value pair is a hex-encoded .txt file, with the value as content. DiskKV is safe for concurrent use with a single DiskKV instance. DiskKV is safe for concurrent use between different DiskKV instances of the same disk directory as long as the file system supports atomic renames.

func NewDiskKV

func NewDiskKV(path string) *DiskKV

NewDiskKV creates a DiskKV that puts/gets pre-images as files in the given directory path. The path must exist, or subsequent Put/Get calls will error when it does not.

func (*DiskKV) Get

func (d *DiskKV) Get(k common.Hash) ([]byte, error)

func (*DiskKV) Put

func (d *DiskKV) Put(k common.Hash, v []byte) error

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)
}

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

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) 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