Documentation ¶
Index ¶
- func Initialize(ccInfoProvider ChaincodeInfoProvider)
- type ChaincodeDefinition
- type ChaincodeInfoProvider
- type ChaincodeLifecycleEventListener
- type KVLedgerLSCCStateListener
- type Mgr
- func (m *Mgr) ChaincodeDeployDone(chainid string)
- func (m *Mgr) ChaincodeInstallDone(succeeded bool)
- func (m *Mgr) HandleChaincodeDeploy(chainid string, chaincodeDefinitions []*ChaincodeDefinition) error
- func (m *Mgr) HandleChaincodeInstall(chaincodeDefinition *ChaincodeDefinition, dbArtifacts []byte) error
- func (m *Mgr) Register(ledgerid string, l ChaincodeLifecycleEventListener)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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 (*Mgr) ChaincodeDeployDone ¶
提交部署事务状态时,应调用ChaincodeDeploydOne。
func (*Mgr) ChaincodeInstallDone ¶
当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”