core

package
v0.1.7 Latest Latest
Warning

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

Go to latest
Published: Feb 2, 2024 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DefaultChunkSize represents the default chunk size in bytes.
	DefaultChunkSize = 256

	// DefaultSegmentMaxChunks represents the default maximum number of chunks within a segment.
	DefaultSegmentMaxChunks = 1024

	// DefaultSegmentSize represents the default segment size in bytes.
	DefaultSegmentSize = DefaultChunkSize * DefaultSegmentMaxChunks
)

Variables

View Source
var (
	EmptyChunk     = make([]byte, DefaultChunkSize)
	EmptyChunkHash = crypto.Keccak256Hash(EmptyChunk)
)
View Source
var (
	// ErrFileRequired is returned when manipulate on a folder.
	ErrFileRequired = errors.New("file required")

	// ErrFileEmpty is returned when empty file opened.
	ErrFileEmpty = errors.New("file is empty")
)

Functions

func ComputePaddedSize

func ComputePaddedSize(chunks uint64) (uint64, uint64)

func Exists

func Exists(name string) (bool, error)

func IteratorPaddedSize

func IteratorPaddedSize(dataSize int64, flowPadding bool) uint64

func MerkleTree

func MerkleTree(data IterableData) (*merkle.Tree, error)

func NumSegmentsPadded added in v0.1.5

func NumSegmentsPadded(data IterableData) int

func NumSplits

func NumSplits(total int64, unit int) uint64

func ReadAt added in v0.1.5

func ReadAt(data IterableData, readSize int, offset int64, paddedSize uint64) ([]byte, error)

func SegmentRoot

func SegmentRoot(chunks []byte, emptyChunksPadded ...uint64) common.Hash

Types

type DataInMemory

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

func NewDataInMemory

func NewDataInMemory(data []byte) (*DataInMemory, error)

func (*DataInMemory) Iterate

func (data *DataInMemory) Iterate(offset int64, batch int64, flowPadding bool) Iterator

func (*DataInMemory) NumChunks

func (data *DataInMemory) NumChunks() uint64

func (*DataInMemory) NumSegments

func (data *DataInMemory) NumSegments() uint64

func (*DataInMemory) PaddedSize added in v0.1.5

func (data *DataInMemory) PaddedSize() uint64

func (*DataInMemory) Read added in v0.1.5

func (data *DataInMemory) Read(buf []byte, offset int64) (int, error)

func (*DataInMemory) Size

func (data *DataInMemory) Size() int64

type File

type File struct {
	os.FileInfo
	// contains filtered or unexported fields
}

func Open

func Open(name string) (*File, error)

func (*File) Close

func (file *File) Close() error

func (*File) Iterate

func (file *File) Iterate(offset int64, batch int64, flowPadding bool) Iterator

func (*File) NumChunks

func (file *File) NumChunks() uint64

func (*File) NumSegments

func (file *File) NumSegments() uint64

func (*File) PaddedSize added in v0.1.5

func (file *File) PaddedSize() uint64

func (*File) Read added in v0.1.5

func (file *File) Read(buf []byte, offset int64) (int, error)

type FileIterator

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

func (*FileIterator) Current

func (it *FileIterator) Current() []byte

func (*FileIterator) Next

func (it *FileIterator) Next() (bool, error)

type Flow

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

func NewFlow

func NewFlow(data IterableData, tags []byte) *Flow

func (*Flow) CreateSubmission

func (flow *Flow) CreateSubmission() (*contract.Submission, error)

type IterableData

type IterableData interface {
	NumChunks() uint64
	NumSegments() uint64
	Size() int64
	PaddedSize() uint64
	Iterate(offset int64, batch int64, flowPadding bool) Iterator
	Read(buf []byte, offset int64) (int, error)
}

type Iterator

type Iterator interface {
	Next() (bool, error)
	Current() []byte
}

type MemoryDataIterator

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

func (*MemoryDataIterator) Current

func (it *MemoryDataIterator) Current() []byte

func (*MemoryDataIterator) Next

func (it *MemoryDataIterator) Next() (bool, error)

type TreeBuilderInitializer added in v0.1.5

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

func (*TreeBuilderInitializer) ParallelCollect added in v0.1.5

func (t *TreeBuilderInitializer) ParallelCollect(result *parallel.Result) error

ParallelCollect implements parallel.Interface.

func (*TreeBuilderInitializer) ParallelDo added in v0.1.5

func (t *TreeBuilderInitializer) ParallelDo(routine int, task int) (interface{}, error)

ParallelDo implements parallel.Interface.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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