Documentation ¶
Index ¶
- func ChaincodePackageExists(ccname string, ccversion string) (bool, error)
- func CheckInstantiationPolicy(name, version string, cdLedger *ChaincodeData) error
- func ExtractFileEntries(tarBytes []byte, databaseType string) (map[string][]*TarFileEntry, error)
- func ExtractStatedbArtifactsForChaincode(ccname, ccversion string, pr *platforms.Registry) (installed bool, statedbArtifactsTar []byte, err error)
- func ExtractStatedbArtifactsFromCCPackage(ccpackage CCPackage, pr *platforms.Registry) (statedbArtifactsTar []byte, err error)
- func GetChaincodeInstallPathFromViper() string
- func GetChaincodePackage(ccname string, ccversion string) ([]byte, error)
- func GetChaincodePackageFromPath(ccname string, ccversion string, ccInstallPath string) ([]byte, error)
- func GetInstalledChaincodes() (*pb.ChaincodeQueryResponse, error)
- func IsChaincodeDeployed(chainid, ccName, ccVersion string, ccHash []byte, ...) (bool, error)
- func NewCCInfoCache(cs CCCacheSupport) *ccInfoCacheImpl
- func PutChaincodeIntoFS(depSpec *pb.ChaincodeDeploymentSpec) error
- func SetChaincodesPath(path string)
- type CCCacheSupport
- type CCContext
- type CCInfoFSImpl
- func (cifs *CCInfoFSImpl) GetChaincode(ccname string, ccversion string) (CCPackage, error)
- func (cifs *CCInfoFSImpl) GetChaincodeCodePackage(ccname, ccversion string) ([]byte, error)
- func (*CCInfoFSImpl) GetChaincodeFromPath(ccname string, ccversion string, path string) (CCPackage, error)
- func (cifs *CCInfoFSImpl) ListInstalledChaincodes(dir string, ls DirEnumerator, ccFromPath ChaincodeExtractor) ([]chaincode.InstalledChaincode, error)
- func (*CCInfoFSImpl) PutChaincode(depSpec *pb.ChaincodeDeploymentSpec) (CCPackage, error)
- type CCPackage
- type CDSData
- type CDSPackage
- func (ccpack *CDSPackage) GetChaincodeData() *ChaincodeData
- func (ccpack *CDSPackage) GetDepSpec() *pb.ChaincodeDeploymentSpec
- func (ccpack *CDSPackage) GetDepSpecBytes() []byte
- func (ccpack *CDSPackage) GetId() []byte
- func (ccpack *CDSPackage) GetPackageObject() proto.Message
- func (ccpack *CDSPackage) InitFromBuffer(buf []byte) (*ChaincodeData, error)
- func (ccpack *CDSPackage) InitFromFS(ccname string, ccversion string) ([]byte, *pb.ChaincodeDeploymentSpec, error)
- func (ccpack *CDSPackage) InitFromPath(ccname string, ccversion string, path string) ([]byte, *pb.ChaincodeDeploymentSpec, error)
- func (ccpack *CDSPackage) PutChaincodeToFS() error
- func (ccpack *CDSPackage) ValidateCC(ccdata *ChaincodeData) error
- type ChaincodeContainerInfo
- type ChaincodeData
- func (cd *ChaincodeData) CCName() string
- func (cd *ChaincodeData) CCVersion() string
- func (cd *ChaincodeData) Endorsement() string
- func (cd *ChaincodeData) Hash() []byte
- func (*ChaincodeData) ProtoMessage()
- func (cd *ChaincodeData) Reset()
- func (cd *ChaincodeData) String() string
- func (cd *ChaincodeData) Validation() (string, []byte)
- type ChaincodeDefinition
- type ChaincodeExtractor
- type ChaincodeProvider
- type DirEnumerator
- type SignedCDSData
- type SignedCDSPackage
- func (ccpack *SignedCDSPackage) GetChaincodeData() *ChaincodeData
- func (ccpack *SignedCDSPackage) GetDepSpec() *pb.ChaincodeDeploymentSpec
- func (ccpack *SignedCDSPackage) GetDepSpecBytes() []byte
- func (ccpack *SignedCDSPackage) GetId() []byte
- func (ccpack *SignedCDSPackage) GetInstantiationPolicy() []byte
- func (ccpack *SignedCDSPackage) GetPackageObject() proto.Message
- func (ccpack *SignedCDSPackage) InitFromBuffer(buf []byte) (*ChaincodeData, error)
- func (ccpack *SignedCDSPackage) InitFromFS(ccname string, ccversion string) ([]byte, *pb.ChaincodeDeploymentSpec, error)
- func (ccpack *SignedCDSPackage) InitFromPath(ccname string, ccversion string, path string) ([]byte, *pb.ChaincodeDeploymentSpec, error)
- func (ccpack *SignedCDSPackage) PutChaincodeToFS() error
- func (ccpack *SignedCDSPackage) ValidateCC(ccdata *ChaincodeData) error
- type TarFileEntry
- type TransactionParams
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ChaincodePackageExists ¶
chaincode package exists返回文件系统中是否存在chaincode包。
func CheckInstantiationPolicy ¶
func CheckInstantiationPolicy(name, version string, cdLedger *ChaincodeData) error
func ExtractFileEntries ¶
func ExtractFileEntries(tarBytes []byte, databaseType string) (map[string][]*TarFileEntry, error)
extractFileEntries从给定的“tarbytes”中提取文件条目。文件条目包含在 仅当它位于指示的databasetype目录下的目录中时返回结果 链码索引示例: “META-INF/statedb/couchdb/indexes/indexcolorsortname.json” 集合范围索引示例: “META-INF/statedb/couchdb/collections/collectionmarbles/indexes/indexcollmarbles.json” 空字符串将具有返回所有statedb元数据的效果。这在验证 将来使用多种数据库类型进行存档
func ExtractStatedbArtifactsForChaincode ¶
func ExtractStatedbArtifactsForChaincode(ccname, ccversion string, pr *platforms.Registry) (installed bool, statedbArtifactsTar []byte, err error)
extractstatedbartifactsastarbytes从代码包tar中提取statedb工件并创建statedb工件tar。 对于couchdb,状态db工件应该包含特定于状态db的工件,例如索引规范。 此函数旨在在链代码实例化/升级期间使用,以便可以创建StateDB工件。
func ExtractStatedbArtifactsFromCCPackage ¶
func ExtractStatedbArtifactsFromCCPackage(ccpackage CCPackage, pr *platforms.Registry) (statedbArtifactsTar []byte, err error)
extractstatedbartifactsfromccpackage从代码包tar中提取statedb工件并创建statedb工件tar。 对于couchdb,状态db工件应该包含特定于状态db的工件,例如索引规范。 这个函数在chaincode实例化/升级(从上面)和安装过程中调用,这样就可以创建statedb工件。
func GetChaincodeInstallPathFromViper ¶
func GetChaincodeInstallPathFromViper() string
getchaincodeinstallpathFromViper返回安装链码的路径
func GetChaincodePackage ¶
func GetChaincodePackageFromPath ¶
func GetChaincodePackageFromPath(ccname string, ccversion string, ccInstallPath string) ([]byte, error)
getchaincodepackage从文件系统返回chaincode包
func GetInstalledChaincodes ¶
func GetInstalledChaincodes() (*pb.ChaincodeQueryResponse, error)
GetInstalledChaincodes返回一个映射,其键是链码ID,并且 值是具有 已通过搜索在对等机上安装(但不一定实例化) 链码安装路径
func IsChaincodeDeployed ¶
func IsChaincodeDeployed(chainid, ccName, ccVersion string, ccHash []byte, sccp sysccprovider.SystemChaincodeProvider) (bool, error)
如果部署了具有给定名称和版本的链代码,is chaincode deployed将返回true。
func NewCCInfoCache ¶
func NewCCInfoCache(cs CCCacheSupport) *ccInfoCacheImpl
newccinfo缓存在提供的ccinfo提供程序实例上返回新缓存
func PutChaincodeIntoFS ¶
func PutChaincodeIntoFS(depSpec *pb.ChaincodeDeploymentSpec) error
putchaincodeintofs将链码信息放入文件系统(和 如果启用了缓存,或者直接 来自文件系统,否则
Types ¶
type CCCacheSupport ¶
type CCContext ¶
ccContext传递此参数,而不是字符串参数
func (*CCContext) GetCanonicalName ¶
getcanonicalname返回与建议上下文关联的规范名称
type CCInfoFSImpl ¶
type CCInfoFSImpl struct{}
ccinfofsimpl提供了在fs上CC的实现和对它的访问 实施CCacheSupport
func (*CCInfoFSImpl) GetChaincode ¶
func (cifs *CCInfoFSImpl) GetChaincode(ccname string, ccversion string) (CCPackage, error)
getchaincodefromfs这是一个用于隐藏包实现的包装器。 它使用chaincodeinstallpath调用getchaincodedefcompath
func (*CCInfoFSImpl) GetChaincodeCodePackage ¶
func (cifs *CCInfoFSImpl) GetChaincodeCodePackage(ccname, ccversion string) ([]byte, error)
func (*CCInfoFSImpl) GetChaincodeFromPath ¶
func (*CCInfoFSImpl) GetChaincodeFromPath(ccname string, ccversion string, path string) (CCPackage, error)
getchaincodefrompath这是用于隐藏包实现的包装。
func (*CCInfoFSImpl) ListInstalledChaincodes ¶
func (cifs *CCInfoFSImpl) ListInstalledChaincodes(dir string, ls DirEnumerator, ccFromPath ChaincodeExtractor) ([]chaincode.InstalledChaincode, error)
ListInstalledChaincodes检索已安装的链代码
func (*CCInfoFSImpl) PutChaincode ¶
func (*CCInfoFSImpl) PutChaincode(depSpec *pb.ChaincodeDeploymentSpec) (CCPackage, error)
putchaincodeintofs是用于放置原始chaincodedeploymentspec的包装器 使用cdspackage。这只在UTS中使用
type CCPackage ¶
type CCPackage interface { //initfrombuffer从字节初始化包 InitFromBuffer(buf []byte) (*ChaincodeData, error) //initfromfs从文件系统获取链码(也包括原始字节) InitFromFS(ccname string, ccversion string) ([]byte, *pb.ChaincodeDeploymentSpec, error) //putchaincodetofs将链码写入文件系统 PutChaincodeToFS() error //getdepspec从包中获取chaincodedeploymentspec GetDepSpec() *pb.ChaincodeDeploymentSpec //GetDepspecBytes从包中获取序列化的chaincodeDeploymentsPec GetDepSpecBytes() []byte //validatecc验证并返回对应于 //链表数据。验证基于来自chaincodedata的元数据 //此方法的一个用途是在启动前验证链码 ValidateCC(ccdata *ChaincodeData) error //getPackageObject以proto.message形式获取对象 GetPackageObject() proto.Message //getchaincodedata获取链码数据 GetChaincodeData() *ChaincodeData //GetID根据包计算获取链码的指纹 GetId() []byte }
ccpackage封装了一个chaincode包,可以 原始链代码部署 已签署的haincodedeploymentspec 尝试将接口保持在最小 用于可能泛化的接口。
func GetCCPackage ¶
getcpackage逐个尝试每个已知的包实现 直到找到合适的包裹
func GetChaincodeFromFS ¶
getchaincodefromfs从文件系统检索链码信息
type CDSData ¶
type CDSData struct { //来自chaincodedeploymentspec的代码包的codehash哈希 CodeHash []byte `protobuf:"bytes,1,opt,name=codehash,proto3"` //来自chaincodedeploymentspec的名称和版本的metadatahash哈希 MetaDataHash []byte `protobuf:"bytes,2,opt,name=metadatahash,proto3"` }
cdsdata是在CC实例化时存储在LSCC中的数据。 用于CD包装。这需要为chaincodedata序列化 因此,Protobuf格式
type CDSPackage ¶
type CDSPackage struct {
// contains filtered or unexported fields
}
cdspackage封装了chaincodedeploymentspec。
func (*CDSPackage) GetChaincodeData ¶
func (ccpack *CDSPackage) GetChaincodeData() *ChaincodeData
getchaincodedata获取链码数据
func (*CDSPackage) GetDepSpec ¶
func (ccpack *CDSPackage) GetDepSpec() *pb.ChaincodeDeploymentSpec
getdepspec从包中获取chaincodedeploymentspec
func (*CDSPackage) GetDepSpecBytes ¶
func (ccpack *CDSPackage) GetDepSpecBytes() []byte
GetDepspecBytes从包中获取序列化的chaincodeDeploymentsPec
func (*CDSPackage) GetPackageObject ¶
func (ccpack *CDSPackage) GetPackageObject() proto.Message
getPackageObject以proto.message形式获取chaincodeDeploymentsPec
func (*CDSPackage) InitFromBuffer ¶
func (ccpack *CDSPackage) InitFromBuffer(buf []byte) (*ChaincodeData, error)
initfrombuffer设置缓冲区(如果有效)并返回chaincodedata
func (*CDSPackage) InitFromFS ¶
func (ccpack *CDSPackage) InitFromFS(ccname string, ccversion string) ([]byte, *pb.ChaincodeDeploymentSpec, error)
initfromfs从文件系统返回链码及其包
func (*CDSPackage) InitFromPath ¶
func (ccpack *CDSPackage) InitFromPath(ccname string, ccversion string, path string) ([]byte, *pb.ChaincodeDeploymentSpec, error)
initfromfs从文件系统返回链码及其包
func (*CDSPackage) PutChaincodeToFS ¶
func (ccpack *CDSPackage) PutChaincodeToFS() error
putchaincodetofs-将链码序列化到文件系统上的包
func (*CDSPackage) ValidateCC ¶
func (ccpack *CDSPackage) ValidateCC(ccdata *ChaincodeData) error
如果未找到链码或链码不是 链码部署规范
type ChaincodeContainerInfo ¶
type ChaincodeContainerInfo struct { Name string Version string Path string Type string CodePackage []byte //containerType不是一个好名字,但“docker”和“system”是有效的类型 ContainerType string }
chaincodecontainerinfo是启动/停止chaincode所需数据的另一个同义词。
func DeploymentSpecToChaincodeContainerInfo ¶
func DeploymentSpecToChaincodeContainerInfo(cds *pb.ChaincodeDeploymentSpec) *ChaincodeContainerInfo
type ChaincodeData ¶
type ChaincodeData struct { //链码的名称 Name string `protobuf:"bytes,1,opt,name=name"` //链码的版本 Version string `protobuf:"bytes,2,opt,name=version"` //链代码实例的ESCC Escc string `protobuf:"bytes,3,opt,name=escc"` //链代码实例的vscc Vscc string `protobuf:"bytes,4,opt,name=vscc"` //链码实例的策略认可策略 Policy []byte `protobuf:"bytes,5,opt,name=policy,proto3"` //Data data specific to the package Data []byte `protobuf:"bytes,6,opt,name=data,proto3"` //作为CC唯一指纹的链码的ID这不是 //目前在任何地方使用,但作为一个很好的捕眼器 Id []byte `protobuf:"bytes,7,opt,name=id,proto3"` //链代码的实例化策略 InstantiationPolicy []byte `protobuf:"bytes,8,opt,name=instantiation_policy,proto3"` }
chaincodedata定义要由proto序列化的链代码的数据结构 类型通过在实例化后直接使用特定包来提供附加检查。 数据类型为specifc(请参阅cdspackage和signedcddspackage)
func GetChaincodeData ¶
func GetChaincodeData(ccname string, ccversion string) (*ChaincodeData, error)
getchaincodedata从缓存中获取链码数据(如果有)
func (*ChaincodeData) CCName ¶
func (cd *ChaincodeData) CCName() string
ccname返回这个chaincode的名称(它放在chaincoderegistry中的名称)。
func (*ChaincodeData) Endorsement ¶
func (cd *ChaincodeData) Endorsement() string
认可返回如何认可此链码的建议。 字符串返回的是认可方法(通常为“escc”)的名称。
func (*ChaincodeData) Validation ¶
func (cd *ChaincodeData) Validation() (string, []byte)
validation返回如何验证此链码的事务。 返回的字符串是验证方法的名称(通常为“vscc”)。 返回的字节是验证的参数(在 “vscc”,这是封送的pb.vsccargs消息)。
type ChaincodeDefinition ¶
type ChaincodeDefinition interface { //ccname返回这个chaincode的名称(它放在chaincoderegistry中的名称)。 CCName() string //哈希返回链码的哈希。 Hash() []byte //ccversion返回链代码的版本。 CCVersion() string //validation返回如何验证此链码的事务。 //返回的字符串是验证方法的名称(通常为“vscc”)。 //返回的字节是验证的参数(在 //“vscc”,这是封送的pb.vsccargs消息)。 Validation() (string, []byte) //认可返回如何认可此链码的建议。 //字符串返回的是认可方法(通常为“escc”)的名称。 Endorsement() string }
--------chaincodedefinition-chaincodedata接口------ chaincodedefinition描述了对等方决定是否认可的所有必要信息。 针对特定链码的建议以及是否验证事务。
type ChaincodeExtractor ¶
chaincodeextractor从给定路径提取链码
type ChaincodeProvider ¶
type ChaincodeProvider interface { //执行执行对链码和输入执行标准链码调用 Execute(txParams *TransactionParams, cccid *CCContext, input *pb.ChaincodeInput) (*pb.Response, *pb.ChaincodeEvent, error) //executeLegacyInit是执行链代码部署规范的特殊情况, //它不在LSCC中,是旧生命周期所需的 ExecuteLegacyInit(txParams *TransactionParams, cccid *CCContext, spec *pb.ChaincodeDeploymentSpec) (*pb.Response, *pb.ChaincodeEvent, error) //停止停止链码给出 Stop(ccci *ChaincodeContainerInfo) error }
ChaincodeProvider提供了一个抽象层,即 用于不同的包与中的代码交互 不导入chaincode包;更多方法 如有必要,应在下面添加
type SignedCDSData ¶
type SignedCDSData struct { CodeHash []byte `protobuf:"bytes,1,opt,name=hash"` MetaDataHash []byte `protobuf:"bytes,2,opt,name=metadatahash"` SignatureHash []byte `protobuf:"bytes,3,opt,name=signaturehash"` }
SignedCDDSData是在CC实例化时存储在LSCC中的数据。 对于已签名的dcdspackage。这需要为chaincodedata序列化 因此,Protobuf格式
func (*SignedCDSData) Equals ¶
func (data *SignedCDSData) Equals(other *SignedCDSData) bool
等于数据等于其他
type SignedCDSPackage ¶
type SignedCDSPackage struct {
// contains filtered or unexported fields
}
SignedCdsPackage封装了SignedChaincodeDeploymentSpec。
func (*SignedCDSPackage) GetChaincodeData ¶
func (ccpack *SignedCDSPackage) GetChaincodeData() *ChaincodeData
getchaincodedata获取链码数据
func (*SignedCDSPackage) GetDepSpec ¶
func (ccpack *SignedCDSPackage) GetDepSpec() *pb.ChaincodeDeploymentSpec
getdepspec从包中获取chaincodedeploymentspec
func (*SignedCDSPackage) GetDepSpecBytes ¶
func (ccpack *SignedCDSPackage) GetDepSpecBytes() []byte
GetDepspecBytes从包中获取序列化的chaincodeDeploymentsPec
func (*SignedCDSPackage) GetInstantiationPolicy ¶
func (ccpack *SignedCDSPackage) GetInstantiationPolicy() []byte
GetInstantiationPolicy从包中获取实例化策略
func (*SignedCDSPackage) GetPackageObject ¶
func (ccpack *SignedCDSPackage) GetPackageObject() proto.Message
getPackageObject以proto.message形式获取chaincodeDeploymentsPec
func (*SignedCDSPackage) InitFromBuffer ¶
func (ccpack *SignedCDSPackage) InitFromBuffer(buf []byte) (*ChaincodeData, error)
initfrombuffer设置缓冲区(如果有效)并返回chaincodedata
func (*SignedCDSPackage) InitFromFS ¶
func (ccpack *SignedCDSPackage) InitFromFS(ccname string, ccversion string) ([]byte, *pb.ChaincodeDeploymentSpec, error)
initfromfs从文件系统返回链码及其包
func (*SignedCDSPackage) InitFromPath ¶
func (ccpack *SignedCDSPackage) InitFromPath(ccname string, ccversion string, path string) ([]byte, *pb.ChaincodeDeploymentSpec, error)
initfrompath从文件系统返回链码及其包
func (*SignedCDSPackage) PutChaincodeToFS ¶
func (ccpack *SignedCDSPackage) PutChaincodeToFS() error
putchaincodetofs-将链码序列化到文件系统上的包
func (*SignedCDSPackage) ValidateCC ¶
func (ccpack *SignedCDSPackage) ValidateCC(ccdata *ChaincodeData) error
如果未找到链码或链码不是 链码部署规范
type TarFileEntry ¶
tar file entry封装一个文件条目,它的内容在tar中
type TransactionParams ¶
type TransactionParams struct { TxID string ChannelID string SignedProp *pb.SignedProposal Proposal *pb.Proposal TXSimulator ledger.TxSimulator HistoryQueryExecutor ledger.HistoryQueryExecutor CollectionStore privdata.CollectionStore IsInitTransaction bool //这是传递给链码的附加数据 ProposalDecorations map[string][]byte }
事务参数是绑定到特定事务的参数。 以及调用chaincode所需的。