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 (m *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 (m *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 (m *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 (m *ExpiryData) XXX_Merge(src proto.Message)
- func (m *ExpiryData) XXX_Size() int
- func (m *ExpiryData) XXX_Unmarshal(b []byte) error
- type PrivateDataConfig
- 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 (m *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 ¶ added in v1.4.0
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 ¶ added in v1.4.0
func (*CollElgInfo) Descriptor() ([]byte, []int)
func (*CollElgInfo) GetNsCollMap ¶ added in v1.4.0
func (m *CollElgInfo) GetNsCollMap() map[string]*CollNames
func (*CollElgInfo) ProtoMessage ¶ added in v1.4.0
func (*CollElgInfo) ProtoMessage()
func (*CollElgInfo) Reset ¶ added in v1.4.0
func (m *CollElgInfo) Reset()
func (*CollElgInfo) String ¶ added in v1.4.0
func (m *CollElgInfo) String() string
func (*CollElgInfo) XXX_DiscardUnknown ¶ added in v1.4.0
func (m *CollElgInfo) XXX_DiscardUnknown()
func (*CollElgInfo) XXX_Marshal ¶ added in v1.4.0
func (m *CollElgInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*CollElgInfo) XXX_Merge ¶ added in v1.4.0
func (m *CollElgInfo) XXX_Merge(src proto.Message)
func (*CollElgInfo) XXX_Size ¶ added in v1.4.0
func (m *CollElgInfo) XXX_Size() int
func (*CollElgInfo) XXX_Unmarshal ¶ added in v1.4.0
func (m *CollElgInfo) XXX_Unmarshal(b []byte) error
type CollNames ¶ added in v1.4.0
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 ¶ added in v1.4.0
func (*CollNames) GetEntries ¶ added in v1.4.0
func (*CollNames) ProtoMessage ¶ added in v1.4.0
func (*CollNames) ProtoMessage()
func (*CollNames) XXX_DiscardUnknown ¶ added in v1.4.0
func (m *CollNames) XXX_DiscardUnknown()
func (*CollNames) XXX_Marshal ¶ added in v1.4.0
func (*CollNames) XXX_Unmarshal ¶ added in v1.4.0
type Collections ¶ added in v1.2.0
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 ¶ added in v1.2.0
func (*Collections) Descriptor() ([]byte, []int)
func (*Collections) GetMap ¶ added in v1.2.0
func (m *Collections) GetMap() map[string]*TxNums
func (*Collections) GetMissingDataMap ¶ added in v1.3.0
func (m *Collections) GetMissingDataMap() map[string]bool
func (*Collections) ProtoMessage ¶ added in v1.2.0
func (*Collections) ProtoMessage()
func (*Collections) Reset ¶ added in v1.2.0
func (m *Collections) Reset()
func (*Collections) String ¶ added in v1.2.0
func (m *Collections) String() string
func (*Collections) XXX_DiscardUnknown ¶ added in v1.3.0
func (m *Collections) XXX_DiscardUnknown()
func (*Collections) XXX_Marshal ¶ added in v1.3.0
func (m *Collections) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*Collections) XXX_Merge ¶ added in v1.3.0
func (m *Collections) XXX_Merge(src proto.Message)
func (*Collections) XXX_Size ¶ added in v1.3.0
func (m *Collections) XXX_Size() int
func (*Collections) XXX_Unmarshal ¶ added in v1.3.0
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/Rollback/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 ¶ added in v1.2.0
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 ¶ added in v1.2.0
func (*ExpiryData) Descriptor() ([]byte, []int)
func (*ExpiryData) GetMap ¶ added in v1.2.0
func (m *ExpiryData) GetMap() map[string]*Collections
func (*ExpiryData) ProtoMessage ¶ added in v1.2.0
func (*ExpiryData) ProtoMessage()
func (*ExpiryData) Reset ¶ added in v1.2.0
func (m *ExpiryData) Reset()
func (*ExpiryData) String ¶ added in v1.2.0
func (m *ExpiryData) String() string
func (*ExpiryData) XXX_DiscardUnknown ¶ added in v1.3.0
func (m *ExpiryData) XXX_DiscardUnknown()
func (*ExpiryData) XXX_Marshal ¶ added in v1.3.0
func (m *ExpiryData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*ExpiryData) XXX_Merge ¶ added in v1.3.0
func (m *ExpiryData) XXX_Merge(src proto.Message)
func (*ExpiryData) XXX_Size ¶ added in v1.3.0
func (m *ExpiryData) XXX_Size() int
func (*ExpiryData) XXX_Unmarshal ¶ added in v1.3.0
func (m *ExpiryData) XXX_Unmarshal(b []byte) error
type PrivateDataConfig ¶
type PrivateDataConfig struct { // PrivateDataConfig is used to configure a private data storage provider *ledger.PrivateDataConfig // StorePath is the filesystem path for private data storage. // It is internally computed by the ledger component, // so it is not in ledger.PrivateDataConfig and not exposed to other components. StorePath string }
PrivateDataConfig encapsulates the configuration for private data storage on the ledger
type Provider ¶
Provider provides handle to specific 'Store' that in turn manages private write sets for a ledger
func NewProvider ¶
func NewProvider(conf *PrivateDataConfig) (Provider, error)
NewProvider instantiates a StoreProvider
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 committed 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 // function 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) // Commit commits the pvt data as well as both the 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. Commit(blockNum uint64, pvtData []*ledger.TxPvtData, missingPvtData ledger.TxMissingPvtDataMap) error // ProcessCollsEligibilityEnabled notifies the store when the peer becomes eligible to receive 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 receive 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) // Shutdown stops the store Shutdown() }
Store manages the permanent storage of private write sets for a ledger Because the pvt data is supposed to be in sync with the blocks in the ledger, both should logically happen in an atomic operation. In order to accomplish this, an implementation of this store should provide support for a two-phase like commit/rollback capability. The expected use is such that - first the private data will be given to this store (via `Prepare` function) and then the block is appended to the block storage. Finally, one of the functions `Commit` or `Rollback` is invoked on this store based on whether the block was written successfully or not. The store implementation is expected to survive a server crash between the call to `Prepare` and `Commit`/`Rollback`
type StoreEnv ¶
type StoreEnv struct { TestStoreProvider Provider TestStore Store // contains filtered or unexported fields }
StoreEnv provides the store env for testing
func NewTestStoreEnv ¶
func NewTestStoreEnv( t *testing.T, ledgerid string, btlPolicy pvtdatapolicy.BTLPolicy, conf *PrivateDataConfig) *StoreEnv
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 ¶ added in v1.2.0
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 ¶ added in v1.2.0
func (*TxNums) ProtoMessage ¶ added in v1.2.0
func (*TxNums) ProtoMessage()
func (*TxNums) XXX_DiscardUnknown ¶ added in v1.3.0
func (m *TxNums) XXX_DiscardUnknown()