pvtdatastorage

package
v0.0.0-...-523a819 Latest Latest
Warning

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

Go to latest
Published: Jan 21, 2019 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

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) Descriptor() ([]byte, []int)

func (*CollNames) GetEntries

func (m *CollNames) GetEntries() []string

func (*CollNames) ProtoMessage

func (*CollNames) ProtoMessage()

func (*CollNames) Reset

func (m *CollNames) Reset()

func (*CollNames) String

func (m *CollNames) String() string

func (*CollNames) XXX_DiscardUnknown

func (m *CollNames) XXX_DiscardUnknown()

func (*CollNames) XXX_Marshal

func (m *CollNames) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*CollNames) XXX_Merge

func (dst *CollNames) XXX_Merge(src proto.Message)

func (*CollNames) XXX_Size

func (m *CollNames) XXX_Size() int

func (*CollNames) XXX_Unmarshal

func (m *CollNames) XXX_Unmarshal(b []byte) error

type Collections

type Collections struct {
	//对于pvt数据,会有一个
	//进入TxNums
	Map map[string]*TxNums `` /* 147-byte string literal not displayed */
	//对于集合中丢失的任何数量的pvt数据,
	//地图上会有一个条目
	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
}

如果不允许传递的参数,则由store impl引发errilegalargs。

func (*ErrIllegalArgs) Error

func (err *ErrIllegalArgs) Error() string

type ErrIllegalCall

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

如果存储不希望调用Prepare/Commit/Rollback/InitLastCommittedBlock,则由存储impl引发errillegalCall。

func (*ErrIllegalCall) Error

func (err *ErrIllegalCall) Error() string

type ErrOutOfRange

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

对于尚未提交的数据请求,将引发erAutoFrange。

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

type Provider interface {
	OpenStore(id string) (Store, error)
	Close()
}

提供程序提供特定“存储”的句柄,而该存储反过来管理 分类帐的专用写入集

func NewProvider

func NewProvider() Provider

NewProvider实例化StoreProvider

type Store

