Installation Guide¶
Pre-requisites¶
Quick Start with kind¶
If you are new to Kubernetes or simply need a quick way to get a running cluster, kind provides a lightweight way to run a local Kubernetes cluster on your machine. This repo contains a starter config file for kind which will open up the container ports used by the Paladin charts below.
You can create a new cluster with:
curl https://raw.githubusercontent.com/LF-Decentralized-Trust-labs/paladin/refs/heads/main/operator/paladin-kind.yaml -L -O
kind create cluster --name paladin --config paladin-kind.yaml
If you need to start over, you can delete the cluster with:
This guide is not intended to be a full tutorial on kind or Kubernetes - please refer to the relevant documentation for any issues with these tools.
Installation¶
Step 1: Install the CRD Chart¶
Install the CRD chart that contains the necessary Custom Resource Definitions (CRDs) for the Paladin operator:
helm repo add paladin https://LF-Decentralized-Trust-labs.github.io/paladin --force-update
helm upgrade --install paladin-crds paladin/paladin-operator-crd
Step 2: Install cert-manager CRDs¶
Install the cert-manager CRDs:
helm repo add jetstack https://charts.jetstack.io --force-update
helm install cert-manager --namespace cert-manager --version v1.16.1 jetstack/cert-manager --create-namespace --set crds.enabled=true
Step 3: Install the Paladin Operator Chart¶
Install the Paladin operator chart:
Outcome¶
This process will:
- Install the cert-manager chart.
- Install the paladin-operator chart.
- Create a Besu network with 3 nodes.
- Create a Paladin network with 3 nodes, each associated with one of the Besu nodes.
- Deploy smart contracts to the blockchain.
You can verify the running pods with:
See output
Check service details with:
See output
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
besu-node1 NodePort 10.96.83.214 <none> 8547:31547/TCP,30303:31627/TCP,30303:31627/UDP,8545:31545/TCP,8546:31546/TCP 6m53s
besu-node2 NodePort 10.96.73.13 <none> 8547:31647/TCP,30303:32690/TCP,30303:32690/UDP,8545:31645/TCP,8546:31646/TCP 6m53s
besu-node3 NodePort 10.96.22.234 <none> 8547:31747/TCP,30303:31724/TCP,30303:31724/UDP,8545:31745/TCP,8546:31746/TCP 6m53s
paladin-node1 NodePort 10.96.174.16 <none> 8548:31548/TCP,8549:31549/TCP,9000:31702/TCP 6m54s
paladin-node2 NodePort 10.96.15.53 <none> 8548:31648/TCP,8549:31649/TCP,9000:32414/TCP 6m54s
paladin-node3 NodePort 10.96.130.13 <none> 8548:31748/TCP,8549:31749/TCP,9000:30324/TCP 6m52s
paladin-operator ClusterIP 10.96.134.58 <none> 80/TCP 7m4s
Check the status of the smart contract deployments with:
See output
NAME STATUS DEPS TRANSACTIONID CONTRACT TXHASH FAILURE
noto-factory Success 0/0 37bdf054-1586-4fbf-8fb1-8ba82e804b03 0x097e199bb09c67fa1a70f8faabd6bb6f73b46b1b 0x101d18edc452cdfb7708482a82931c008e7614ff6c827b6ecf19e603f28bd64e
pente-factory Success 0/0 5cb8afba-6d6b-4c69-86d1-dced6d66e72b 0x1d9490417b1aa097ea4ed5a2c7461a91a24e1b94 0x2c6ab8d2815f7ecca8f5455a279d9f318cc73812fe4e8527dfa60d3faf01fb5c
registry Success 0/0 cb6c4d54-6cbb-459e-92fb-d9a4b1253008 0x8e4368f9cff103257fc0d3fee65de96da476f402 0x6a524eee8f9c3f728b8c55ef128da81658e022e01f68dd7f09a907cd0b41792b
zeto-factory Success 0/0 1956cd0d-57df-4ead-938d-6b2ca7c3af24 0xbe51a4d2a77dab8523062f36310cadb9491e212f 0xe47fd55373bf2c5e088c22535fb27c171db879150ca9b81743482a6dbe51b82b
zeto-g16-check-hashes-value Success 0/0 bb89354d-d33b-4918-a76e-815204ae621f 0xce09a6f94fedbf7797aadedc607485afb3f12ae0 0xd63f0105c02473910ec7ad43d8f19907ab08c6909eefc77ece4b2815a03c74a8
zeto-g16-check-inputs-outputs Success 0/0 e0793bf5-5daa-499e-a999-1d054b0c09cf 0x16a030887b97b7d5425159478f5545f5d37370f1 0x2f1f000f08e0189e2aa6b806d0e672dc5b6df1f1f009bf8792994d7b92b3ee18
zeto-g16-check-inputs-outputs-batch Success 0/0 20d75131-7de9-4378-aa24-27a6788e9efe 0xacdc6af26b831a9307125e4e1ec0a5601eae6f0a 0x7dc9999281ad5d3b27408893d64ba4c7550292b64c3134d3733cbc110b6245f5
zeto-g16-verifier-anon Success 0/0 714cddd9-7479-4d18-8554-fd9cb49d6047 0x76da65751f561b35a7befe3c8b7f1ba1d5617882 0xc9b5fef8c99319f84a14330ebd6e4778994bdea2857a65a404920d7a2c8c838d
zeto-g16-verifier-anon-batch Success 0/0 5037f730-cc9e-4875-8a11-428be74855ae 0x65e9b3b755d551b1a938aae02154118bfb2e7d5c 0xf1ee595b494927ca50122c9893a8acfdf93d74c6e53fd04be3b3da5f840f8a4b
zeto-g16-verifier-anon-enc Success 0/0 906b8cd2-40c1-4992-8fe8-1e696eaf9d70 0x99287a67da14dd77d21a15536b7e3671f9a51772 0x38ae90890d20c43cfc25a05a36dd5e9b9085ba13578585b04f76c2bf7cc02ab3
zeto-g16-verifier-anon-enc-batch Success 0/0 1b1a9713-a695-499f-a28c-c8b02f74ab82 0x1bcaff14e2c1652e2b552b0ee31c77223301b8e1 0x5f826fe4fe871afdd2214608fefda755997baffc7d110a5a1d44b81b65c9fdb9
zeto-g16-verifier-anon-nullifier Success 0/0 e0c2a915-7b1f-43e4-a485-de2ae119e472 0x4c1f4a2d0789a74a1814101c223ce839c6f9d506 0x71ec84c3647a6d0de12fe3dcf8165cb10a06e110cdabc7d873fe5929110bb76b
zeto-g16-verifier-anon-nullifier-batch Success 0/0 b533c381-9c68-499e-80e0-2d97a69ee530 0xf88b34f7fe5a5c5d6b3d08e555ba22560ecbb59a 0x453e5ddcb77f6462d8aad9b1e68d6b979b8d454c330f8faae10cbd1f1a7c0b1c
zeto-impl-anon Success 0/0 22c9cf3a-2219-4b6d-aa63-3657a480c611 0x600bfecadf35e5d88c6672dbfd9b1ed4d9e28845 0xe7e7ab84afb10e4a4086096fc4f6a96b1119b52a5560b3a90a18f34f8b8dbf93
zeto-impl-anon-enc Success 0/0 e39b026a-1f74-4d9d-af6b-269ccebb8dc0 0xf4cdfd7ff695500eb2a28430d59958a36d06fe54 0x854e8f34791243c9672c02d962ed23d4df6b8f6e679881961badcc430ceed855
zeto-impl-anon-nullifier Success 2/2 2d1d51d6-a16f-4745-bfff-9eeaeb9ae06e 0xc423ccfec92822b3354dd540fa8fa4b6b5bbd923 0x43698f6172c2be0daaa149ee5cad8c547a9ba06de1d6e0492aaf5f49516d583f
zeto-poseidon-unit2l Success 0/0 d40f7043-300e-4345-981d-08470514ac34 0xa74a67ed2eaa058aaa640168e7738ac9de73804e 0x8138c9ce405e56c72c6da6cac2f549a0d36b5c9443c154e49d96f1bedbbce8ca
zeto-poseidon-unit3l Success 0/0 f8c5de8b-dfa3-4c0e-b3b1-9cdafbb25b54 0x01b3139005de155632fb52107757b1688b937ed1 0x859a12b1705c7e061a288857d4ad9c4a27b42ca6d9fd3804a1fdaa2c11b3cc38
zeto-smt-lib Success 2/2 ac199436-51a4-4d91-98a3-b80b8074e3a8 0xf79adb0e771c08783d79cc223ec2be29166e8858 0x6ed5ee88c82d7f8c0ef9c56976d9f274c9a5ce5e575a9932be49b118cbdb502a
Check the status of Paladin nodes publishing registration details to one another:
Accessing the UI¶
Each Paladin node runs an instance of the Paladin UI at the path /ui
. If you used the provided kind config
(or a similar port mapping), you should be able to access the UI for each node:
Learn about interacting with the UI, and try out the Tutorials.
Uninstall¶
To remove the Paladin operator and related resources, run the following commands: