nwo

package
v0.0.0-...-95b87ed Latest Latest
Warning

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

Go to latest
Published: Sep 16, 2019 License: Apache-2.0 Imports: 39 Imported by: 0

Documentation

Index

Constants

View Source
const CCEnvDefaultImage = "mcc-github/blockchain-ccenv:latest"
View Source
const DefaultConfigTxTemplate = `` /* 4641-byte string literal not displayed */
View Source
const DefaultCoreTemplate = `` /* 5111-byte string literal not displayed */
View Source
const DefaultCryptoTemplate = `` /* 845-byte string literal not displayed */
View Source
const DefaultOrdererTemplate = `` /* 2845-byte string literal not displayed */
View Source
const OrgUpdateConfigTxTemplate = `` /* 646-byte string literal not displayed */
View Source
const OrgUpdateCryptoTemplate = `` /* 476-byte string literal not displayed */

Variables

Functions

func AddConsenter

func AddConsenter(n *Network, peer *Peer, orderer *Orderer, channel string, consenter ectdraft_protos.Consenter)

func ApproveChaincodeForMyOrg

func ApproveChaincodeForMyOrg(n *Network, channel string, orderer *Orderer, chaincode Chaincode, peers ...*Peer)

func CheckCommitReadinessUntilReady

func CheckCommitReadinessUntilReady(n *Network, channel string, chaincode Chaincode, checkOrgs []*Organization, peers ...*Peer)

func CommitChaincode

func CommitChaincode(n *Network, channel string, orderer *Orderer, chaincode Chaincode, peer *Peer, checkPeers ...*Peer)

func ComputeUpdateOrdererConfig

func ComputeUpdateOrdererConfig(updateFile string, n *Network, channel string, current, updated *common.Config, submitter *Peer, additionalSigners ...*Orderer)

func ConnectsToOrderer

func ConnectsToOrderer(c Command) bool

func ConsenterAdder

func ConsenterAdder(n *Network, peer *Peer, orderer *Orderer, channel string, consenter ectdraft_protos.Consenter) (current, updated *common.Config)

func ConsenterRemover

func ConsenterRemover(n *Network, peer *Peer, orderer *Orderer, channel string, certificate []byte) (current, updated *common.Config)

func CurrentConfigBlockNumber

func CurrentConfigBlockNumber(n *Network, peer *Peer, orderer *Orderer, channel string) uint64

func CurrentConfigBlockNumberFromPeer

func CurrentConfigBlockNumberFromPeer(n *Network, peer *Peer, channel, output string) uint64

func DeployChaincode

func DeployChaincode(n *Network, channel string, orderer *Orderer, chaincode Chaincode, peers ...*Peer)

func DeployChaincodeLegacy

func DeployChaincodeLegacy(n *Network, channel string, orderer *Orderer, chaincode Chaincode, peers ...*Peer)

func DiscoverPeers

func DiscoverPeers(n *Network, p *Peer, user, channelName string) func() []DiscoveredPeer

func EnableCapabilities

func EnableCapabilities(network *Network, channel, capabilitiesGroup, capabilitiesVersion string, orderer *Orderer, peers ...*Peer)

func EnsureChaincodeCommitted

func EnsureChaincodeCommitted(n *Network, channel, name, version, sequence string, checkOrgs []*Organization, peers ...*Peer)

func EnsureInstalled

func EnsureInstalled(n *Network, label, packageID string, peers ...*Peer)

func EnsureInstantiatedLegacy

func EnsureInstantiatedLegacy(n *Network, channel, name, version string, peers ...*Peer)

func FetchConfigBlock

func FetchConfigBlock(n *Network, peer *Peer, orderer *Orderer, channel string, output string)

func GetConfig

func GetConfig(n *Network, peer *Peer, orderer *Orderer, channel string) *common.Config

func GetConfigBlock

func GetConfigBlock(n *Network, peer *Peer, orderer *Orderer, channel string) *common.Block

func GetLedgerHeight

func GetLedgerHeight(n *Network, peer *Peer, channel string) int

func GetMaxLedgerHeight

func GetMaxLedgerHeight(n *Network, channel string, peers ...*Peer) int

func InitChaincode

func InitChaincode(n *Network, channel string, orderer *Orderer, chaincode Chaincode, peers ...*Peer)

func InstallChaincode

func InstallChaincode(n *Network, chaincode Chaincode, peers ...*Peer)

func InstallChaincodeLegacy

func InstallChaincodeLegacy(n *Network, chaincode Chaincode, peers ...*Peer)

func InstantiateChaincodeLegacy

func InstantiateChaincodeLegacy(n *Network, channel string, orderer *Orderer, chaincode Chaincode, peer *Peer, checkPeers ...*Peer)

func NewCommand

func NewCommand(path string, command Command) *exec.Cmd

func PackageAndInstallChaincode

func PackageAndInstallChaincode(n *Network, chaincode Chaincode, peers ...*Peer)

func PackageChaincode

func PackageChaincode(n *Network, chaincode Chaincode, peer *Peer)

func PackageChaincodeLegacy

func PackageChaincodeLegacy(n *Network, chaincode Chaincode, peer *Peer)

func QueryInstalledReferences

func QueryInstalledReferences(n *Network, channel, label, packageID string, checkPeer *Peer, nameVersions ...[]string)

func RemoveConsenter

func RemoveConsenter(n *Network, peer *Peer, orderer *Orderer, channel string, certificate []byte)

func UnmarshalBlockFromFile

func UnmarshalBlockFromFile(blockFile string) *common.Block

func UpdateConfig

func UpdateConfig(n *Network, orderer *Orderer, channel string, current, updated *common.Config, getConfigBlockFromOrderer bool, submitter *Peer, additionalSigners ...*Peer)

func UpdateConsensusMetadata

func UpdateConsensusMetadata(network *Network, peer *Peer, orderer *Orderer, channel string, mutateMetadata ConsensusMetadataMutator)

func UpdateEtcdRaftMetadata

func UpdateEtcdRaftMetadata(network *Network, peer *Peer, orderer *Orderer, channel string, f func(md *ectdraft_protos.ConfigMetadata))

func UpdateOrdererConfig

func UpdateOrdererConfig(n *Network, orderer *Orderer, channel string, current, updated *common.Config, submitter *Peer, additionalSigners ...*Orderer)

func UpdateOrdererConfigSession

func UpdateOrdererConfigSession(n *Network, orderer *Orderer, channel string, current, updated *common.Config, submitter *Peer, additionalSigners ...*Orderer) *gexec.Session

func UpgradeChaincodeLegacy

func UpgradeChaincodeLegacy(n *Network, channel string, orderer *Orderer, chaincode Chaincode, peers ...*Peer)

func WaitUntilEqualLedgerHeight

func WaitUntilEqualLedgerHeight(n *Network, channel string, height int, peers ...*Peer)

Types

type BuildServer

type BuildServer struct {
	// contains filtered or unexported fields
}

func NewBuildServer

func NewBuildServer(args ...string) *BuildServer

func (*BuildServer) Components

func (s *BuildServer) Components() *Components

func (*BuildServer) Serve

func (s *BuildServer) Serve()

func (*BuildServer) Shutdown

func (s *BuildServer) Shutdown()

type CA

type CA struct {
	Hostname string `yaml:"hostname,omitempty"`
}

type Chaincode

type Chaincode struct {
	Name                string
	Version             string
	Path                string
	Ctor                string
	Policy              string
	Lang                string
	CollectionsConfig   string
	PackageFile         string
	PackageID           string
	Sequence            string
	EndorsementPlugin   string
	ValidationPlugin    string
	InitRequired        bool
	Label               string
	SignaturePolicy     string
	ChannelConfigPolicy string
}

func (*Chaincode) SetPackageIDFromPackageFile

func (c *Chaincode) SetPackageIDFromPackageFile()

type Channel

type Channel struct {
	Name        string `yaml:"name,omitempty"`
	Profile     string `yaml:"profile,omitempty"`
	BaseProfile string `yaml:"baseprofile,omitempty"`
}

type Command

type Command interface {
	Args() []string
	SessionName() string
}

type Components

type Components struct {
	ServerAddress string `json:"server_address"`
}

func (*Components) Cleanup

func (c *Components) Cleanup()

func (*Components) ConfigTxGen

func (c *Components) ConfigTxGen() string

func (*Components) Cryptogen

func (c *Components) Cryptogen() string

func (*Components) Discover

func (c *Components) Discover() string

func (*Components) Idemixgen

func (c *Components) Idemixgen() string

func (*Components) Orderer

func (c *Components) Orderer() string

func (*Components) Peer

func (c *Components) Peer() string

type Config

type Config struct {
	Organizations []*Organization `yaml:"organizations,omitempty"`
	Consortiums   []*Consortium   `yaml:"consortiums,omitempty"`
	SystemChannel *SystemChannel  `yaml:"system_channel,omitempty"`
	Channels      []*Channel      `yaml:"channels,omitempty"`
	Consensus     *Consensus      `yaml:"consensus,omitempty"`
	Orderers      []*Orderer      `yaml:"orderers,omitempty"`
	Peers         []*Peer         `yaml:"peers,omitempty"`
	Profiles      []*Profile      `yaml:"profiles,omitempty"`
	Templates     *Templates      `yaml:"templates,omitempty"`
}

func BasicEtcdRaft

func BasicEtcdRaft() *Config

func BasicKafka

func BasicKafka() *Config

func BasicSolo

func BasicSolo() *Config

func BasicSoloWithIdemix

func BasicSoloWithIdemix() *Config

func MultiChannelEtcdRaft

func MultiChannelEtcdRaft() *Config

func MultiNodeEtcdRaft

func MultiNodeEtcdRaft() *Config

func (*Config) RemovePeer

func (c *Config) RemovePeer(orgName, peerName string)

type Consensus

type Consensus struct {
	Type       string `yaml:"type,omitempty"`
	Brokers    int    `yaml:"brokers,omitempty"`
	ZooKeepers int    `yaml:"zookeepers,omitempty"`
}

type ConsensusMetadataMutator

type ConsensusMetadataMutator func([]byte) []byte

type Consortium

type Consortium struct {
	Name          string   `yaml:"name,omitempty"`
	Organizations []string `yaml:"organizations,omitempty"`
}

type DiscoveredPeer

type DiscoveredPeer struct {
	MSPID      string   `yaml:"mspid,omitempty"`
	Endpoint   string   `yaml:"endpoint,omitempty"`
	Identity   string   `yaml:"identity,omitempty"`
	Chaincodes []string `yaml:"chaincodes,omitempty"`
}

type Enver

type Enver interface {
	Env() []string
}

type Network

type Network struct {
	RootDir           string
	StartPort         uint16
	Components        *Components
	DockerClient      *docker.Client
	NetworkID         string
	EventuallyTimeout time.Duration
	MetricsProvider   string
	StatsdEndpoint    string

	PortsByBrokerID  map[string]Ports
	PortsByOrdererID map[string]Ports
	PortsByPeerID    map[string]Ports
	Organizations    []*Organization
	SystemChannel    *SystemChannel
	Channels         []*Channel
	Consensus        *Consensus
	Orderers         []*Orderer
	Peers            []*Peer
	Profiles         []*Profile
	Consortiums      []*Consortium
	Templates        *Templates
	// contains filtered or unexported fields
}

func New

func New(c *Config, rootDir string, client *docker.Client, startPort int, components *Components) *Network

func (*Network) AddOrg

func (n *Network) AddOrg(o *Organization, peers ...*Peer)

func (*Network) AnchorsForChannel

func (n *Network) AnchorsForChannel(chanName string) []*Peer

func (*Network) AnchorsInOrg

func (n *Network) AnchorsInOrg(orgName string) []*Peer

func (*Network) Bootstrap

func (n *Network) Bootstrap()

