fabric-samples/learn/day1/issue.md
Dhiran Kumar Yadav 9255bf940d
Create issue.md
added instruction what i faced while setting up foirst network


Signed-off-by: Dhiran Kumar Yadav <97027545+dhiran-gen@users.noreply.github.com>
2025-02-23 19:03:48 +05:30

4 KiB
Raw Blame History

Hyperledger Fabric Test Network Setup

Prerequisites

Ensure you have the following installed before proceeding:

  • Docker (Latest stable version)
  • Docker Compose
  • Go (>=1.20)
  • Node.js & NPM (For chaincode development, optional)
  • jq, wget, curl
  • Hyperledger Fabric binaries and samples

1 Download Hyperledger Fabric Binaries & Samples

If you faced issues with missing peer binaries, ensure you download them correctly:

curl -sSL https://bit.ly/2ysbOFE | bash -s -- 2.5.0

This will download the Fabric binaries, Docker images, and samples for version 2.5.0.

If you need a different version, replace 2.5.0 with the desired version.


2 Export Environment Variables

After downloading, set the environment variables to ensure Fabric binaries are accessible:

export PATH=$PATH:$HOME/go/fabric-samples/bin
export FABRIC_CFG_PATH=$HOME/go/fabric-samples/config

To make these exports permanent, add them to your ~/.bashrc or ~/.zshrc file:

echo 'export PATH=$PATH:$HOME/go/fabric-samples/bin' >> ~/.zshrc
echo 'export FABRIC_CFG_PATH=$HOME/go/fabric-samples/config' >> ~/.zshrc
source ~/.zshrc

3 Start the Fabric Network

Navigate to the test-network directory:

cd ~/go/fabric-samples/test-network

Then start the network with:

./network.sh down
./network.sh up createChannel -ca

This will:

  • Bring up the Fabric network (Orderer + Peers)
  • Create a channel (mychannel)
  • Use Certificate Authorities (CAs) for identity management

4 Deploy Chaincode

To deploy the basic chaincode:

./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go

Verify the deployment:

peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'

5 Set Organization Environment Variables

To interact with the network as Org1, export these variables:

export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7051

For Org2, use:

export CORE_PEER_LOCALMSPID="Org2MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
export CORE_PEER_ADDRESS=localhost:9051

6 Invoke Chaincode

To initialize the ledger:

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n basic -c '{"Args":["InitLedger"]}'

⚠️ Note: Do NOT use --isInit as the new Fabric chaincode model doesn't require it.

To query the ledger:

peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'

7 Shutdown the Network

To stop and clean up everything:

./network.sh down

This will:

  • Remove all containers
  • Delete crypto materials and channel artifacts

Troubleshooting

🛑 peer: command not found

  • Ensure the Fabric binaries are added to PATH.
  • Run: export PATH=$PATH:$HOME/go/fabric-samples/bin

🛑 Config File "core" Not Found

  • Ensure FABRIC_CFG_PATH is set correctly.
  • Run: export FABRIC_CFG_PATH=$HOME/go/fabric-samples/config

🛑 Cannot run peer because cannot init crypto

  • The MSP path is incorrect or missing.
  • Verify it exists: ls -l $FABRIC_CFG_PATH/msp
  • Try regenerating the MSP: ./network.sh down && ./network.sh up createChannel -ca

This README provides a clear step-by-step guide to setting up and troubleshooting your Hyperledger Fabric network. 🚀