fabric-samples/test-network-k8s/README.md
Josh Kneubuhl a02320e1cc Move the DNS quickstart section into the prereqs
Signed-off-by: Josh Kneubuhl <jkneubuh@us.ibm.com>
2022-05-09 13:43:13 -04:00

3.1 KiB

Kubernetes Test Network

This project re-establishes the Hyperledger test-network as a cloud native application.

Objectives:

  • Provide a simple, one click activity for running the Fabric test network.
  • Provide a reference guide for deploying production-style networks on Kubernetes.
  • Provide a cloud ready platform for developing chaincode, Gateway, and blockchain apps.
  • Provide a Kube supplement to the Fabric CA Operations and Deployment guides.
  • Support a transition to Chaincode as a Service.
  • Support a transition from the Internal, Docker daemon to External Chaincode builders.
  • Run on any Kube.

Fabric, Ahoy!

Prerequisites

  • kubectl
  • Docker
  • K8s: kind or Rancher / k3s
  • jq
  • envsubst (brew install gettext on OSX)
  • DNS domain alias: Fabric services are exposed by Kubernetes Ingress at the fictitious DNS domain *.local.fabric. Add the following aliases to your /etc/hosts file:
127.0.0.1 org0-ca.local.fabric
127.0.0.1 org1-ca.local.fabric
127.0.0.1 org2-ca.local.fabric
127.0.0.1 org0-orderer1.local.fabric
127.0.0.1 org0-orderer2.local.fabric
127.0.0.1 org0-orderer3.local.fabric
127.0.0.1 org1-peer1.local.fabric
127.0.0.1 org1-peer2.local.fabric
127.0.0.1 org2-peer1.local.fabric
127.0.0.1 org2-peer2.local.fabric

Quickstart

Create a KIND Kubernetes:

./network kind

For environments running Rancher k3s:

export TEST_NETWORK_CLUSTER_RUNTIME=k3s

./network cluster-init 

Launch the network, create a channel, and deploy the basic-asset-transfer smart contract:

./network up
./network channel create

./network chaincode deploy asset-transfer-basic basic_1.0 $PWD/../asset-transfer-basic/chaincode-java

Invoke and query chaincode:

./network chaincode invoke asset-transfer-basic '{"Args":["CreateAsset","1","blue","35","tom","1000"]}' 
./network chaincode query  asset-transfer-basic '{"Args":["ReadAsset","1"]}'

Access the blockchain with a REST API:

./network rest-easy

Tear down the test network:

./network down 

Tear down the cluster:

./network unkind

Detailed Guides