cluster

package
v1.6.0-rc.0 Latest Latest
Warning

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

Go to latest
Published: Jun 12, 2024 License: MIT Imports: 41 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BootstrapperEndpoint

func BootstrapperEndpoint(ith int) string

func BootstrapperGlobalEndpoint added in v1.4.0

func BootstrapperGlobalEndpoint(namespace string, ith int) string

func ExtractP2PEndpoints added in v1.4.0

func ExtractP2PEndpoints(tctx *testcontext.Context, nodes []*NodeClient) ([]string, error)

func MakePoetEndpoint

func MakePoetEndpoint(ith int) string

MakePoetEndpoint generate a poet endpoint for the ith instance.

func MakePoetGlobalEndpoint added in v1.4.0

func MakePoetGlobalEndpoint(testNamespace string, ith int) string

func MakePoetKey added in v1.4.0

func MakePoetKey(ith int) (ed25519.PublicKey, ed25519.PrivateKey)

Deterministically generate poet keys for given instance.

func MakePoetMetricsEndpoint added in v1.6.0

func MakePoetMetricsEndpoint(testNamespace string, ith int) string

Types

type Account

type Account struct {
	PrivateKey ed25519.PrivateKey
	Address    types.Address
}

Account contains address and private key.

func (Account) String

func (a Account) String() string

type Cluster

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

Cluster for managing state of the spacemesh cluster.

func Default

func Default(cctx *testcontext.Context, opts ...Opt) (*Cluster, error)

Default deploys bootnodes, one poet and the smeshers according to the cluster size.

func New

func New(cctx *testcontext.Context, opts ...Opt) *Cluster

New initializes Cluster with options.

func Reuse

func Reuse(cctx *testcontext.Context, opts ...Opt) (*Cluster, error)

Reuse will try to recover cluster from the given namespace, if not found it will create a new one.

func ReuseWait

func ReuseWait(cctx *testcontext.Context, opts ...Opt) (*Cluster, error)

func (*Cluster) Account

func (a *Cluster) Account(i int) Account

func (*Cluster) Accounts

func (a *Cluster) Accounts() int

func (*Cluster) AddBootnodes

func (c *Cluster) AddBootnodes(cctx *testcontext.Context, n int) error

AddBootnodes ...

func (*Cluster) AddBootstrapper

func (c *Cluster) AddBootstrapper(cctx *testcontext.Context, i int) error

func (*Cluster) AddBootstrappers

func (c *Cluster) AddBootstrappers(cctx *testcontext.Context) error

func (*Cluster) AddCertifier added in v1.6.0

func (c *Cluster) AddCertifier(cctx *testcontext.Context, privkey string) error

AddCertifier spawns a single certifier with the first available id. Id is of form "certifier-N", where N ∈ [0, ∞).

func (*Cluster) AddPoet

func (c *Cluster) AddPoet(cctx *testcontext.Context, flags ...DeploymentFlag) error

AddPoet spawns a single poet with the first available id. Id is of form "poet-N", where N ∈ [0, ∞).

func (*Cluster) AddPoets

func (c *Cluster) AddPoets(cctx *testcontext.Context) error

AddPoets spawns poets up to configured number of poets.

func (*Cluster) AddRemoteSmeshers added in v1.4.0

func (c *Cluster) AddRemoteSmeshers(tctx *testcontext.Context, n int, opts ...DeploymentOpt) error

func (*Cluster) AddSmeshers

func (c *Cluster) AddSmeshers(tctx *testcontext.Context, n int, opts ...DeploymentOpt) error

AddSmeshers ...

func (*Cluster) Address

func (a *Cluster) Address(i int) types.Address

func (*Cluster) Bootnodes

func (c *Cluster) Bootnodes() int

Bootnodes returns number of the bootnodes in the cluster.

func (*Cluster) Bootstrapper

func (c *Cluster) Bootstrapper(i int) *NodeClient

func (*Cluster) Client

func (c *Cluster) Client(i int) *NodeClient

Client returns client for i-th node, either bootnode or smesher.

func (*Cluster) CloseClients

func (c *Cluster) CloseClients()

CloseClients closes connections to clients.

func (*Cluster) DeleteBootstrappers

func (c *Cluster) DeleteBootstrappers(cctx *testcontext.Context) error

func (*Cluster) DeletePoet

func (c *Cluster) DeletePoet(cctx *testcontext.Context, i int) error

func (*Cluster) DeletePoets

func (c *Cluster) DeletePoets(cctx *testcontext.Context) error

DeletePoets delete all poet servers.

func (*Cluster) DeleteSmesher

func (c *Cluster) DeleteSmesher(cctx *testcontext.Context, node *NodeClient) error

DeleteSmesher will smesher i from the cluster.

func (*Cluster) Genesis added in v1.4.0

func (c *Cluster) Genesis() time.Time

func (*Cluster) GenesisExtraData added in v1.4.0

func (c *Cluster) GenesisExtraData() string

func (*Cluster) GenesisID

func (c *Cluster) GenesisID() types.Hash20

GenesisID computes id from the configuration.

func (*Cluster) GoldenATX added in v1.4.0

func (c *Cluster) GoldenATX() types.ATXID

func (*Cluster) NodeConfig added in v1.4.0

func (c *Cluster) NodeConfig(ctx *testcontext.Context) (*config.Config, error)

func (*Cluster) Persist

func (a *Cluster) Persist(ctx *testcontext.Context) error

func (*Cluster) Poet

func (c *Cluster) Poet(i int) *NodeClient

Poet returns client for i-th poet node.

func (*Cluster) Poets

func (c *Cluster) Poets() int

Poets returns total number of poet servers.

func (*Cluster) Private

func (a *Cluster) Private(i int) ed25519.PrivateKey

