mirror of
https://github.com/hyperledger/fabric-samples.git
synced 2026-06-17 07:25:10 +00:00
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:
parent
b3d417bc9b
commit
9255bf940d
1 changed files with 136 additions and 0 deletions
136
learn/day1/issue.md
Normal file
136
learn/day1/issue.md
Normal 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. 🚀
|
||||
|
||||
Loading…
Reference in a new issue