cceventmgmt

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Initialize

func Initialize(ccInfoProvider ChaincodeInfoProvider)

初始化初始化事件管理

Types

type ChaincodeDefinition

type ChaincodeDefinition struct {
	Name              string
	Hash              []byte
	Version           string
	CollectionConfigs *common.CollectionConfigPackage
}

chaincodedefinition捕获有关chaincode的信息

func (*ChaincodeDefinition) String

func (cdef *ChaincodeDefinition) String() string

type ChaincodeInfoProvider

type ChaincodeInfoProvider interface {
	//getdeployedchaincodeinfo检索有关已部署链代码的详细信息。
	//如果未部署具有给定名称的链代码,则此函数应返回nil。
	//或者部署的链码的版本或哈希与给定的版本和哈希不匹配
	GetDeployedChaincodeInfo(chainid string, chaincodeDefinition *ChaincodeDefinition) (*ledger.DeployedChaincodeInfo, error)
	//RetrieveChainCodeArtifacts检查给定的链码是否安装在对等机上,如果是,
	//它从链式代码包tarball中提取特定于状态数据库的工件
	RetrieveChaincodeArtifacts(chaincodeDefinition *ChaincodeDefinition) (installed bool, dbArtifactsTar []byte, err error)
}

ChaincodeInfoProvider接口使事件管理器能够检索给定链码的链码信息

type ChaincodeLifecycleEventListener

type ChaincodeLifecycleEventListener interface {
	//当chaincode installed+defined变为true时调用handlechaincodedeploy。
	//预期的用法是创建所有必要的statedb结构(如索引)并更新
	//服务发现信息。在提交状态更改之前立即调用此函数
	//包含链码定义或在发生链码安装时
	HandleChaincodeDeploy(chaincodeDefinition *ChaincodeDefinition, dbArtifactsTar []byte) error
	//chaincodedeploydone在完成chaincode部署后调用-`succeeded`表示
	//部署是否成功完成
	ChaincodeDeployDone(succeeded bool)
}

ChaincodeLifecycleEventListener接口启用分类帐组件(主要用于StateDB) 能够监听链码生命周期事件。dbartifactstar'表示特定于数据库的项目 (如索引规格)用焦油包装

type KVLedgerLSCCStateListener

type KVLedgerLSCCStateListener struct {
	DeployedChaincodeInfoProvider ledger.DeployedChaincodeInfoProvider
}

kvledgerlscstateListener侦听链代码生命周期的状态更改

func (*KVLedgerLSCCStateListener) HandleStateUpdates

func (listener *KVLedgerLSCCStateListener) HandleStateUpdates(trigger *ledger.StateUpdateTrigger) error

handlestateupdates使用“deployedchaincodeinfo提供程序”查找链代码的部署 并在chaincode事件管理器上调用“handlechaincodedeploy”函数(后者反过来负责创建statedb 链码状态数据的工件)

func (*KVLedgerLSCCStateListener) InterestedInNamespaces

func (listener *KVLedgerLSCCStateListener) InterestedInNamespaces() []string

interestedInNamespaces从接口“ledger.stateListener”实现函数

func (*KVLedgerLSCCStateListener) StateCommitDone

func (listener *KVLedgerLSCCStateListener) StateCommitDone(channelName string)

statecommitdone从接口'ledger.statelistener'实现函数

type Mgr

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

经理概括了与分类账利息相关的事件的重要交互作用。

func GetMgr

func GetMgr() *Mgr

getmgr返回对singleton事件管理器的引用

func (*Mgr) ChaincodeDeployDone

func (m *Mgr) ChaincodeDeployDone(chainid string)

提交部署事务状态时,应调用ChaincodeDeploydOne。

func (*Mgr) ChaincodeInstallDone

func (m *Mgr) ChaincodeInstallDone(succeeded bool)

当chaincode安装完成时,应调用chaincodeinstalldone。

func (*Mgr) HandleChaincodeDeploy

func (m *Mgr) HandleChaincodeDeploy(chainid string, chaincodeDefinitions []*ChaincodeDefinition) error

当通过部署事务部署链代码时,应调用handlechaincodedeploy。 'chaincodedefinitions'参数包含块中部署的所有链码 我们需要存储上一次收到的“chaincodedefinitions”,因为此函数将被调用 在执行部署事务之后,验证尚未提交到分类帐。此外,我们 完成此功能后释放读取锁定。当可能发生“chaincode install”时,这会留下一个小窗口。 在提交部署事务之前,因此函数“handlechaincodeinstall”可能会错过查找 已部署的链代码。因此,在函数“handlechaincodeinstall”中,我们显式检查是否部署了链代码 在存储的“chaincodedefinitions”中

func (*Mgr) HandleChaincodeInstall

func (m *Mgr) HandleChaincodeInstall(chaincodeDefinition *ChaincodeDefinition, dbArtifacts []byte) error

handlechaincodeinstall应该在chaincode包的安装过程中被调用。

func (*Mgr) Register

func (m *Mgr) Register(ledgerid string, l ChaincodeLifecycleEventListener)

寄存器为给定的LedgerID注册chaincodeLifecycleEventListener 因为,在创建/打开分类帐实例时应调用“register”

Jump to

Keyboard shortcuts

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