Documentation ¶
Index ¶
- type CollElgInfo
- func (*CollElgInfo) Descriptor() ([]byte, []int)
- func (m *CollElgInfo) GetNsCollMap() map[string]*CollNames
- func (*CollElgInfo) ProtoMessage()
- func (m *CollElgInfo) Reset()
- func (m *CollElgInfo) String() string
- func (m *CollElgInfo) XXX_DiscardUnknown()
- func (m *CollElgInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (dst *CollElgInfo) XXX_Merge(src proto.Message)
- func (m *CollElgInfo) XXX_Size() int
- func (m *CollElgInfo) XXX_Unmarshal(b []byte) error
- type CollNames
- func (*CollNames) Descriptor() ([]byte, []int)
- func (m *CollNames) GetEntries() []string
- func (*CollNames) ProtoMessage()
- func (m *CollNames) Reset()
- func (m *CollNames) String() string
- func (m *CollNames) XXX_DiscardUnknown()
- func (m *CollNames) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (dst *CollNames) XXX_Merge(src proto.Message)
- func (m *CollNames) XXX_Size() int
- func (m *CollNames) XXX_Unmarshal(b []byte) error
- type Collections
- func (*Collections) Descriptor() ([]byte, []int)
- func (m *Collections) GetMap() map[string]*TxNums
- func (m *Collections) GetMissingDataMap() map[string]bool
- func (*Collections) ProtoMessage()
- func (m *Collections) Reset()
- func (m *Collections) String() string
- func (m *Collections) XXX_DiscardUnknown()
- func (m *Collections) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (dst *Collections) XXX_Merge(src proto.Message)
- func (m *Collections) XXX_Size() int
- func (m *Collections) XXX_Unmarshal(b []byte) error
- type ErrIllegalArgs
- type ErrIllegalCall
- type ErrOutOfRange
- type ExpiryData
- func (*ExpiryData) Descriptor() ([]byte, []int)
- func (m *ExpiryData) GetMap() map[string]*Collections
- func (*ExpiryData) ProtoMessage()
- func (m *ExpiryData) Reset()
- func (m *ExpiryData) String() string
- func (m *ExpiryData) XXX_DiscardUnknown()
- func (m *ExpiryData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (dst *ExpiryData) XXX_Merge(src proto.Message)
- func (m *ExpiryData) XXX_Size() int
- func (m *ExpiryData) XXX_Unmarshal(b []byte) error
- type Provider
- type Store
- type StoreEnv
- type TxNums
- func (*TxNums) Descriptor() ([]byte, []int)
- func (m *TxNums) GetList() []uint64
- func (*TxNums) ProtoMessage()
- func (m *TxNums) Reset()
- func (m *TxNums) String() string
- func (m *TxNums) XXX_DiscardUnknown()
- func (m *TxNums) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (dst *TxNums) XXX_Merge(src proto.Message)
- func (m *TxNums) XXX_Size() int
- func (m *TxNums) XXX_Unmarshal(b []byte) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CollElgInfo ¶
type CollElgInfo struct { NsCollMap map[string]*CollNames `` /* 159-byte string literal not displayed */ XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*CollElgInfo) Descriptor ¶
func (*CollElgInfo) Descriptor() ([]byte, []int)
func (*CollElgInfo) GetNsCollMap ¶
func (m *CollElgInfo) GetNsCollMap() map[string]*CollNames
func (*CollElgInfo) ProtoMessage ¶
func (*CollElgInfo) ProtoMessage()
func (*CollElgInfo) Reset ¶
func (m *CollElgInfo) Reset()
func (*CollElgInfo) String ¶
func (m *CollElgInfo) String() string
func (*CollElgInfo) XXX_DiscardUnknown ¶
func (m *CollElgInfo) XXX_DiscardUnknown()
func (*CollElgInfo) XXX_Marshal ¶
func (m *CollElgInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*CollElgInfo) XXX_Merge ¶
func (dst *CollElgInfo) XXX_Merge(src proto.Message)
func (*CollElgInfo) XXX_Size ¶
func (m *CollElgInfo) XXX_Size() int
func (*CollElgInfo) XXX_Unmarshal ¶
func (m *CollElgInfo) XXX_Unmarshal(b []byte) error
type CollNames ¶
type CollNames struct { Entries []string `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*CollNames) Descriptor ¶
func (*CollNames) GetEntries ¶
func (*CollNames) ProtoMessage ¶
func (*CollNames) ProtoMessage()
func (*CollNames) XXX_DiscardUnknown ¶
func (m *CollNames) XXX_DiscardUnknown()
func (*CollNames) XXX_Marshal ¶
func (*CollNames) XXX_Unmarshal ¶
type Collections ¶
type Collections struct { // for pvt data, there would be an // entry in TxNums Map map[string]*TxNums `` /* 147-byte string literal not displayed */ // for any number of missing pvt data of a collection, // there would be an entry in the map MissingDataMap map[string]bool `` /* 170-byte string literal not displayed */ XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*Collections) Descriptor ¶
func (*Collections) Descriptor() ([]byte, []int)
func (*Collections) GetMap ¶
func (m *Collections) GetMap() map[string]*TxNums
func (*Collections) GetMissingDataMap ¶
func (m *Collections) GetMissingDataMap() map[string]bool
func (*Collections) ProtoMessage ¶
func (*Collections) ProtoMessage()
func (*Collections) Reset ¶
func (m *Collections) Reset()
func (*Collections) String ¶
func (m *Collections) String() string
func (*Collections) XXX_DiscardUnknown ¶
func (m *Collections) XXX_DiscardUnknown()
func (*Collections) XXX_Marshal ¶
func (m *Collections) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*Collections) XXX_Merge ¶
func (dst *Collections) XXX_Merge(src proto.Message)
func (*Collections) XXX_Size ¶
func (m *Collections) XXX_Size() int
func (*Collections) XXX_Unmarshal ¶
func (m *Collections) XXX_Unmarshal(b []byte) error
type ErrIllegalArgs ¶
type ErrIllegalArgs struct {
// contains filtered or unexported fields
}
ErrIllegalArgs is to be thrown by a store impl if the args passed are not allowed
func (*ErrIllegalArgs) Error ¶
func (err *ErrIllegalArgs) Error() string
type ErrIllegalCall ¶
type ErrIllegalCall struct {
// contains filtered or unexported fields
}
ErrIllegalCall is to be thrown by a store impl if the store does not expect a call to Prepare/Commit/InitLastCommittedBlock
func (*ErrIllegalCall) Error ¶
func (err *ErrIllegalCall) Error() string
type ErrOutOfRange ¶
type ErrOutOfRange struct {
// contains filtered or unexported fields
}
ErrOutOfRange is to be thrown for the request for the data that is not yet committed
func (*ErrOutOfRange) Error ¶
func (err *ErrOutOfRange) Error() string
type ExpiryData ¶
type ExpiryData struct { Map map[string]*Collections `` /* 147-byte string literal not displayed */ XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*ExpiryData) Descriptor ¶
func (*ExpiryData) Descriptor() ([]byte, []int)
func (*ExpiryData) GetMap ¶
func (m *ExpiryData) GetMap() map[string]*Collections
func (*ExpiryData) ProtoMessage ¶
func (*ExpiryData) ProtoMessage()
func (*ExpiryData) Reset ¶
func (m *ExpiryData) Reset()
func (*ExpiryData) String ¶
func (m *ExpiryData) String() string
func (*ExpiryData) XXX_DiscardUnknown ¶
func (m *ExpiryData) XXX_DiscardUnknown()
func (*ExpiryData) XXX_Marshal ¶
func (m *ExpiryData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*ExpiryData) XXX_Merge ¶
func (dst *ExpiryData) XXX_Merge(src proto.Message)
func (*ExpiryData) XXX_Size ¶
func (m *ExpiryData) XXX_Size() int
func (*ExpiryData) XXX_Unmarshal ¶
func (m *ExpiryData) XXX_Unmarshal(b []byte) error
type Provider ¶
Provider provides handle to specific 'Store' that in turn manages private write sets for a ledger
type Store ¶
type Store interface { // Init initializes the store. This function is expected to be invoked before using the store Init(btlPolicy pvtdatapolicy.BTLPolicy) // InitLastCommittedBlockHeight sets the last commited block height into the pvt data store // This function is used in a special case where the peer is started up with the blockchain // from an earlier version of a peer when the pvt data feature (and hence this store) was not // available. This function is expected to be called only this situation and hence is // expected to throw an error if the store is not empty. On a successful return from this // fucntion the state of the store is expected to be same as of calling the prepare/commit // function for block `0` through `blockNum` with no pvt data InitLastCommittedBlock(blockNum uint64) error // GetPvtDataByBlockNum returns only the pvt data corresponding to the given block number // The pvt data is filtered by the list of 'ns/collections' supplied in the filter // A nil filter does not filter any results GetPvtDataByBlockNum(blockNum uint64, filter ledger.PvtNsCollFilter) ([]*ledger.TxPvtData, error) // GetMissingPvtDataInfoForMostRecentBlocks returns the missing private data information for the // most recent `maxBlock` blocks which miss at least a private data of a eligible collection. GetMissingPvtDataInfoForMostRecentBlocks(maxBlock int) (ledger.MissingPvtDataInfo, error) // Prepare prepares the Store for commiting the pvt data and storing both eligible and ineligible // missing private data --- `eligible` denotes that the missing private data belongs to a collection // for which this peer is a member; `ineligible` denotes that the missing private data belong to a // collection for which this peer is not a member. // This call does not commit the pvt data and store missing private data. Subsequently, the caller // is expected to call `Commit` function. Return from this should ensure // that enough preparation is done such that `Commit` function invoked afterwards can commit the // data and the store is capable of surviving a crash between this function call and the next // invoke to the `Commit` Prepare(blockNum uint64, pvtData []*ledger.TxPvtData, missingPvtData ledger.TxMissingPvtDataMap) error // Commit commits the pvt data passed in the previous invoke to the `Prepare` function Commit() error // ProcessCollsEligibilityEnabled notifies the store when the peer becomes eligible to recieve data for an // existing collection. Parameter 'committingBlk' refers to the block number that contains the corresponding // collection upgrade transaction and the parameter 'nsCollMap' contains the collections for which the peer // is now eligible to recieve pvt data ProcessCollsEligibilityEnabled(committingBlk uint64, nsCollMap map[string][]string) error // CommitPvtDataOfOldBlocks commits the pvtData (i.e., previously missing data) of old blocks. // The parameter `blocksPvtData` refers a list of old block's pvtdata which are missing in the pvtstore. // This call stores an additional entry called `lastUpdatedOldBlocksList` which keeps the exact list // of updated blocks. This list would be used during recovery process. Once the stateDB is updated with // these pvtData, the `lastUpdatedOldBlocksList` must be removed. During the peer startup, // if the `lastUpdatedOldBlocksList` exists, stateDB needs to be updated with the appropriate pvtData. CommitPvtDataOfOldBlocks(blocksPvtData map[uint64][]*ledger.TxPvtData) error // GetLastUpdatedOldBlocksPvtData returns the pvtdata of blocks listed in `lastUpdatedOldBlocksList` GetLastUpdatedOldBlocksPvtData() (map[uint64][]*ledger.TxPvtData, error) // ResetLastUpdatedOldBlocksList removes the `lastUpdatedOldBlocksList` entry from the store ResetLastUpdatedOldBlocksList() error // IsEmpty returns true if the store does not have any block committed yet IsEmpty() (bool, error) // LastCommittedBlockHeight returns the height of the last committed block LastCommittedBlockHeight() (uint64, error) // HasPendingBatch returns if the store has a pending batch HasPendingBatch() (bool, error) // Shutdown stops the store Shutdown() }
Store manages the permanent storage of private write sets for a ledger The expected use is such that - first the private data will be given to this store (via `Prepare` funtion) and then the block is appended to the block storage. Finally, the functions `Commit` invoked on this store. The store implementation is expected to survive a server crash between the call to `Prepare` and `Commit`.
type StoreEnv ¶
type StoreEnv struct { TestStoreProvider Provider TestStore Store // contains filtered or unexported fields }
StoreEnv provides the store env for testing
func NewTestStoreEnv ¶
NewTestStoreEnv construct a StoreEnv for testing
func (*StoreEnv) Cleanup ¶
func (env *StoreEnv) Cleanup()
Cleanup cleansup the store env after testing
func (*StoreEnv) CloseAndReopen ¶
func (env *StoreEnv) CloseAndReopen()
CloseAndReopen closes and opens the store provider
type TxNums ¶
type TxNums struct { List []uint64 `protobuf:"varint,1,rep,packed,name=list,proto3" json:"list,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*TxNums) Descriptor ¶
func (*TxNums) ProtoMessage ¶
func (*TxNums) ProtoMessage()
func (*TxNums) XXX_DiscardUnknown ¶
func (m *TxNums) XXX_DiscardUnknown()