Hyperledger Caliper Kurulumu - Test Network
Tags: caliper, fabric, blockchain, hyperledger
Published: 2024-01-17 09:05:54

# Ön Gereksinimlerin Kurulumu
**1.** İlk olarak docker ve docker-compose kurulu olmalıdır. Bunun için [şu dökümanı](https://dev.to/aciklab/docker-ve-docker-compose-kurulumu-ubuntu-2004-3ch7) takip edilebilir.


**2.** İkinci olarak da npm kurulu olmalıdır. (npm version: 6.14.16)

- Öncelikle, aşağıdaki komut ile mevcut Node modüllerini temizleyin.

```
sudo rm -rf node_modules
```

- Daha sonra aşağıdaki komutu kullanarak NVM'yi kurun.
```
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
```

- NVM ortam değişkenlerini aşağıdaki komut ile tanımlayın.

```
export NVM_DIR="$HOME/.nvm"
```

- NVM'i yüklemek için  komutlarını çalıştırın.

```
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" ve bash completion için [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
```


- .bashrc dosyasını source ~/.bashrc komutuyla yeniden yükleyin.

```
source ~/.bashrc
```

```
nvm install 14.19.0
```
 ve 

```
nvm use 14.19.0
```
 ile Node.js kurun ve kullanın.

- Node.js versiyonunu 

```
node -v
```
- NPM versiyonunu 

```
npm -v
```
 ile doğrulayın.


# Caliper Benchmarks Kurulumu

**<u>Hyperledger Caliper-Benchmarks Reposunun Klonlanması:</u>**

- İlk adımımız, Hyperledger Caliper için benchmark testleri içeren reposunu klonlamak. Bunun için aşağıdaki komutu kullanın:

```
git clone https://github.com/hyperledger/caliper-benchmarks
cd caliper-benchmarks
```
Bu komut, Caliper benchmark testleri için gerekli dosyaları içeren bir klasör oluşturur. Bu klasörü, daha önce oluşturduğunuz dizinde yer alacak şekilde ayarlayın.



**<u>Fabric Örneklerini ve Test Ağını Kullanmak:</u>**

- Örnekleri indirmek için iki yol bulunmaktadır: doğrudan Git kullanarak ya da zip olarak indirme. Git ile indirmek için aşağıdaki komutu kullanabilirsiniz:

```
git clone https://github.com/hyperledger/fabric-samples
```

Hyperledger Fabric 2.4 sürümünü kurmak için, aşağıdaki adımları izleyin:

- İlk olarak, kurulum betiğini indirin:

```
cd fabric-samples
wget https://raw.githubusercontent.com/hyperledger/fabric/release-2.4/scripts/bootstrap.sh
```
- Ardından, indirdiğiniz betiği çalıştırarak Fabric ağınızı hazırlayın:

```
sudo bash bootstrap.sh
source ~/.bashrc
```

Bu adımlar, Hyperledger Fabric'ın temel bileşenlerini ve gereksinimlerini kurar ve ağınızın arka planda hazırlanmasını sağlar.

- fabric-samples klasörü içerisindeki test-network dizinine gidiniz:

```
cd test-network
```

- Fabric ağınızda, 'mychannel' adında bir kanal oluşturmak için şu adımları takip edin:

```
sudo ./network.sh up createChannel -s couchdb
```

Bu komut, ağınızda belirli bir kanal oluşturmanıza ve CouchDB gibi veritabanı çözümlerini entegre etmenize olanak tanır.

- Bu komut, Hyperledger Fabric ağınızı başlatır. İşlemlerinizi tamamladıktan sonra ağı kapatmak için aşağıdaki komutu kullanmalısınız:

```
sudo ./network.sh down
```


**<u>Caliper-Benchmarks Dizinine Geçiş ve Gerekli Kurulumlar:</u>**

- Klonlama işleminden sonra, Caliper-Benchmarks dizinine geçiş yapın ve gerekli npm paketlerini yükleyin:

```
cd caliper-benchmarks
npm install --only=prod @hyperledger/caliper-cli@0.5.0 --unsafe-perm=true
```
Bu adım, Caliper CLI'nin belirli bir versiyonunu ve gerekli bağımlılıkları kurar.

**<u>Fabric 2.4 ile Bağlama İşlemi:</u>**

- Fabric 2.4 sürümü ile Caliper'ı bağlamak için aşağıdaki komutu kullanın:

```
npx caliper bind --caliper-bind-sut fabric:2.4
```
Bu işlem, Fabric 2.4 ile uyumlu olacak şekilde Caliper'ı yapılandırır ve yeni eklenen peer-gateway servisini kullanabilir hale getirir.

**<u>Go Kurulumu</u>**

- İlk olarak, Go'nun resmi web sitesinden golang.org/dl üzerinden Go'nun son sürümünü indirin. Örneğin, go1.17.linux-amd64.tar.gz dosyasını indirin.

- Terminali açın ve aşağıdaki komutlarla Go'yu indirip çıkarın:

```
wget https://golang.org/dl/go1.17.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.17.linux-amd64.tar.gz
```
**GOROOT**, Go'nun kurulu olduğu dizindir ve bu örnekte /usr/local/go olarak belirlenmiştir. **GOPATH**, Go projelerinizin ve bağımlılıklarının saklandığı yerdir ve bu örnekte /home/ubuntu/go olarak ayarlanacaktır.

- Bu değişkenleri ayarlamak için .profile dosyanızı düzenleyin:

```
echo "export GOROOT=/usr/local/go" >> ~/.profile
echo "export GOPATH=/home/ubuntu/go" >> ~/.profile
echo "export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin" >> ~/.profile
```

- Bu ayarları uygulamak için oturumu kapatıp açın veya aşağıdaki komutu çalıştırın:

```
source ~/.profile
```

- Go'nun başarıyla kurulduğunu ve ortam değişkenlerinin doğru ayarlandığını doğrulamak için terminalde şu komutları çalıştırın:

```
go version
echo $GOROOT
echo $GOPATH
```

Bu komutlar, sırasıyla Go'nun sürümünü, GOROOT ve GOPATH değerlerini göstermelidir.

**<u>Fabcar Chaincode'unun Dağıtımı:</u>**

Fabcar, Go, Java ve JavaScript dillerinde yazılmış Hyperledger Fabric chaincode örneklerini içerir.

- Go versiyonunu dağıtmak için, öncelikle fabric-samples/test-network dizinine gidin. Ardından, Fabcar chaincode'un Go versiyonunu Fabric ağınıza dağıtmak için aşağıdaki komutu çalıştırın:

```
cd fabric-samples/test-network

sudo env "PATH=$PATH" ./network.sh deployCC -ccn fabcar -ccp /home/ubuntu/caliper-benchmarks/src/fabric/samples/fabcar/go/ -ccl go
```
Bu komut, Fabcar chaincode'unun Go versiyonunu Fabric ağınıza dağıtır.

**<u>Konfigürasyon Dosyalarının Güncellenmesi ve İzin Ayarları:</u>**

- **test-network.yaml** dosyasındaki dizinler güncellenmelidir:

```
nano /home/ubuntu/caliper-benchmarks/networks/fabric/test-network.yaml
```

```
clientPrivateKey:
  path: '/home/ubuntu/caliper-benchmarks/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/priv_sk'

clientSignedCert:
   path: '/home/ubuntu/caliper-benchmarks/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem'

connectionProfile:
   path: '/home/ubuntu/caliper-benchmarks/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/connection-org1.yaml'

```

- İlgili dosya ve klasörlerin izinlerini düzenleyin:

```
chmod 777 /home/ubuntu/caliper-benchmarks/networks/fabric/test-network.yaml
chmod 777 /home/ubuntu/caliper-benchmarks/benchmarks/samples/fabric/fabcar/config.yaml
sudo chmod -R 755 /home/ubuntu/caliper-benchmarks/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/
sudo chmod 644 /home/ubuntu/caliper-benchmarks/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/priv_sk
sudo chown $USER /home/ubuntu/caliper-benchmarks/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/priv_sk
```

**<u>Benchmark Testlerinin Çalıştırılması:</u>**

- Benchmark testlerini çalıştırmak için, caliper-benchmarks dizinine geri dönün.
Sonra aşağıdaki komutu kullanarak Caliper ile Fabcar chaincode üzerinde benchmark testlerini başlatın:

```
npx caliper launch manager --caliper-workspace /home/ubuntu/caliper-benchmarks --caliper-networkconfig /home/ubuntu/caliper-benchmarks/networks/fabric/test-network.yaml --caliper-benchconfig /home/ubuntu/caliper-benchmarks/benchmarks/samples/fabric/fabcar/config.yaml --caliper-flow-only-test --caliper-fabric-gateway-enabled
```

Bu komut, Caliper ile Fabcar chaincode'u üzerinde benchmark testlerini başlatır ve Fabric ağınızın performansını değerlendirir.