blockledger

package
v0.0.0-...-579b097 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateNextBlock

func CreateNextBlock(rl Reader, messages []*cb.Envelope) *cb.Block

CreateNextBlock provides a utility way to construct the next block from contents and metadata for a given ledger XXX This will need to be modified to accept marshaled envelopes

to accommodate non-deterministic marshaling

func GetBlock

func GetBlock(rl Reader, index uint64) *cb.Block

GetBlock is a utility method for retrieving a single block

func GetBlockByNumber

func GetBlockByNumber(rl Reader, blockNum uint64) (*cb.Block, error)

Types

type Factory

type Factory interface {
	// GetOrCreate gets an existing ledger (if it exists)
	// or creates it if it does not
	GetOrCreate(channelID string) (ReadWriter, error)

	// Remove removes an existing ledger
	Remove(channelID string) error

	// ChannelIDs returns the channel IDs the Factory is aware of
	ChannelIDs() []string

	// Close releases all resources acquired by the factory
	Close()
}

Factory retrieves or creates new ledgers by channelID

type Iterator

type Iterator interface {
	// Next blocks until there is a new block available, or returns an error if
	// the next block is no longer retrievable
	Next() (*cb.Block, cb.Status)
	// Close releases resources acquired by the Iterator
	Close()
}

Iterator is useful for a chain Reader to stream blocks as they are created

type NotFoundErrorIterator

type NotFoundErrorIterator struct{}

NotFoundErrorIterator simply always returns an error of cb.Status_NOT_FOUND, and is generally useful for implementations of the Reader interface

func (*NotFoundErrorIterator) Close

func (nfei *NotFoundErrorIterator) Close()

Close does nothing

func (*NotFoundErrorIterator) Next

func (nfei *NotFoundErrorIterator) Next() (*cb.Block, cb.Status)

Next returns nil, cb.Status_NOT_FOUND

func (*NotFoundErrorIterator) ReadyChan

func (nfei *NotFoundErrorIterator) ReadyChan() <-chan struct{}

ReadyChan returns a closed channel

type ReadWriter

type ReadWriter interface {
	Reader
	Writer
}

ReadWriter encapsulates the read/write functions of the ledger

type Reader

type Reader interface {
	// Iterator returns an Iterator, as specified by an ab.SeekInfo message, and
	// its starting block number
	Iterator(startType *ab.SeekPosition) (Iterator, uint64)
	// Height returns the number of blocks on the ledger
	Height() uint64
	// retrieve blockByNumber
	RetrieveBlockByNumber(blockNumber uint64) (*cb.Block, error)
}

Reader allows the caller to inspect the ledger

type Writer

type Writer interface {
	// Append a new block to the ledger
	Append(block *cb.Block) error
}

Writer allows the caller to modify the ledger

Directories

Path Synopsis
mock
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

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