...

Package persistence

import "github.com/hyperledger/fabric/core/chaincode/persistence"
Overview
Index
Subdirectories

Overview ▾

Index ▾

Package files

chaincode_package.go package_provider.go persistence.go

Constants

const (
    ChaincodePackageMetadataFile = "Chaincode-Package-Metadata.json"
)

type ChaincodeMetadata

ChaincodeMetadata holds the name and version of a chaincode

type ChaincodeMetadata struct {
    Name    string `json:"Name"`
    Version string `json:"Version"`
}

type ChaincodePackage

ChaincodePackage represents the un-tar-ed format of the chaincode package.

type ChaincodePackage struct {
    Metadata    *ChaincodePackageMetadata
    CodePackage []byte
}

type ChaincodePackageMetadata

ChaincodePackageMetadata contains the information necessary to understand the embedded code package.

type ChaincodePackageMetadata struct {
    Type string `json:"Type"`
    Path string `json:"Path"`
}

type ChaincodePackageParser

ChaincodePackageParser provides the ability to parse chaincode packages

type ChaincodePackageParser struct{}

func (ChaincodePackageParser) Parse

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

type CodePackageNotFoundErr

CodePackageNotFoundErr is the error returned when a code package cannot be found in the persistence store

type CodePackageNotFoundErr struct {
    Name    string
    Version string
}

func (*CodePackageNotFoundErr) Error

func (e *CodePackageNotFoundErr) Error() string

type FilesystemIO

FilesystemIO is the production implementation of the IOWriter interface

type FilesystemIO struct {
}

func (*FilesystemIO) ReadDir

func (f *FilesystemIO) ReadDir(dirname string) ([]os.FileInfo, error)

ReadDir reads a directory from the filesystem

func (*FilesystemIO) ReadFile

func (f *FilesystemIO) ReadFile(filename string) ([]byte, error)

ReadFile reads a file from the filesystem

func (*FilesystemIO) Remove

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 (*FilesystemIO) Stat

func (f *FilesystemIO) Stat(name string) (os.FileInfo, error)

Stat checks for existence of the file on the filesystem

func (*FilesystemIO) WriteFile

func (f *FilesystemIO) WriteFile(filename string, data []byte, perm os.FileMode) error

WriteFile writes a file to the filesystem

type IOReadWriter

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
}

type LegacyPackageProvider

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)
}

type PackageParser

PackageParser provides an implementation of chaincode package parsing

type PackageParser interface {
    Parse(data []byte) (*ChaincodePackage, error)
}

type PackageProvider

PackageProvider holds the necessary dependencies to obtain the code package bytes for a chaincode

type PackageProvider struct {
    Store    StorePackageProvider
    Parser   PackageParser
    LegacyPP LegacyPackageProvider
}

func (*PackageProvider) GetChaincodeCodePackage

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 (*PackageProvider) ListInstalledChaincodes

func (p *PackageProvider) ListInstalledChaincodes() ([]chaincode.InstalledChaincode, error)

ListInstalledChaincodes returns metadata (name, version, and ID) for each chaincode installed on a peer

type Store

Store holds the information needed for persisting a chaincode install package

type Store struct {
    Path       string
    ReadWriter IOReadWriter
}

func (*Store) GetChaincodeInstallPath

func (s *Store) GetChaincodeInstallPath() string

GetChaincodeInstallPath returns the path where chaincodes are installed

func (*Store) ListInstalledChaincodes

func (s *Store) ListInstalledChaincodes() ([]chaincode.InstalledChaincode, error)

ListInstalledChaincodes returns an array with information about the chaincodes installed in the persistence store

func (*Store) Load

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 (*Store) LoadMetadata

func (s *Store) LoadMetadata(path string) (name, version string, err error)

LoadMetadata loads the chaincode metadata stored at the specified path

func (*Store) RetrieveHash

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 (*Store) Save

func (s *Store) Save(name, version string, ccInstallPkg []byte) ([]byte, error)

Save persists chaincode install package bytes with the given name and version

type StorePackageProvider

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)
}

Subdirectories

Name Synopsis
..
mock Code generated by counterfeiter.