const (
ChaincodePackageMetadataFile = "Chaincode-Package-Metadata.json"
)
ChaincodeMetadata holds the name and version of a chaincode
type ChaincodeMetadata struct { Name string `json:"Name"` Version string `json:"Version"` }
ChaincodePackage represents the un-tar-ed format of the chaincode package.
type ChaincodePackage struct { Metadata *ChaincodePackageMetadata CodePackage []byte }
ChaincodePackageMetadata contains the information necessary to understand the embedded code package.
type ChaincodePackageMetadata struct { Type string `json:"Type"` Path string `json:"Path"` }
ChaincodePackageParser provides the ability to parse chaincode packages
type ChaincodePackageParser struct{}
func (ccpp ChaincodePackageParser) Parse(source []byte) (*ChaincodePackage, error)
Parse parses a set of bytes as a chaincode package and returns the parsed package as a struct
CodePackageNotFoundErr is the error returned when a code package cannot be found in the persistence store
type CodePackageNotFoundErr struct { Name string Version string }
func (e *CodePackageNotFoundErr) Error() string
FilesystemIO is the production implementation of the IOWriter interface
type FilesystemIO struct { }
func (f *FilesystemIO) ReadDir(dirname string) ([]os.FileInfo, error)
ReadDir reads a directory from the filesystem
func (f *FilesystemIO) ReadFile(filename string) ([]byte, error)
ReadFile reads a file from the filesystem
func (f *FilesystemIO) Remove(name string) error
Remove removes a file from the filesystem - used for rolling back an in-flight Save operation upon a failure
func (f *FilesystemIO) Stat(name string) (os.FileInfo, error)
Stat checks for existence of the file on the filesystem
func (f *FilesystemIO) WriteFile(filename string, data []byte, perm os.FileMode) error
WriteFile writes a file to the filesystem
IOReadWriter defines the interface needed for reading, writing, removing, and checking for existence of a specified file
type IOReadWriter interface { ReadDir(string) ([]os.FileInfo, error) ReadFile(string) ([]byte, error) Remove(name string) error Stat(string) (os.FileInfo, error) WriteFile(string, []byte, os.FileMode) error }
LegacyPackageProvider is the interface needed to retrieve the code package from a ChaincodeDeploymentSpec
type LegacyPackageProvider interface { GetChaincodeCodePackage(name, version string) (codePackage []byte, err error) ListInstalledChaincodes(dir string, de ccprovider.DirEnumerator, ce ccprovider.ChaincodeExtractor) ([]chaincode.InstalledChaincode, error) }
PackageParser provides an implementation of chaincode package parsing
type PackageParser interface { Parse(data []byte) (*ChaincodePackage, error) }
PackageProvider holds the necessary dependencies to obtain the code package bytes for a chaincode
type PackageProvider struct { Store StorePackageProvider Parser PackageParser LegacyPP LegacyPackageProvider }
func (p *PackageProvider) GetChaincodeCodePackage(name, version string) ([]byte, error)
GetChaincodeCodePackage gets the code package bytes for a chaincode given the name and version. It first searches through the persisted ChaincodeInstallPackages and then falls back to searching for ChaincodeDeploymentSpecs
func (p *PackageProvider) ListInstalledChaincodes() ([]chaincode.InstalledChaincode, error)
ListInstalledChaincodes returns metadata (name, version, and ID) for each chaincode installed on a peer
Store holds the information needed for persisting a chaincode install package
type Store struct { Path string ReadWriter IOReadWriter }
func (s *Store) GetChaincodeInstallPath() string
GetChaincodeInstallPath returns the path where chaincodes are installed
func (s *Store) ListInstalledChaincodes() ([]chaincode.InstalledChaincode, error)
ListInstalledChaincodes returns an array with information about the chaincodes installed in the persistence store
func (s *Store) Load(hash []byte) (ccInstallPkg []byte, name, version string, err error)
Load loads a persisted chaincode install package bytes with the given hash and also returns the name and version
func (s *Store) LoadMetadata(path string) (name, version string, err error)
LoadMetadata loads the chaincode metadata stored at the specified path
func (s *Store) RetrieveHash(name string, version string) ([]byte, error)
RetrieveHash retrieves the hash of a chaincode install package given the name and version of the chaincode
func (s *Store) Save(name, version string, ccInstallPkg []byte) ([]byte, error)
Save persists chaincode install package bytes with the given name and version
StorePackageProvider is the interface needed to retrieve the code package from a ChaincodeInstallPackage
type StorePackageProvider interface { GetChaincodeInstallPath() string ListInstalledChaincodes() ([]chaincode.InstalledChaincode, error) Load(hash []byte) (codePackage []byte, name, version string, err error) RetrieveHash(name, version string) (hash []byte, err error) }