آدرس

تهران، خیابان شریعتی، بالاتر از سه راه ملک، روبروی آتش نشانی

شماره تماس

۰۹۱۹۳۴۲۶۲۵۱
۰۲۱۹۱۳۰۳۴۲۴

آدرس ایمیل

info@artarasaneh.com
artarasaneh@gmail.com

مراحل اجرای هایپر لجر فبریک در ویندوز

مراحل اجرای هایپر لجر فبریک در ویندوز

این مقاله مراحل آماده‌سازی محیط، نصب Hyperledger Fabric، اجرای شبکه تستی، و رفع رایج‌ترین مشکلات در ویندوز و لینوکس را به‌طور کامل توضیح می‌دهد.

آنچه باید نصب و چک شود (Prerequisites)

Docker Engine (پیشنهاد: Docker Engine روی لینوکس یا Docker Desktop روی macOS/Windows).

Docker Compose (یا docker compose پلاگین جدید).

Git، curl، bash.

(برای نوشتن chaincode) Go (برای chaincode به‌صورت native)، یا Node.js/Java اگر از آن زبان‌ها استفاده می‌کنید.

دانلود fabric-samples و دانلود باینری‌ها/ایج‌ها (اسکریپت bootstrap/install موجود در مخزن Hyperledger). 

چک سریع در ترمینال:

docker --version
docker compose version   # یا: docker-compose -v
git --version
node -v    # اگر JS می‌خواهید
go version  # اگر Go می‌خواهید

آماده‌سازی محیط (Hands-on quick start)

کلون کردن مخزن نمونه‌ها:

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

دانلود باینری‌ها و ایمیج‌ها (اسکریپت bootstrap):
( نسخه را بر اساس نیاز و  آخرین نسخه منتشر شده انتخاب کنید)

curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash -s -- <fabric-version> <fabric-ca-version> <thirdparty-version>

یا داخل پوشهٔ fabric-samples:

./scripts/bootstrap.sh

این اسکریپت، مخزن samples را می‌کشد و ایمیج‌های Docker و باینری‌های مورد نیاز را دانلود می‌کند.

رفتن به دایرکتوری شبکهٔ آزمایشی و بالا آوردن شبکهٔ نمونه:

cd test-network
./network.sh up createChannel -c mychannel -ca


و برای بستن:

./network.sh down


network.sh نمونهٔ تست را با Docker Compose بالا می‌آورد، کانال می‌سازد و در صورت درخواست CA هم راه‌اندازی می‌کند. (این همان مسیر سریع برای کلاس عملی است).

خطایابی و رفع اشکال در اجرای هایپر لجر فابریک

اگر در مراحل بالا دچار مشکل شدید این مراحل را طی کنید:

مرحله 1 — تمیز کردن محیط (اختیاری ولی مهم)

اگر قبلاً شبکه‌ای اجرا شده، اول خاموشش کن تا محیط تمیز باشه:

./network.sh down

 این دستور همه کانتینرها، شبکه‌های Docker، و فایل‌های موقت را حذف می‌کنه.

مرحله 2 — بالا آوردن شبکه

حالا شبکه تستی رو اجرا کن:

./network.sh up

 این دستور چند کار انجام می‌ده:

ساختن Docker network مخصوص Fabric

ساختن گواهی‌ها و MSP برای دو سازمان (Org1 و Org2)

راه‌اندازی سرویس‌های peer0.org1, peer0.org2, orderer.example.com

ایجاد یک کانال پیش‌فرض به نام mychannel

اگر خواستی همراه با CA (Certificate Authority) هم بالا بیاد:

./network.sh up -ca

مرحله 3 — بررسی وضعیت شبکه

بعد از اجرای موفق، این دستور رو بزن:

docker ps

 خروجی نشون می‌ده چه کانتینرهایی در حال اجرا هستن. معمولاً می‌بینی:

CONTAINER NAMEIMAGEDESCRIPTION
orderer.example.comhyperledger/fabric-ordererمسئول ترتیب تراکنش‌ها
peer0.org1.example.comhyperledger/fabric-peerنود سازمان ۱
peer0.org2.example.comhyperledger/fabric-peerنود سازمان ۲
ca_org1hyperledger/fabric-caصدور گواهی برای Org1
ca_org2hyperledger/fabric-caصدور گواهی برای Org2

مشاهده‌ی لاگ‌ها

می‌تونی لاگ‌های هر نود رو ببینی تا ببینی Fabric در پشت‌صحنه چطور کار می‌کنه.

مثلاً برای نود اول:

docker logs -f peer0.org1.example.com

با زدن Ctrl + C از لاگ خارج می‌شی.

مشاهده شبکه‌های Docker

برای اطمینان از ایجاد شبکه Fabric، بزن:

docker network ls


باید شبکه‌ای با نامی شبیه fabric_test یا fabric_net ببینی. 

خاموش کردن شبکه

وقتی کارت تموم شد، برای پاک‌سازی:

./network.sh down

 روش رسمی در ویندوز در صورت خطای ACCESS DENIED

روش ۱: اجرای Fabric از طریق PowerShell یا CMD

بجای Git Bash از PowerShell استفاده کن  

PowerShell رو با Run as Administrator باز کن

به مسیر پروژه برو:


cd C:\Users\artar\fabric-samples\test-network

