
مراحل اجرای هایپر لجر فبریک در ویندوز
این مقاله مراحل آمادهسازی محیط، نصب 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 NAME | IMAGE | DESCRIPTION |
|---|---|---|
| orderer.example.com | hyperledger/fabric-orderer | مسئول ترتیب تراکنشها |
| peer0.org1.example.com | hyperledger/fabric-peer | نود سازمان ۱ |
| peer0.org2.example.com | hyperledger/fabric-peer | نود سازمان ۲ |
| ca_org1 | hyperledger/fabric-ca | صدور گواهی برای Org1 |
| ca_org2 | hyperledger/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پیشنهاد ویژه: آموزش برنامه نویسی بلاکچین

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




