subnet

package
v0.0.0-...-d0c3903 Latest Latest
Warning

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

Go to latest
Published: Jul 15, 2023 License: BSD-3-Clause Imports: 42 Imported by: 0

Documentation

Overview

Copyright (C) 2022, Ava Labs, Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2022, Ava Labs, Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2022, Ava Labs, Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2022, Ava Labs, Inc. All rights reserved. See the file LICENSE for licensing terms.

Index

Constants

View Source
const (
	WriteReadReadPerms = 0o644
)

Variables

View Source
var ErrNoSubnetAuthKeysInWallet = errors.New("wallet does not contain subnet auth keys")

Functions

func GetFirstEndpoint

func GetFirstEndpoint(clusterInfo *rpcpb.ClusterInfo, chain string) string

GetFirstEndpoint get a human readable endpoint for the given chain

func GetLocallyDeployedSubnets

func GetLocallyDeployedSubnets() (map[string]struct{}, error)

Returns an error if the server cannot be contacted. You may want to ignore this error.

func GetOwners

func GetOwners(network models.Network, subnetID ids.ID) ([]string, uint32, error)

func HasEndpoints

func HasEndpoints(clusterInfo *rpcpb.ClusterInfo) bool

HasEndpoints returns true if cluster info contains custom blockchains

func SetDefaultSnapshot

func SetDefaultSnapshot(snapshotsDir string, force bool) error

Initialize default snapshot with bootstrap snapshot archive If force flag is set to true, overwrite the default snapshot if it exists

func WaitForHealthy

func WaitForHealthy(
	ctx context.Context,
	cli client.Client,
) (*rpcpb.ClusterInfo, error)

WaitForHealthy polls continuously until the network is ready to be used

Types

type LocalDeployer

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

func NewLocalDeployer

func NewLocalDeployer(app *application.Avalanche, avagoVersion string, vmBin string) *LocalDeployer

func (*LocalDeployer) BackendStartedHere

func (d *LocalDeployer) BackendStartedHere() bool

BackendStartedHere returns true if the backend was started by this run, or false if it found it there already

func (*LocalDeployer) DeployToLocalNetwork

func (d *LocalDeployer) DeployToLocalNetwork(chain string, chainGenesis []byte, genesisPath string) (ids.ID, ids.ID, error)

DeployToLocalNetwork does the heavy lifting: * it checks the gRPC is running, if not, it starts it * kicks off the actual deployment

func (*LocalDeployer) SetupLocalEnv

func (d *LocalDeployer) SetupLocalEnv() (string, error)

SetupLocalEnv also does some heavy lifting: * sets up default snapshot if not installed * checks if dijetsnode is installed in the local binary path * if not, it downloads it and installs it (os - and archive dependent) * returns the location of the dijetsnode path

func (*LocalDeployer) StartServer

func (d *LocalDeployer) StartServer() error

type PublicDeployer

type PublicDeployer struct {
	LocalDeployer
	// contains filtered or unexported fields
}

func NewPublicDeployer

func NewPublicDeployer(app *application.Avalanche, usingLedger bool, kc keychain.Keychain, network models.Network) *PublicDeployer

func (*PublicDeployer) AddValidator

func (d *PublicDeployer) AddValidator(
	subnetAuthKeysStrs []string,
	subnet ids.ID,
	nodeID ids.NodeID,
	weight uint64,
	startTime time.Time,
	duration time.Duration,
) (bool, *txs.Tx, error)

adds a subnet validator to the given subnet - verifies that the wallet is one of the subnet auth keys (so as to sign the AddSubnetValidator tx) - if operation is multisig (len(subnetAuthKeysStrs) > 1):

  • creates an add subnet validator tx
  • sets the change output owner to be a wallet address (if not, it may go to any other subnet auth address)
  • signs the tx with the wallet as the owner of fee outputs and one of the subnet auth keys
  • returns the tx so that it can be later on be signed by the rest of the subnet auth keys

- if operation is not multisig (len(subnetAuthKeysStrs) == 1):

  • creates and issues an add validator tx, signing the tx with the wallet as the owner of fee outputs and the only one subnet auth key

func (*PublicDeployer) Commit

func (d *PublicDeployer) Commit(
	tx *txs.Tx,
) (ids.ID, error)

func (*PublicDeployer) Deploy

func (d *PublicDeployer) Deploy(
	controlKeys []string,
	subnetAuthKeysStrs []string,
	threshold uint32,
	chain string,
	genesis []byte,
) (bool, ids.ID, ids.ID, *txs.Tx, error)

deploys the given [chain] - verifies that the wallet is one of the subnet auth keys (so as to sign the CreateBlockchain tx) - creates a subnet using the given [controlKeys] and [threshold] as subnet authentication parameters - if operation is multisig (len(subnetAuthKeysStrs) > 1):

  • creates a blockchain tx
  • sets the change output owner to be a wallet address (if not, it may go to any other subnet auth address)
  • signs the tx with the wallet as the owner of fee outputs and one of the subnet auth keys
  • returns the tx so that it can be later on be signed by the rest of the subnet auth keys

- if operation is not multisig (len(subnetAuthKeysStrs) == 1):

  • creates and issues a blockchain tx, signing the tx with the wallet as the owner of fee outputs and the only one subnet auth key
  • returns the blockchain tx id

func (*PublicDeployer) Sign

func (d *PublicDeployer) Sign(
	tx *txs.Tx,
	subnetAuthKeysStrs []string,
	subnet ids.ID,
) error

type Publisher

type Publisher interface {
	Publish(r *git.Repository, subnetName, vmName string, subnetYAML []byte, vmYAML []byte) error
	GetRepo() (*git.Repository, error)
}

func NewPublisher

func NewPublisher(repoDir, repoURL, alias string) Publisher

Jump to

Keyboard shortcuts

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