func (*Network) BrokerAddresses

func (n *Network) BrokerAddresses(portName PortName) []string

func (*Network) BrokerGroupRunner

func (n *Network) BrokerGroupRunner() ifrit.Runner

func (*Network) BrokerRunner

func (n *Network) BrokerRunner(id int, zookeepers []string) *runner.Kafka

func (*Network) CACertsBundlePath

func (n *Network) CACertsBundlePath() string

func (*Network) Cleanup

func (n *Network) Cleanup()

func (*Network) ConcatenateTLSCACertificates

func (n *Network) ConcatenateTLSCACertificates()

func (*Network) ConfigTxConfigPath

func (n *Network) ConfigTxConfigPath() string

func (*Network) ConfigTxGen

func (n *Network) ConfigTxGen(command Command) (*gexec.Session, error)

func (*Network) Consortium

func (n *Network) Consortium(name string) *Consortium

func (*Network) CreateAndJoinChannel

func (n *Network) CreateAndJoinChannel(o *Orderer, channelName string)

func (*Network) CreateAndJoinChannels

func (n *Network) CreateAndJoinChannels(o *Orderer)

func (*Network) CreateChannel

func (n *Network) CreateChannel(channelName string, o *Orderer, p *Peer, additionalSigners ...interface{})

func (*Network) CreateChannelExitCode

func (n *Network) CreateChannelExitCode(channelName string, o *Orderer, p *Peer, additionalSigners ...interface{}) int

func (*Network) CreateChannelTxPath

func (n *Network) CreateChannelTxPath(channelName string) string

func (*Network) CryptoConfigPath

func (n *Network) CryptoConfigPath() string

func (*Network) CryptoPath

func (n *Network) CryptoPath() string

func (*Network) Cryptogen

func (n *Network) Cryptogen(command Command) (*gexec.Session, error)

func (*Network) Discover

func (n *Network) Discover(command Command) (*gexec.Session, error)

func (*Network) DiscoveredPeer

func (n *Network) DiscoveredPeer(p *Peer, chaincodes ...string) DiscoveredPeer

func (*Network) GenerateConfigTree

func (n *Network) GenerateConfigTree()

func (*Network) GenerateConfigTxConfig

func (n *Network) GenerateConfigTxConfig()

func (*Network) GenerateCoreConfig

func (n *Network) GenerateCoreConfig(p *Peer)

func (*Network) GenerateCryptoConfig

func (n *Network) GenerateCryptoConfig()

func (*Network) GenerateOrdererConfig

func (n *Network) GenerateOrdererConfig(o *Orderer)

func (*Network) IdemixOrgMSPDir

func (n *Network) IdemixOrgMSPDir(org *Organization) string

func (*Network) IdemixOrgs

func (n *Network) IdemixOrgs() []*Organization

func (*Network) IdemixUserMSPDir

func (n *Network) IdemixUserMSPDir(o *Organization, user string) string

func (*Network) IdemixUserSession

func (n *Network) IdemixUserSession(p *Peer, idemixOrg *Organization, user string, command Command) (*gexec.Session, error)

func (*Network) Idemixgen

func (n *Network) Idemixgen(command Command) (*gexec.Session, error)

func (*Network) JoinChannel

func (n *Network) JoinChannel(name string, o *Orderer, peers ...*Peer)

func (*Network) NetworkGroupRunner

func (n *Network) NetworkGroupRunner() ifrit.Runner

func (*Network) Orderer

func (n *Network) Orderer(name string) *Orderer

func (*Network) OrdererAddress

func (n *Network) OrdererAddress(o *Orderer, portName PortName) string

func (*Network) OrdererAdminSession

func (n *Network) OrdererAdminSession(o *Orderer, p *Peer, command Command) (*gexec.Session, error)

func (*Network) OrdererConfigPath

func (n *Network) OrdererConfigPath(o *Orderer) string

func (*Network) OrdererDir

func (n *Network) OrdererDir(o *Orderer) string

func (*Network) OrdererGroupRunner

