privdata

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: 37 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewPuller

func NewPuller(cs privdata.CollectionStore, g gossip, dataRetriever PrivateDataRetriever, factory CollectionAccessFactory, channel string) *puller

new puller创建新的私有数据puller

Types

type CollectionAccessFactory

type CollectionAccessFactory interface {
	//基于集合配置的访问策略
	AccessPolicy(config *common.CollectionConfig, chainID string) (privdata.CollectionAccessPolicy, error)
}

CollectionAccessFactory用于生成集合访问策略的接口

func NewCollectionAccessFactory

func NewCollectionAccessFactory(factory IdentityDeserializerFactory) CollectionAccessFactory

新收进厂

type Coordinator

type Coordinator interface {
	//StoreBlock提供带有下划线的私有数据的新块
	//返回缺少的事务ID
	StoreBlock(block *common.Block, data util.PvtDataCollections) error

	//storepvdtata用于将私有数据持久化到临时存储中
	StorePvtData(txid string, privData *transientstore2.TxPvtReadWriteSetWithConfigInfo, blckHeight uint64) error

	//getpvtdata和blockbynum按编号获取block并返回所有相关的私有数据
	//pvtDataCollections切片中私有数据的顺序并不意味着
	//块中与这些私有数据相关的事务,以获得正确的位置
	//需要读取txpvtdata.seqinblock字段
	GetPvtDataAndBlockByNum(seqNum uint64, peerAuth common.SignedData) (*common.Block, util.PvtDataCollections, error)

	//获取最近的块序列号
	LedgerHeight() (uint64, error)

	//关闭协调员,关闭协调员服务
	Close()
}

协调器协调新的流程 块到达和飞行中瞬态数据,负责 完成给定块的瞬态数据缺失部分。

func NewCoordinator

func NewCoordinator(support Support, selfSignedData common.SignedData) Coordinator

NewCoordinator创建Coordinator的新实例

type DataStore

type DataStore interface {
	//gettxpvtrwsetbytxid返回迭代器,因为txid可能有多个private
	//RWSets坚持来自不同的支持者(通过八卦)
	GetTxPvtRWSetByTxid(txid string, filter ledger.PvtNsCollFilter) (transientstore.RWSetScanner, error)

	//getpvdtatabynum从分类帐返回一部分私有数据
	//对于给定的块并基于指示
	//要检索的私有数据的集合和命名空间
	GetPvtDataByNum(blockNum uint64, filter ledger.PvtNsCollFilter) ([]*ledger.TxPvtData, error)

	//getconfigHistoryRetriever返回configHistoryRetriever
	GetConfigHistoryRetriever() (ledger.ConfigHistoryRetriever, error)

	//获取最近的块序列号
	LedgerHeight() (uint64, error)
}

数据存储定义需要获取私有数据的一组API 来自带下划线的数据存储

type Dig2PvtRWSetWithConfig

type Dig2PvtRWSetWithConfig map[privdatacommon.DigKey]*util.PrivateRWSetWithConfig

dig2pvtrwsetwithconfig(配置)

type Fetcher

type Fetcher interface {
	// contains filtered or unexported methods
}

缺少定义要获取的API的获取器接口 私有数据元素

type IdentityDeserializerFactory

type IdentityDeserializerFactory interface {
	//GetIdentityDeserializer返回IdentityDeserializer
	//指定链的实例
	GetIdentityDeserializer(chainID string) msp.IdentityDeserializer
}

IdentityDeserializerFactory是要创建的工厂接口 给定通道的IdentityDeserializer

type NoOpReconciler

type NoOpReconciler struct {
}

要使用的noopecciler非功能调节器 如果已禁用对帐

func (*NoOpReconciler) Start

func (*NoOpReconciler) Start()

func (*NoOpReconciler) Stop

func (*NoOpReconciler) Stop()

type PrivateDataRetriever

type PrivateDataRetriever interface {
	//collectionrwset返回给定txid的collectionpvtreadwriteset字节数,并从临时存储返回集合。
	CollectionRWSet(dig []*proto.PvtDataDigest, blockNum uint64) (Dig2PvtRWSetWithConfig, bool, error)
}

定义支持API的privatedataretriever接口 检索所需的私有数据

