Documentation ¶
Index ¶
- Constants
- Variables
- func ConstructWireFrame(cmd topics.Topic, payload *bytes.Buffer) ([]byte, error)
- func Profile1(index int, node *DuskNode, consensusKeysPath string)
- func Profile2(index int, node *DuskNode, walletPath string)
- func Profile3(index int, node *DuskNode, walletPath string)
- func Profile4(index int, node *DuskNode, walletPath string)
- func WriteFrame(buf *bytes.Buffer) (*bytes.Buffer, error)
- type DuskNode
- type GrpcClient
- type Network
- func (n *Network) AddGrpcClient(nodeID, network, addr string)
- func (n *Network) AddNode(node *DuskNode)
- func (n *Network) BatchSendTransferTx(t *testing.T, senderNodeInd uint, batchSize uint, amount, fee uint64, ...) error
- func (n *Network) Bootstrap(workspace string) error
- func (n *Network) CalculateTPS(ind uint) (uint64, float32, int64, int, error)
- func (n *Network) GetBalance(ind uint) (uint64, uint64, error)
- func (n *Network) GetGrpcConn(i uint, opts ...grpc.DialOption) (*grpc.ClientConn, error)
- func (n *Network) GetLastBlockHeight(ind uint) (uint64, error)
- func (n *Network) GetWalletAddress(ind uint) (string, []byte, error)
- func (n *Network) IsSessionRequired() bool
- func (n *Network) IsSynced(threshold uint64) (uint64, error)
- func (n *Network) MonitorTPS(delay time.Duration)
- func (n *Network) PrintWalletsInfo(t *testing.T)
- func (n *Network) PublishTopic(nodeIndex uint, topic, payload string) error
- func (n *Network) SendBidCmd(ind uint, amount, locktime uint64) ([]byte, error)
- func (n *Network) SendQuery(nodeIndex uint, query string, result interface{}) error
- func (n *Network) SendStakeCmd(ind uint, amount, locktime uint64) ([]byte, error)
- func (n *Network) SendTransferTxCmd(senderNodeInd, recvNodeInd uint, amount, fee uint64) ([]byte, error)
- func (n *Network) SendWireMsg(ind uint, msg []byte, writeTimeout int) error
- func (n *Network) Size() int
- func (n *Network) StartNode(i int, node *DuskNode, workspace string) error
- func (n *Network) Teardown()
- func (n *Network) WaitUntil(t *testing.T, ind uint, targetHeight uint64, waitFor time.Duration, ...)
- func (n *Network) WaitUntilTx(t *testing.T, ind uint, txID string) string
- type Profiles
Constants ¶
const ( // GossipNetwork Gossip network type. GossipNetwork = byte(0) // KadcastNetwork Kadcast network type. KadcastNetwork = byte(1) )
Variables ¶
var ( // EnableHarness a test CLI param to enable harness bootstrapping. EnableHarness = flag.Bool("enable", false, "Enable Test Harness bootstrapping") // RPCNetworkType a test CLI param to set jsonrpc network type (unix or tcp). RPCNetworkType = flag.String("rpc_transport", "unix", "JSON-RPC transport type (unix/tcp)") // KeepAlive a test CLI param to keep harness running even after all tests have passed. // It's useful when additional manual tests should be done. KeepAlive = flag.Bool("keepalive", false, "Keep Test Harness alive after tests pass") // ErrDisabledHarness yields a disabled test harness. ErrDisabledHarness = errors.New("disabled test harness") // MOCK_ADDRESS is optional string for the mock address to listen to, eg: 127.0.0.1:8080. MOCK_ADDRESS = os.Getenv("MOCK_ADDRESS") // REQUIRE_SESSION is a flag to set the GRPC session. REQUIRE_SESSION = os.Getenv("REQUIRE_SESSION") // RUSK_EXE_PATH path to rusk executable. RUSK_EXE_PATH = os.Getenv("RUSK_PATH") )
Functions ¶
func ConstructWireFrame ¶
ConstructWireFrame creates a frame according to the wire protocol.
Types ¶
type DuskNode ¶
type DuskNode struct { Id string //nolint ConfigProfileID string // Fields represents a dusk-blockchain instance. Cfg config.Registry Gql *graphql.Client GRPCClient *client.NodeClient // Dusk-blockchain node directory. Dir string }
DuskNode is the struct representing a node instance in the local Network.
type GrpcClient ¶ added in v0.4.0
type GrpcClient interface { // GetSessionConn returns a connection to the grpc server. GetSessionConn(options ...grpc.DialOption) (*grpc.ClientConn, error) // GracefulClose closes the connection. GracefulClose(options ...grpc.DialOption) }
GrpcClient is an interface that abstracts the way to connect to the grpc server (i.e. with or without a session).
type Network ¶
Network describes the current network configuration in terms of nodes and processes.
func (*Network) AddGrpcClient ¶ added in v0.4.0
AddGrpcClient creates the right grpc client linked to the node through the Id of the latter.
func (*Network) BatchSendTransferTx ¶ added in v0.4.3
func (n *Network) BatchSendTransferTx(t *testing.T, senderNodeInd uint, batchSize uint, amount, fee uint64, timeout time.Duration) error
BatchSendTransferTx sends a transfer call from node of index senderNodeInd to senderNodeInd+1 node.
func (*Network) Bootstrap ¶
Bootstrap performs all actions needed to initialize and start a local network. This network is alive by the end of all tests execution.
func (*Network) CalculateTPS ¶ added in v0.4.3
CalculateTPS makes an attempt to fetch last block height of a specified node.
func (*Network) GetBalance ¶ added in v0.4.0
GetBalance makes an attempt to get wallet balance of a specified node. Returns both UnlockedBalance and LockedBalance.
func (*Network) GetGrpcConn ¶ added in v0.4.0
func (n *Network) GetGrpcConn(i uint, opts ...grpc.DialOption) (*grpc.ClientConn, error)
GetGrpcConn gets a connection to the GRPC server of a node. It delegates eventual sessions to the underlying client.
func (*Network) GetLastBlockHeight ¶ added in v0.4.0
GetLastBlockHeight makes an attempt to fetch last block height of a specified node.
func (*Network) GetWalletAddress ¶ added in v0.4.0
GetWalletAddress makes an attempt to get wallet address of a specified node.
func (*Network) IsSessionRequired ¶ added in v0.4.0
IsSessionRequired returns whether a session is required or otherwise.
func (*Network) IsSynced ¶ added in v0.4.0
IsSynced checks if each node blockchain tip is close to the blockchain tip of node 0. threshold param is the number of blocks the last block can differ.
func (*Network) MonitorTPS ¶ added in v0.4.3
MonitorTPS tries to measure network TPS each N seconds.
func (*Network) PrintWalletsInfo ¶ added in v0.4.0
PrintWalletsInfo prints wallet address and balance of all network nodes.
func (*Network) PublishTopic ¶
nolint PublishTopic publishes an event bus topic to the specified node via rpc call.
func (*Network) SendBidCmd ¶ added in v0.3.0
SendBidCmd sends gRPC command SendBid and returns tx hash.
func (*Network) SendStakeCmd ¶ added in v0.4.0
SendStakeCmd sends gRPC command SendStake and returns tx hash.
func (*Network) SendTransferTxCmd ¶ added in v0.4.0
func (n *Network) SendTransferTxCmd(senderNodeInd, recvNodeInd uint, amount, fee uint64) ([]byte, error)
SendTransferTxCmd sends gRPC command SendTransfer and returns tx hash.
func (*Network) SendWireMsg ¶
SendWireMsg sends a P2P message to the specified network node. Message should be in form of topic id + marshaled payload.
The utility sets up a valid inbound peer connection with a localnet node. After the handshake procedure, it writes the message to the Peer connection.