mirror of
https://github.com/hyperledger/fabric-samples.git
synced 2026-06-17 07:25:10 +00:00
|
Some checks failed
Lint 🎉 / go (push) Has been cancelled
Lint 🎉 / typescript (push) Has been cancelled
Lint 🎉 / javascript (push) Has been cancelled
Lint 🎉 / java (push) Has been cancelled
Lint 🎉 / shell (push) Has been cancelled
Test High Throughput / basic (push) Has been cancelled
Test Network Basic 🔎 / basic (go) (push) Has been cancelled
Test Network Basic 🔎 / basic (java) (push) Has been cancelled
Test Network Basic 🔎 / basic (javascript) (push) Has been cancelled
Test Network Basic 🔎 / basic (typescript) (push) Has been cancelled
Test Network BFT Orderer 🍟 / basic (go, ca) (push) Has been cancelled
Test Network BFT Orderer 🍟 / basic (go, cryptogen) (push) Has been cancelled
Test Network BFT Orderer 🍟 / basic (java, ca) (push) Has been cancelled
Test Network BFT Orderer 🍟 / basic (java, cryptogen) (push) Has been cancelled
Test Network BFT Orderer 🍟 / basic (javascript, ca) (push) Has been cancelled
Test Network BFT Orderer 🍟 / basic (javascript, cryptogen) (push) Has been cancelled
Test Network BFT Orderer 🍟 / basic (typescript, ca) (push) Has been cancelled
Test Network BFT Orderer 🍟 / basic (typescript, cryptogen) (push) Has been cancelled
Test Network Events 💡 / events (go, events) (push) Has been cancelled
Test Network Events 💡 / events (java, events) (push) Has been cancelled
Test Network Events 💡 / events (javascript, events) (push) Has been cancelled
Test Network HSM 🍏 / hsm (go) (push) Has been cancelled
Test Network HSM 🍏 / hsm (java) (push) Has been cancelled
Test Network HSM 🍏 / hsm (javascript) (push) Has been cancelled
Test Network HSM 🍏 / hsm (typescript) (push) Has been cancelled
Kubernetes Test Network 🍒 / ccaas-java (push) Has been cancelled
Kubernetes Test Network 🍒 / ccaas-external (push) Has been cancelled
Kubernetes Test Network 🍒 / k8s-builder (push) Has been cancelled
Kubernetes Test Network 🍒 / multi-namespace (push) Has been cancelled
Kubernetes Test Network 🍒 / bft-orderer (push) Has been cancelled
Test Network Ledger 🥑 / basic (go, ledger) (push) Has been cancelled
Test Network Ledger 🥑 / basic (javascript, ledger) (push) Has been cancelled
Test Network Ledger 🥑 / basic (typescript, ledger) (push) Has been cancelled
Test Network Off Chain 🍔 / off-chain (go) (push) Has been cancelled
Test Network Off Chain 🍔 / off-chain (java) (push) Has been cancelled
Test Network Off Chain 🍔 / off-chain (javascript) (push) Has been cancelled
Test Network Off Chain 🍔 / off-chain (typescript) (push) Has been cancelled
Test Network Private 🔒 / private (go, private) (push) Has been cancelled
Test Network Private 🔒 / private (java, private) (push) Has been cancelled
Test Network Private 🔒 / private (typescript, private) (push) Has been cancelled
Test Network SBE 🎵 / SBE (java, sbe) (push) Has been cancelled
Test Network SBE 🎵 / SBE (typescript, sbe) (push) Has been cancelled
Test Network Secured 🔔 / secured (go, secured) (push) Has been cancelled
Default to using ghcr.io for Hyperledger images in the k8s test network Signed-off-by: James Taylor <jamest@uk.ibm.com> |
||
|---|---|---|
| .. | ||
| config | ||
| docs | ||
| kube | ||
| scripts | ||
| .gitignore | ||
| network | ||
| README.md | ||
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:
-
envsubst (
brew install gettexton OSX) -
K8s - either:
- KIND + Docker (resources: 8 CPU / 8 GRAM)
- Rancher Desktop (resources: 8 CPU / 8GRAM, mobyd, and disable Traefik)
Quickstart
Create a KIND cluster:
./network kind
./network cluster init
or for 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 ../asset-transfer-basic/chaincode-java
Invoke and query chaincode:
./network chaincode invoke asset-transfer-basic '{"Args":["InitLedger"]}'
./network chaincode query asset-transfer-basic '{"Args":["ReadAsset","asset1"]}'
Access the blockchain with a REST API:
./network rest-easy
Shut down the test network:
./network down
Tear down the cluster (KIND):
./network unkind
For Rancher: Preferences -> Kubernetes Settings -> Reset Kubernetes OR ...
./network cluster clean
Detailed Guides
- Working with Kubernetes
- Certificate Authorities
- Launching the Test Network
- Working with Channels
- Working with Chaincode
- Working with Applications
- Working with BFT Orderers
DNS Resolution on OSX
Fabric's OSX binaries have been statically linked with the golang go DNS resolver. In some environments, this
causes a brief but noticeable delay when issuing peer commands
against the test network.
Workarounds to improve DNS resolution time on OSX:
- Add manual DNS overrides for virtual hosts by adding to /etc/hosts:
127.0.0.1 org0-ca.localho.st
127.0.0.1 org1-ca.localho.st
127.0.0.1 org2-ca.localho.st
127.0.0.1 org0-orderer1.localho.st
127.0.0.1 org0-orderer2.localho.st
127.0.0.1 org0-orderer3.localho.st
127.0.0.1 org1-peer1.localho.st
127.0.0.1 org1-peer2.localho.st
127.0.0.1 org2-peer1.localho.st
127.0.0.1 org2-peer2.localho.st
- Reduce the system resolver timeout from the default 5s by adding to /etc/resolv.conf:
options: timeout 2
- Compile the fabric binaries on a Mac and copy
build/bin/*outputs totest-network-k8s/bin. Mac native builds are linked against thenetdns=cgoDNS resolver, and are not subject to the timeouts associated with the Golang DNS resolver.