func (n *Network) OrdererGroupRunner() ifrit.Runner

func (*Network) OrdererLocalCryptoDir

func (n *Network) OrdererLocalCryptoDir(o *Orderer, cryptoType string) string

func (*Network) OrdererLocalMSPDir

func (n *Network) OrdererLocalMSPDir(o *Orderer) string

func (*Network) OrdererLocalTLSDir

func (n *Network) OrdererLocalTLSDir(o *Orderer) string

func (*Network) OrdererOrgMSPDir

func (n *Network) OrdererOrgMSPDir(o *Organization) string

func (*Network) OrdererOrgs

func (n *Network) OrdererOrgs() []*Organization

func (*Network) OrdererPort

func (n *Network) OrdererPort(o *Orderer, portName PortName) uint16

func (*Network) OrdererRunner

func (n *Network) OrdererRunner(o *Orderer) *ginkgomon.Runner

func (*Network) OrdererUserCert

func (n *Network) OrdererUserCert(o *Orderer, user string) string

func (*Network) OrdererUserKey

func (n *Network) OrdererUserKey(o *Orderer, user string) string

func (*Network) OrdererUserMSPDir

func (n *Network) OrdererUserMSPDir(o *Orderer, user string) string

func (*Network) OrderersInOrg

func (n *Network) OrderersInOrg(orgName string) []*Orderer

func (*Network) Organization

func (n *Network) Organization(orgName string) *Organization

func (*Network) OrgsForOrderers

func (n *Network) OrgsForOrderers(ordererNames []string) []*Organization

func (*Network) OutputBlockPath

func (n *Network) OutputBlockPath(channelName string) string

func (*Network) Peer

func (n *Network) Peer(orgName, peerName string) *Peer

func (*Network) PeerAddress

func (n *Network) PeerAddress(p *Peer, portName PortName) string

func (*Network) PeerAdminSession

func (n *Network) PeerAdminSession(p *Peer, command Command) (*gexec.Session, error)

func (*Network) PeerCert

func (n *Network) PeerCert(p *Peer) string

func (*Network) PeerConfigPath

func (n *Network) PeerConfigPath(p *Peer) string

func (*Network) PeerDir

func (n *Network) PeerDir(p *Peer) string

func (*Network) PeerGroupRunner

func (n *Network) PeerGroupRunner() ifrit.Runner

func (*Network) PeerLocalMSPDir

func (n *Network) PeerLocalMSPDir(p *Peer) string

func (*Network) PeerLocalTLSDir

func (n *Network) PeerLocalTLSDir(p *Peer) string

func (*Network) PeerOrgMSPDir

func (n *Network) PeerOrgMSPDir(org *Organization) string

func (*Network) PeerOrgs

func (n *Network) PeerOrgs() []*Organization

func (*Network) PeerPort

func (n *Network) PeerPort(p *Peer, portName PortName) uint16

func (*Network) PeerRunner

func (n *Network) PeerRunner(p *Peer, env ...string) *ginkgomon.Runner

func (*Network) PeerUserCert

func (n *Network) PeerUserCert(p *Peer, user string) string

func (*Network) PeerUserKey

func (n *Network) PeerUserKey(p *Peer, user string) string

func (*Network) PeerUserMSPDir

func (n *Network) PeerUserMSPDir(p *Peer, user string) string

func (*Network) PeerUserSession

func (n *Network) PeerUserSession(p *Peer, user string, command Command) (*gexec.Session, error)

func (*Network) PeerUserTLSDir

func (n *Network) PeerUserTLSDir(p *Peer, user string) string

func (*Network) PeersInOrg

func (n *Network) PeersInOrg(orgName string) []*Peer

func (*Network) PeersWithChannel

func (n *Network) PeersWithChannel(chanName string) []*Peer

func (*Network) ProfileForChannel

func (n *Network) ProfileForChannel(channelName string) string

func (*Network) ReadOrdererConfig

func (n *Network) ReadOrdererConfig(o *Orderer) *blockchainconfig.Orderer

