transientstore

package
v0.0.0-...-fbe82ab Latest Latest
Warning

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

Go to latest
Published: Mar 16, 2019 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrStoreEmpty = errors.New("Transient store is empty")

errstoreEmpty用于指示临时存储中没有条目

Functions

func GetTransientStorePath

func GetTransientStorePath() string

getTransientStorePath返回临时存储私有Rwset的文件系统路径

Types

type EndorserPvtSimulationResults

type EndorserPvtSimulationResults struct {
	ReceivedAtBlockHeight uint64
	PvtSimulationResults  *rwset.TxPvtReadWriteSet
}

背书人vt模拟结果捕获特定于背书人的模拟结果的详细信息 TODO:一旦根据FAB-5096进行了相关的八卦更改,请删除此结构

type EndorserPvtSimulationResultsWithConfig

type EndorserPvtSimulationResultsWithConfig struct {
	ReceivedAtBlockHeight          uint64
	PvtSimulationResultsWithConfig *transientstore.TxPvtReadWriteSetWithConfigInfo
}

背书人vt模拟结果thconfig捕获特定于背书人的模拟结果的详细信息

type RWSetScanner

type RWSetScanner interface {
	//下一步返回RWSetscanner的下一个背书器vt模拟结果。
	//如果没有进一步的数据,它可以返回nil,也可以返回错误。
	//关于失败
	Next() (*EndorserPvtSimulationResults, error)
	//NextWithConfig返回RWSetscanner中的下一个RemarkerPvSimulationResultsWithConfig。
	//如果没有进一步的数据,它可以返回nil,也可以返回错误。
	//关于失败
	//TODO:一旦根据FAB-5096进行了相关的八卦更改,请删除上述功能
	//并将下面的函数重命名为下一个表单NextWithConfig。
	NextWithConfig() (*EndorserPvtSimulationResultsWithConfig, error)
	//关闭释放与此rwsetscanner关联的资源
	Close()
}

rwsetscanner为背书器vt模拟结果提供迭代器

type RwsetScanner

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

func (*RwsetScanner) Close

func (scanner *RwsetScanner) Close()

close释放迭代器持有的资源

func (*RwsetScanner) Next

func (scanner *RwsetScanner) Next() (*EndorserPvtSimulationResults, error)

下一步将迭代器移动到下一个键/值对。 它返回迭代器是否耗尽。 TODO: Once the related gossip changes are made as per FAB-5096, remove this function

func (*RwsetScanner) NextWithConfig

func (scanner *RwsetScanner) NextWithConfig() (*EndorserPvtSimulationResultsWithConfig, error)

下一步将迭代器移动到下一个键/值对。 它返回迭代器是否耗尽。 TODO:根据FAB-5096对相关的八卦进行更改后,将此函数重命名为Next

type Store

type Store interface {
	//持久性将事务的私有写入集存储在临时存储中
	//根据TxID和块高度,在
	Persist(txid string, blockHeight uint64, privateSimulationResults *rwset.TxPvtReadWriteSet) error
	//TODO:一旦根据FAB-5096进行了相关的八卦更改,请删除上述功能
	//并将下面的函数重命名为persistewithconfig。
	//PersisteWithConfig存储事务的私有写入集以及集合配置
	//在基于txid和块高度的临时存储中,在
	PersistWithConfig(txid string, blockHeight uint64, privateSimulationResultsWithConfig *transientstore.TxPvtReadWriteSetWithConfigInfo) error
	//gettxpvtrwsetbytxid返回迭代器,因为txid可能有多个private
	//来自不同代言人的写集(通过八卦)
	GetTxPvtRWSetByTxid(txid string, filter ledger.PvtNsCollFilter) (RWSetScanner, error)
	//PurgeByTxids removes private write sets of a given set of transactions from the
	//瞬态存储
	PurgeByTxids(txids []string) error
	//purgebyHeight删除块高度小于
	//给定的最大阻塞数。换句话说,清除只保留私有写集。
	//保留在MaxBlockNumtoretain或更高的块高度。尽管是私人的
	//用PurgBytxIdx()将存储在瞬态存储中的写集由协调器删除。
	//块提交成功后,仍需要purgeByHeight()来删除孤立的条目(如
	//transaction that gets endorsed may not be submitted by the client for commit)
	PurgeByHeight(maxBlockNumToRetain uint64) error
	//GetMinTransientBlkht返回瞬态存储中剩余的最低块高度
	GetMinTransientBlkHt() (uint64, error)
	Shutdown()
}

存储管理LedgerID的私有写入集的存储。 理想情况下,分类帐可以在将数据提交给 某些数据项的永久存储或修剪由策略强制执行

type StoreEnv

type StoreEnv struct {
	TestStoreProvider StoreProvider
	TestStore         Store
	// contains filtered or unexported fields
}

store env提供用于测试的store env

func NewTestStoreEnv

func NewTestStoreEnv(t *testing.T) *StoreEnv

newteststorenv构造用于测试的storeenv

func (*StoreEnv) Cleanup

func (env *StoreEnv) Cleanup()

清理测试后清理存储环境

type StoreProvider

type StoreProvider interface {
	OpenStore(ledgerID string) (Store, error)
	Close()
}

StoreProvider提供TransientStore的实例

func NewStoreProvider

func NewStoreProvider() StoreProvider

Newstoreprovider实例化TransientStoreProvider

Jump to

Keyboard shortcuts

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