Here you will find instructions to create a private channel using Tessera on Kubernetes.
Recommended hardware features for Tessera node:
|4 vCPUs compute optimized
|200 GB SSD
|300 GB SSD
|70,000 IOPS READ 50,000 IOPS WRITE
Kubernetes: Google Kubernestes Engine GKE.
It is necessary to enable the following network ports in the machine in which we are going to deploy the node:
Tessera Node (Optional component for private transactions):
For this installation we will use Kubectl. It is necessary to install Kubectl on a local machine that will perform the installation of the node on a kubernetes cluster. Following the instructions to install kubectl in your local machine.
For this installation we will use Helm. It is necessary to install helm on a local machine that will perform the installation of the node on a kubernetes cluster. Following the instructions to install helm in your local machine.
To configure and install Besu and Tessera, you must clone this git repository in your local machine.
$ git clone https://github.com/LACNetNetworks/besu-networks
$ cd besu-networks/helm/
You need to set the values in tessera.yml. The values you have to set are in the deploy section. These are the following:
TCP Public IP Ingress: Generate a static public IP in your cloud provider. Then replace the public ip in the load balance (loadBalancerIP) service manifest. finally update the publicIP environment variable with this IP.
P2P Public IP Egress: Outgoing p2p traffic to synchronize besu nodes. This is the permissioned IP for the network. Therefore, the pod must always be installed on the same worker node so that the IP does not change. We obtain the name and IP of the cluster nodes with the following command.
$ kubectl get nodes -o wide
We choose a worker and update the “nodeName” value in the manifest of the pod we are going to deploy. finally update the p2p – host environment variable with worker IP external .
Note: We validate that the pod has been deployed in the selected worker with the following command.
$ kubectl get pod -o wide
Depending type node you want to deploy, you need execute the following command (this deployment is compalitible only Google Kubernestes Engine GKE):
To deploy a Node Tessera
$ helm install
./charts/besu-node --namespace --create-namespace --values ./values/tessera.yml
e.g. deploy Node Writer on Mainnet-Omega network
$ helm install lacnet-writer-1 ./charts/besu-node --namespace lacchain-main-net --create-namespace --values ./values/writer.yml
At the end of the installation, if everything worked a BESU service will be created managed by Systemctl with Running status. Aditional objects created are namespace, service load balancer, configmap, and volume.
Now you can check log node Tessera:
$ kubectl logs
-c -f -n
You should get something like this:
If you need to update the node, try redeploy the Tessera node, run:
$ $ helm upgrade
./charts/besu-node --namespace --values ./values/tessera.yml
If any of these two checks doesn’t work, try to restart the Tessera pod:
$ kubectl delete pod