func (*Cluster) Recover

func (a *Cluster) Recover(ctx *testcontext.Context) error

func (*Cluster) Smeshers added in v1.6.0

func (c *Cluster) Smeshers() int

Smeshers returns number of the smeshers in the cluster.

func (*Cluster) Total

func (c *Cluster) Total() int

Total returns total number of clients.

func (*Cluster) Wait

func (c *Cluster) Wait(tctx *testcontext.Context, i int) error

Wait for i-th client to be up.

func (*Cluster) WaitAll

func (c *Cluster) WaitAll(ctx context.Context) error

WaitAll waits till (bootnode, smesher, poet, bootstrapper) pods are up.

func (*Cluster) WaitAllTimeout

func (c *Cluster) WaitAllTimeout(timeout time.Duration) error

type DeploymentFlag

type DeploymentFlag struct {
	Name, Value string
}

DeploymentFlag allows to configure specific flags for application binaries.

func Accounts

func Accounts(accounts map[string]uint64) DeploymentFlag

Accounts flag.

func Bootnode added in v1.0.7

func Bootnode() DeploymentFlag

func Bootnodes

func Bootnodes(bootnodes ...string) DeploymentFlag

Bootnodes flag.

func BootstrapperUrl

func BootstrapperUrl(endpoint string) DeploymentFlag

func CheckpointLayer

func CheckpointLayer(restoreLayer uint32) DeploymentFlag

func CheckpointUrl

func CheckpointUrl(endpoint string) DeploymentFlag

func DurationFlag

func DurationFlag(flag string, d time.Duration) DeploymentFlag

DurationFlag is a generic duration flag.

func GenerateFallback

func GenerateFallback() DeploymentFlag

func GenesisExtraData

func GenesisExtraData(extra string) DeploymentFlag

GenesisExtraData flag.

func GenesisTime

func GenesisTime(t time.Time) DeploymentFlag

GenesisTime flag.

func MinPeers

func MinPeers(target int) DeploymentFlag

MinPeers flag.

func PoetCertifierPubkey added in v1.6.0

func PoetCertifierPubkey(key string) DeploymentFlag

func PoetCertifierURL added in v1.6.0

func PoetCertifierURL(url string) DeploymentFlag

func PoetEndpoints added in v1.4.0

func PoetEndpoints(ids ...int) DeploymentFlag

func PoetRestListen

func PoetRestListen(port int) DeploymentFlag

PoetRestListen socket pair with http api.

func PostK3 added in v1.4.0

func PostK3(k3 int) DeploymentFlag

func PrivateNetwork added in v1.0.7

func PrivateNetwork() DeploymentFlag

func StartSmeshing

func StartSmeshing(start bool) DeploymentFlag

func (DeploymentFlag) Flag

func (d DeploymentFlag) Flag() string

Flag returns parseable flag from Name and Value.

type DeploymentOpt

type DeploymentOpt func(cfg *SmesherDeploymentConfig)

func NoDefaultPoets added in v1.3.0

func NoDefaultPoets() DeploymentOpt

func WithFlags

func WithFlags(flags ...DeploymentFlag) DeploymentOpt

func WithSmeshers

func WithSmeshers(keys []ed25519.PrivateKey) DeploymentOpt

type GenAccount

type GenAccount struct {
	Address types.Address
	Balance uint64
}

type Node

type Node struct {
	Name                     string
	P2P, GRPC_PUB, GRPC_PRIV uint16
}

Node ...

type NodeClient

type NodeClient struct {
	Node
	// contains filtered or unexported fields
}

NodeClient is a Node with attached grpc connection.

func (*NodeClient) Close

func (n *NodeClient) Close()

func (*NodeClient) PrivConn added in v1.3.0

func (n *NodeClient) PrivConn() *PrivNodeClient

func (*NodeClient) PubConn added in v1.3.0

func (n *NodeClient) PubConn() *PubNodeClient

func (*NodeClient) Resolve

func (n *NodeClient) Resolve(ctx context.Context) (string, error)

type Opt

type Opt func(c *Cluster)

Opt is for configuring cluster.

func WithBootstrapEpochs

func WithBootstrapEpochs(epochs []int) Opt

func WithBootstrapperFlag

func WithBootstrapperFlag(flag DeploymentFlag) Opt

func WithGenesisBalances

func WithGenesisBalances(gaccs ...GenAccount) Opt

func WithKeys

func WithKeys(n int) Opt

WithKeys generates n prefunded keys.

func WithSmesherFlag

func WithSmesherFlag(flag DeploymentFlag) Opt

WithSmesherFlag adds smesher flag.

type PrivNodeClient added in v1.3.0

type PrivNodeClient struct {
	*NodeClient
}

func (*PrivNodeClient) Invoke added in v1.3.0

func (n *PrivNodeClient) Invoke(ctx context.Context, method string, args, reply any, opts ...grpc.CallOption) error

func (*PrivNodeClient) NewStream added in v1.3.0

func (n *PrivNodeClient) NewStream(
	ctx context.Context,
	desc *grpc.StreamDesc,
	method string,
	opts ...grpc.CallOption,
) (grpc.ClientStream, error)

type PubNodeClient added in v1.3.0

type PubNodeClient struct {
	*NodeClient
}

func (*PubNodeClient) Invoke added in v1.3.0

func (n *PubNodeClient) Invoke(ctx context.Context, method string, args, reply any, opts ...grpc.CallOption) error

func (*PubNodeClient) NewStream added in v1.3.0

func (n *PubNodeClient) NewStream(
	ctx context.Context,
	desc *grpc.StreamDesc,
	method string,
	opts ...grpc.CallOption,
) (grpc.ClientStream, error)

type SmesherDeploymentConfig

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

Jump to

Keyboard shortcuts

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