Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Communicator ¶
type Communicator interface { Broadcast(msg *pb.OpenchainMessage, peerType pb.PeerEndpoint_Type) error Unicast(msg *pb.OpenchainMessage, receiverHandle *pb.PeerID) error }
Communicator is used to send messages to other validators
type Consenter ¶
type Consenter interface {
RecvMsg(msg *pb.OpenchainMessage, senderHandle *pb.PeerID) error
}
Consenter is used to receive messages from the network Every consensus plugin needs to implement this interface
type Executor ¶
type Executor interface { BeginTxBatch(id interface{}) error ExecTxs(id interface{}, txs []*pb.Transaction) ([]byte, error) CommitTxBatch(id interface{}, metadata []byte) (*pb.Block, error) RollbackTxBatch(id interface{}) error PreviewCommitTxBatch(id interface{}, metadata []byte) (*pb.Block, error) }
Executor is used to invoke transactions, potentially modifying the backing ledger
type Inquirer ¶
type Inquirer interface { GetNetworkInfo() (self *pb.PeerEndpoint, network []*pb.PeerEndpoint, err error) GetNetworkHandles() (self *pb.PeerID, network []*pb.PeerID, err error) }
Inquirer is used to retrieve info about the validating network
type Ledger ¶
type Ledger interface { ReadOnlyLedger UtilLedger WritableLedger }
Ledger is an unrestricted union of reads, utilities, and updates
type LedgerStack ¶
type LedgerStack interface { Executor Ledger RemoteLedgers }
LedgerStack serves as interface to the blockchain-oriented activities, such as executing transactions, querying, and updating the ledger
type ReadOnlyLedger ¶
type ReadOnlyLedger interface { GetBlock(id uint64) (block *pb.Block, err error) GetCurrentStateHash() (stateHash []byte, err error) GetBlockchainSize() (uint64, error) }
ReadOnlyLedger is used for interrogating the blockchain
type RemoteLedgers ¶
type RemoteLedgers interface { GetRemoteBlocks(replicaID *pb.PeerID, start, finish uint64) (<-chan *pb.SyncBlocks, error) GetRemoteStateSnapshot(replicaID *pb.PeerID) (<-chan *pb.SyncStateSnapshot, error) GetRemoteStateDeltas(replicaID *pb.PeerID, start, finish uint64) (<-chan *pb.SyncStateDeltas, error) }
RemoteLedgers is used to interrogate the blockchain of other replicas
type SecurityUtils ¶
type SecurityUtils interface { Sign(msg []byte) ([]byte, error) Verify(peerID *pb.PeerID, signature []byte, message []byte) error }
SecurityUtils is used to access the sign/verify methods from the crypto package
type Stack ¶
type Stack interface { Inquirer Communicator SecurityUtils LedgerStack }
Stack is the set of stack-facing methods available to the consensus plugin
type UtilLedger ¶
type UtilLedger interface { HashBlock(block *pb.Block) ([]byte, error) VerifyBlockchain(start, finish uint64) (uint64, error) }
UtilLedger contains additional useful utility functions for interrogating the blockchain
type WritableLedger ¶
type WritableLedger interface { PutBlock(blockNumber uint64, block *pb.Block) error ApplyStateDelta(id interface{}, delta *statemgmt.StateDelta) error CommitStateDelta(id interface{}) error RollbackStateDelta(id interface{}) error EmptyState() error }
WritableLedger is useful for updating the blockchain during state transfer
Directories ¶
Path | Synopsis |
---|---|
Package obcpbft is a generated protocol buffer package.
|
Package obcpbft is a generated protocol buffer package. |