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>
This commit is contained in:
Dhiran Kumar Yadav 2025-02-23 19:03:48 +05:30 committed by GitHub
parent b3d417bc9b
commit 9255bf940d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

136
learn/day1/issue.md Normal file
View file

@ -0,0 +1,136 @@
# 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:
```bash
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:
```bash
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:
```bash
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:
```bash
cd ~/go/fabric-samples/test-network
```
Then start the network with:
```bash
./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:
```bash
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
```
Verify the deployment:
```bash
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:
```bash
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:
```bash
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**:
```bash
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**:
```bash
peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'
```
---
## 7⃣ Shutdown the Network
To stop and clean up everything:
```bash
./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. 🚀