type PvtDataDistributor

type PvtDataDistributor interface {
	//基于策略可靠地分发广播私有数据读写集
	Distribute(txID string, privData *transientstore.TxPvtReadWriteSetWithConfigInfo, blkHt uint64) error
}

用于定义分发私有数据的API的pvtDataDistributor接口

func NewDistributor

func NewDistributor(chainID string, gossip gossipAdapter, factory CollectionAccessFactory) PvtDataDistributor

newdistributor能够发送的私有数据分发服务器的构造函数 基础集合的专用读写集

type PvtDataReconciler

type PvtDataReconciler interface {
	//start函数根据调度程序启动协调器,如创建协调器时配置的那样。
	Start()
	//停止功能停止调节器
	Stop()
}

协调器完成提交期间不可用的私有数据的缺失部分。 这是通过从分类帐中获取丢失的私有数据列表并从其他同行中提取该列表来完成的。

type Reconciler

type Reconciler struct {
	ReconciliationFetcher
	committer.Committer
	// contains filtered or unexported fields
}

func NewReconciler

func NewReconciler(c committer.Committer, fetcher ReconciliationFetcher, config *ReconcilerConfig) *Reconciler

NewReconciler创建Reconciler的新实例

func (*Reconciler) Start

func (r *Reconciler) Start()

func (*Reconciler) Stop

func (r *Reconciler) Stop()

type ReconcilerConfig

type ReconcilerConfig struct {
	IsEnabled bool
	// contains filtered or unexported fields
}

reconcilerconfig保存从core.yaml读取的配置标志

func GetReconcilerConfig

func GetReconcilerConfig() *ReconcilerConfig

此func从core.yaml读取协调器配置值并返回reconcilerconfig

type ReconciliationFetcher

type ReconciliationFetcher interface {
	FetchReconciledItems(dig2collectionConfig privdatacommon.Dig2CollectionConfig) (*privdatacommon.FetchedPvtDataContainer, error)
}

定义要获取的API的ReconciliationFetcher接口 必须协调的私有数据元素

type StorageDataRetriever

type StorageDataRetriever interface {
	//collectionrwset检索give digest相关的私有数据,如果
	//否则,available将返回nil、bool,如果从分类帐中提取数据,则返回true;如果从临时存储中提取数据,则返回false,并返回错误。
	CollectionRWSet(dig []*gossip2.PvtDataDigest, blockNum uint64) (Dig2PvtRWSetWithConfig, bool, error)
}

StorageDataRetriever定义从存储中检索私有日期的API

func NewDataRetriever

func NewDataRetriever(store DataStore) StorageDataRetriever

NewDataRetriever为实现 存储数据检索器接口

type Support

支持将一组接口封装到 按单个结构聚合所需功能

type TransientStore

type TransientStore interface {
	//PersisteWithConfig存储事务的私有写入集以及集合配置
	//在基于txid和块高度的临时存储中,在
	PersistWithConfig(txid string, blockHeight uint64, privateSimulationResultsWithConfig *transientstore2.TxPvtReadWriteSetWithConfigInfo) error

	//持久性将事务的私有写入集存储在临时存储中
	Persist(txid string, blockHeight uint64, privateSimulationResults *rwset.TxPvtReadWriteSet) error
	//gettxpvtrwsetbytxid返回迭代器,因为txid可能有多个private
	//来自不同代言人的写集(通过八卦)
	GetTxPvtRWSetByTxid(txid string, filter ledger.PvtNsCollFilter) (transientstore.RWSetScanner, error)

	//purgebytxids从
	//瞬态存储
	PurgeByTxids(txids []string) error

	//purgebyHeight删除块高度小于
	//给定的最大阻塞数。换句话说,清除只保留私有写集。
	//保留在MaxBlockNumtoretain或更高的块高度。尽管是私人的
	//用PurgBytxIdx()将存储在瞬态存储中的写集由协调器删除。
	//块提交成功后,仍需要purgeByHeight()来删除孤立的条目(如
	//获得批准的事务不能由客户端提交以供提交)
	PurgeByHeight(maxBlockNumToRetain uint64) error
}

TransientStore保留尚未提交到分类帐中的相应块的私有数据。

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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