func (*Network) ReadPeerConfig

func (n *Network) ReadPeerConfig(p *Peer) *blockchainconfig.Core

func (*Network) ReservePort

func (n *Network) ReservePort() uint16

func (*Network) StartSession

func (n *Network) StartSession(cmd *exec.Cmd, name string) (*gexec.Session, error)

func (*Network) UpdateChannelAnchors

func (n *Network) UpdateChannelAnchors(o *Orderer, channelName string)

func (*Network) VerifyMembership

func (n *Network) VerifyMembership(expectedPeers []*Peer, channel string, chaincodes ...string)

func (*Network) WriteOrdererConfig

func (n *Network) WriteOrdererConfig(o *Orderer, config *blockchainconfig.Orderer)

func (*Network) WritePeerConfig

func (n *Network) WritePeerConfig(p *Peer, config *blockchainconfig.Core)

func (*Network) ZooKeeperRunner

func (n *Network) ZooKeeperRunner(idx int) *runner.ZooKeeper

type Orderer

type Orderer struct {
	Name         string `yaml:"name,omitempty"`
	Organization string `yaml:"organization,omitempty"`
}

func (Orderer) ID

func (o Orderer) ID() string

type Organization

type Organization struct {
	MSPID         string `yaml:"msp_id,omitempty"`
	MSPType       string `yaml:"msp_type,omitempty"`
	Name          string `yaml:"name,omitempty"`
	Domain        string `yaml:"domain,omitempty"`
	EnableNodeOUs bool   `yaml:"enable_node_organizational_units"`
	Users         int    `yaml:"users,omitempty"`
	CA            *CA    `yaml:"ca,omitempty"`
}

type Peer

type Peer struct {
	Name         string         `yaml:"name,omitempty"`
	Organization string         `yaml:"organization,omitempty"`
	Channels     []*PeerChannel `yaml:"channels,omitempty"`
}

func (*Peer) Anchor

func (p *Peer) Anchor() bool

func (*Peer) ID

func (p *Peer) ID() string

type PeerChannel

type PeerChannel struct {
	Name   string `yaml:"name,omitempty"`
	Anchor bool   `yaml:"anchor"`
}

type PortName

type PortName string
const (
	ChaincodePort  PortName = "Chaincode"
	EventsPort     PortName = "Events"
	HostPort       PortName = "HostPort"
	ListenPort     PortName = "Listen"
	ProfilePort    PortName = "Profile"
	OperationsPort PortName = "Operations"
)

func BrokerPortNames

func BrokerPortNames() []PortName

func OrdererPortNames

func OrdererPortNames() []PortName

func PeerPortNames

func PeerPortNames() []PortName

type Ports

type Ports map[PortName]uint16

type Profile

type Profile struct {
	Name                string   `yaml:"name,omitempty"`
	Orderers            []string `yaml:"orderers,omitempty"`
	Consortium          string   `yaml:"consortium,omitempty"`
	Organizations       []string `yaml:"organizations,omitempty"`
	AppCapabilities     []string `yaml:"app_capabilities,omitempty"`
	ChannelCapabilities []string `yaml:"channel_capabilities,omitempty"`
}

type SystemChannel

type SystemChannel struct {
	Name    string `yaml:"name,omitempty"`
	Profile string `yaml:"profile,omitempty"`
}

type Templates

type Templates struct {
	ConfigTx string `yaml:"configtx,omitempty"`
	Core     string `yaml:"core,omitempty"`
	Crypto   string `yaml:"crypto,omitempty"`
	Orderer  string `yaml:"orderer,omitempty"`
}

func (*Templates) ConfigTxTemplate

func (t *Templates) ConfigTxTemplate() string

func (*Templates) CoreTemplate

func (t *Templates) CoreTemplate() string

func (*Templates) CryptoTemplate

func (t *Templates) CryptoTemplate() string

func (*Templates) OrdererTemplate

func (t *Templates) OrdererTemplate() string

type WorkingDirer

type WorkingDirer interface {
	WorkingDir() string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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