Help us shape the future of Go! Take the 2026 Go Developer Survey

persistence

package
v1.4.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2021 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

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

Variables

This section is empty.

Functions

This section is empty.

Types

type ChaincodeMetadata

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

ChaincodeMetadata holds the name and version of a chaincode

type ChaincodePackage

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

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

type ChaincodePackageMetadata

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

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

type ChaincodePackageParser

type ChaincodePackageParser struct{}

ChaincodePackageParser provides the ability to parse chaincode packages

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

type CodePackageNotFoundErr struct {
	Name    string
	Version string
}

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

func (*CodePackageNotFoundErr) Error

func (e *CodePackageNotFoundErr) Error() string

type FilesystemIO

type FilesystemIO struct {
}

FilesystemIO is the production implementation of the IOWriter interface

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

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
}

IOReadWriter defines the interface needed for reading, writing, removing, and checking for existence of a specified file

type LegacyPackageProvider

type LegacyPackageProvider interface {
	GetChaincodeCodePackage(name, version string) (codePackage []byte, err error)
	ListInstalledChaincodes(dir string, de ccprovider.DirEnumerator, ce ccprovider.ChaincodeExtractor) ([]chaincode.InstalledChaincode, error)
}

LegacyPackageProvider is the interface needed to retrieve the code package from a ChaincodeDeploymentSpec

type PackageParser

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

PackageParser provides an implementation of chaincode package parsing

type PackageProvider

type PackageProvider struct {
	Store    StorePackageProvider
	Parser   PackageParser
	LegacyPP LegacyPackageProvider
}

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

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

type Store struct {
	Path       string
	ReadWriter IOReadWriter
}

Store holds the information needed for persisting a chaincode install package

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

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

StorePackageProvider is the interface needed to retrieve the code package from a ChaincodeInstallPackage

Directories

Path Synopsis
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

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