hashgraph / hedera-sdk-rust

The Hedera™ Rust SDK
Apache License 2.0
42 stars 14 forks source link

Test `NodeCreateTransaction` with Solo #853

Open SimiHunjan opened 1 month ago

SimiHunjan commented 1 month ago

Problem

Test SDK NodeCreateTransaction with Solo

git clone git@github.com:hashgraph/solo.git

Navigate to that directory and install node dependencies:

npm install Setup a network with 3 nodes running v0.54.0-alpha-4 of services:

export SOLO_CLUSTER_NAME=solo-e2e
export SOLO_NAMESPACE=solo-e2e
export SOLO_CLUSTER_SETUP_NAMESPACE=fullstack-setup
kind create cluster -n "${SOLO_CLUSTER_NAME}"
npm run solo -- init --namespace "${SOLO_NAMESPACE}" -i node1,node2,node3 -t v0.54.0-alpha.4 -s "${SOLO_CLUSTER_SETUP_NAMESPACE}"
npm run solo -- node keys --gossip-keys --tls-keys
npm run solo -- cluster setup
npm run solo -- network deploy --pvcs true
npm run solo -- node setup
npm run solo -- node start

To add a new node in the old way you can use the node add command:

npm run solo -- node add --gossip-keys true --tls-keys true --release-tag v0.54.0-alpha.4 --namespace solo-e2e

This is the new way to add a node. We split the flow into three separate commands, which can be executed individually: solo node add-prepare is used to initiate the procedure. It prepares some data and outputs it to the specified directory by --output-dir:

npm run solo -- node add-prepare --gossip-keys true --tls-keys true --release-tag v0.54.0-alpha.4 --namespace solo-e2e --output-dir context

solo node add-submit-transactions uses the js SDK to submit transactions to the existing nodes. It sends a NodeCreateTransaction and FreezeTransaction transactions with types FreezeType.PrepareUpgrade and FreezeType.FreezeUpgrade. You can skip this command if you need to execute those transactions with a different script or a different SDK client.

npm run solo -- node add-submit-transactions --input-dir context solo node add-execute finishes the procedure by creating a pod for the newly added node, restarts all nodes, upgrades the software version running on all of them and adds a stake for the new node.

npm run solo -- node add-execute --input-dir context

Solution

Test SDK NodeCreateTransaction with Solo

Alternatives

No response