حالا دستور رو اجرا کن:

./network.sh up createChannel -ca

در PowerShell دیگه اون ارور Access is denied اتفاق نمی‌افته، چون مسیرها به درستی برای Docker تفسیر می‌شن.

اگه حتماً می‌خوای با Git Bash کار کنی

باید مسیر mountهای Docker رو اصلاح کنی.

قدم ۱ — مسیر صحیح تعریف کن

در فایل:

fabric-samples/test-network/docker/docker-compose-test-net.yaml


جایی که volumeها تعریف شدن مثل زیر:

 volumes:
 - ../organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com:/var/hyperledger/production


باید مسیر سمت چپ رو با مسیر کامل ویندوز جایگزین کنی:

مثلاً:

volumes:
 - /c/Users/artar/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com:/var/hyperledger/production

قدم ۲ — دسترسی پوشه‌ها

به Docker Desktop برو → Settings → Resources → File Sharing
و مطمئن شو مسیر زیر share شده:

C:\Users

 روش ۳: اجرای Docker به صورت Administrator

اگر هنوز هم خطای Access Denied گرفتی،
Docker Desktop رو ببند،
روی آیکن راست‌کلیک کن و انتخاب کن:

Run as administrator

و بعد دوباره:

cd fabric-samples/test-network
./network.sh up createChannel -ca

چطور بفهمی درست شده؟

بعد از اجرای موفق، دستور زیر باید خروجی مشابه زیر بده:

docker ps

 خروجی صحیح:

peer0.org1.example.com
peer0.org2.example.com
orderer.example.com
ca_org1
ca_org2


و دیگه خطای “connectex: No connection could be made because the target machine actively refused it” رو نمی‌بینی. در ویندوز، اجرای Fabric در Git Bash معمولاً باعث مشکلات مسیر و permission میشه در PowerShell (Admin) معمولاً بدون هیچ مشکلی بالا میاد

خطای mkdir C:\Program Files\Git\var: Access is denied نشونهٔ اینه که Docker مسیر اشتباه گرفته از Git Bash

روی ویندوز، وقتی از Git Bash استفاده می‌کنی، مسیرهای Docker مثل /var/hyperledger به مسیر ویندوزی C:\Program Files\Git\var\... مپ می‌شن — ولی 

ویندوز به خاطر مجوزها اجازه‌ی ساخت پوشه در C:\Program Files\Git رو نمیده.

پیشنهاد مطالعه: نقش jq در Hyperledger Fabric

راه‌حل قطعی گام‌به‌گام رفع خطای اکسس دیناید

  گزینه ۱ — استفاده از WSL2 (پیشنهاد اصلی فبریک)

۱. اول بررسی کن WSL نصب داری یا نه:

wsl -l -v


اگه نداری، نصبش کن:

wsl --install -d Ubuntu


۲. بعد از نصب، داخل Ubuntu برو (در ترمینال بزن):

wsl


۳. داخل محیط لینوکسی، فایل‌های فبریک رو کپی کن یا مسیرش رو به /home/USER/fabric-samples منتقل کن.

۴. حالا دستور زیر رو داخل WSL Ubuntu بزن:

cd ~/fabric-samples/test-network
./network.sh up createChannel -ca


 نکته: داخل WSL، Docker باید فعال باشه. (Docker Desktop → Settings → Resources → WSL Integration → تیک Ubuntu زده باشه)

 گزینه ۲ — استفاده از CMD یا PowerShell (بدون Git Bash)

اگر نمی‌خوای WSL نصب کنی، با PowerShell اجرا کن:

PowerShell رو Run as Administrator باز کن.

برو به پوشه‌ی test-network:

cd "C:\Users\artar\fabric-samples\test-network"


بعد اجرا کن:

.\network.sh up createChannel -ca


 در این حالت Docker مسیرها رو درست تفسیر می‌کنه و دیگه نمی‌ره تو C:\Program Files\Git\var.

گزینه ۳ — تغییر مسیر پیش‌فرض در Git Bash (اگر اصرار داری Git Bash)

یک مسیر موقت امن بساز:

mkdir -p /c/tmp/hyperledger


سپس متغیر محیطی زیر رو قبل از اجرای شبکه تنظیم کن:

export FABRIC_CFG_PATH=/c/tmp/hyperledger
export TMPDIR=/c/tmp/hyperledger


بعد:

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

✅ بعد از رفع مشکل

اگر شبکه با موفقیت بالا اومد، باید این خروجی رو ببینی:

========= All GOOD, test-network is up ==========


و برای مشاهده‌ی کانتینرها:

docker ps


که باید حداقل شامل این کانتینرها باشه:

peer0.org1.example.com
peer0.org2.example.com
orderer.example.com
ca_org1
ca_org2

پیشنهاد ویژه: آموزش برنامه نویسی بلاکچین

 

اشتراک گذاری :
مریم گوهرزاد
نویسنده

مریم گوهرزاد

مدرس و بنیانگذار هلدینگ آرتا رسانه. برنامه نویس و محقق حوزه بلاکچین

نظر خودتون رو با ما در میون بزارید

فیلدهای ستاره دار الزامی هستند . ایمیل شما منتشر نمیشود.

https://t.me/artarasaneh
tel:09193426251
https://wa.me/+989193426251
https://instagram.com/artarasaneh_com