type Store interface {
	//init初始化存储。此函数应在使用存储之前调用
	Init(btlPolicy pvtdatapolicy.BTLPolicy)
	//initlastcommittedblockheight将最后一个提交的块高度设置到pvt数据存储中
	//此功能用于对等端以区块链启动的特殊情况。
	//当pvt数据特性(因此存储)不是
	//可用。此函数只能在这种情况下调用,因此
	//如果存储不为空,则应引发错误。从这里成功返回
	//功能存储区的状态应与调用Prepare/Commit的状态相同。
	//块“0”到“blocknum”的函数,没有pvt数据
	InitLastCommittedBlock(blockNum uint64) error
	//getpvtdatabyblocknum仅返回与给定块号对应的pvt数据
	//pvt数据由筛选器中提供的“ns/collections”列表筛选。
	//nil筛选器不筛选任何结果
	GetPvtDataByBlockNum(blockNum uint64, filter ledger.PvtNsCollFilter) ([]*ledger.TxPvtData, error)
	//GetMissingPvtDataInfoFormsToRecentBlocks返回缺少的
	//最新的'maxblock'块,它至少丢失符合条件的集合的私有数据。
	GetMissingPvtDataInfoForMostRecentBlocks(maxBlock int) (ledger.MissingPvtDataInfo, error)
	//准备为提交pvt数据和存储合格和不合格做好准备。
	//缺少私有数据--“合格”表示缺少的私有数据属于集合
	//此对等方是其成员;“不合格”表示缺少的私有数据属于
	//此对等方不是其成员的集合。
	//此调用不会提交pvt数据并存储丢失的私有数据。随后,呼叫者
	//应调用“commit”或“rollback”函数。从此处返回应确保
	//已经做了足够的准备,以便随后调用的“commit”函数可以提交
	//数据和存储能够在这个函数调用和下一个函数调用之间的崩溃中幸存
	//调用“commit”
	Prepare(blockNum uint64, pvtData []*ledger.TxPvtData, missingPvtData ledger.TxMissingPvtDataMap) error
	//commit将上一次调用中传递的pvt数据提交给“prepare”函数
	Commit() error
	//回滚将上一次调用中传递的pvt数据回滚到“prepare”函数
	Rollback() error
	//当对等方有资格接收
	//现有集合。参数“committingblk”引用包含相应的
	//集合升级事务和参数“nscollmap”包含对等方的集合
	//现在有资格接收pvt数据
	ProcessCollsEligibilityEnabled(committingBlk uint64, nsCollMap map[string][]string) error
	//commitpvtdataofoldblocks提交旧块的pvtdata(即以前丢失的数据)。
	//参数'block s pvtdata'引用pvtstore中缺少的旧块的pvtdata列表。
	//此调用存储了一个名为“lastupdatedodldblockslist”的附加项,该项保留准确的列表
	//更新的块。此列表将在恢复过程中使用。一旦statedb更新为
	//必须删除这些pvtdata和“lastupdatedodldblockslist”。在对等机启动期间,
	//如果存在“lastupdatedodldblockslist”,则需要使用适当的pvtdata更新statedb。
	CommitPvtDataOfOldBlocks(blocksPvtData map[uint64][]*ledger.TxPvtData) error
	//getlastupdatedoldblockspvtdata返回“lastupdatedoldblockslist”中列出的块的pvtdata
	GetLastUpdatedOldBlocksPvtData() (map[uint64][]*ledger.TxPvtData, error)
	//resetlastupdatedodldblockslist从存储中删除“lastupdatedodldblockslist”条目
	ResetLastUpdatedOldBlocksList() error
	//如果存储区尚未提交任何块,则IsEmpty返回true
	IsEmpty() (bool, error)
	//last committed block height返回上一个提交块的高度
	LastCommittedBlockHeight() (uint64, error)
	//如果存储有挂起的批,则返回hasPendingBatch
	HasPendingBatch() (bool, error)
	//关机停止存储
	Shutdown()
}

存储管理分类帐专用写入集的永久存储 因为pvt数据应该与 分类帐,两者都应该在逻辑上发生在原子操作中。整齐 为了实现这一点,该存储的实现应该提供 支持类似于两阶段的提交/回滚功能。 预期用途是-首先将私有数据提供给 此存储(通过“准备”功能),然后将块附加到块存储。 最后,在此基于存储的存储上调用“commit”或“rollback”函数之一 关于块是否成功写入。商店实施 在调用“prepare”和“commit”/“rollback”之间的服务器崩溃后,应该可以存活

type StoreEnv

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

store env提供用于测试的store env

func NewTestStoreEnv

func NewTestStoreEnv(t *testing.T, ledgerid string, btlPolicy pvtdatapolicy.BTLPolicy) *StoreEnv

newteststorenv构造用于测试的storeenv

func (*StoreEnv) Cleanup

func (env *StoreEnv) Cleanup()

清理测试后清理存储环境

func (*StoreEnv) CloseAndReopen

func (env *StoreEnv) CloseAndReopen()

关闭并打开存储提供程序

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) Descriptor() ([]byte, []int)

func (*TxNums) GetList

func (m *TxNums) GetList() []uint64

func (*TxNums) ProtoMessage

func (*TxNums) ProtoMessage()

func (*TxNums) Reset

func (m *TxNums) Reset()

func (*TxNums) String

func (m *TxNums) String() string

func (*TxNums) XXX_DiscardUnknown

func (m *TxNums) XXX_DiscardUnknown()

func (*TxNums) XXX_Marshal

func (m *TxNums) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*TxNums) XXX_Merge

func (dst *TxNums) XXX_Merge(src proto.Message)

func (*TxNums) XXX_Size

func (m *TxNums) XXX_Size() int

func (*TxNums) XXX_Unmarshal

func (m *TxNums) XXX_Unmarshal(b []byte) error

Jump to

Keyboard shortcuts

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