آدرس

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

شماره تماس

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

آدرس ایمیل

info@artarasaneh.com
artarasaneh@gmail.com

راه اندازی عملی شبکه تست و بررسی فایل‌های تولیدشده در هایپرلجرفبریک

راه اندازی عملی شبکه تست و بررسی فایل‌های تولیدشده در هایپرلجرفبریک

در این راهنما، به‌صورت گام‌به‌گام نحوه اجرای دستور اصلی network.sh در Hyperledger Fabric، ایجاد کانال با Fabric CA، بررسی ساختار MSP و فایل‌های genesis.block و mychannel.tx را بررسی می‌کنیم.

اجرای دستور اصلی برای بالا آوردن شبکه

دستور:

./network.sh up createChannel -c mychannel -ca
بخش دستورمعنی
./network.shاسکریپت اصلی راه‌اندازی شبکه تست است (داخل پوشه test-network).
upشبکه را بالا می‌آورد — یعنی Docker containers مربوط به orderer، peers و CA را اجرا می‌کند.
createChannelپس از بالا آمدن شبکه، یک channel جدید ایجاد می‌کند.
-c mychannelنام کانال را تعیین می‌کند (پیش‌فرض mychannel است).
-caبه جای cryptogen از Fabric CA برای صدور گواهی‌ها (Certificates) استفاده می‌کند.

بررسی فایل‌ها و فولدرهای تولیدشده

بعد از اجرای دستور بالا، چندین پوشه و فایل ایجاد می‌شود.

organizations/
├── ordererOrganizations/
│   └── example.com/
│       ├── ca/                ← گواهی CA مخصوص orderer
│       ├── msp/               ← MSP سازمان orderer
│       ├── orderers/          ← گواهی مخصوص هر orderer node
│       └── users/             ← گواهی admin سازمان orderer
└── peerOrganizations/
    ├── org1.example.com/
    │   ├── ca/                ← گواهی CA سازمان Org1
    │   ├── msp/               ← MSP اصلی Org1 (Member Service Provider)
    │   ├── peers/             ← شامل peer0.org1.example.com
    │   ├── tlsca/             ← TLS CA (برای ارتباط امن)
    │   └── users/             ← admin و userهای Org1
    └── org2.example.com/ ...  ← مشابه Org1
یشنهاد 

پیشنهاد ویژه: پروژه بلاکچین

MSP چیست؟

MSP = Membership Service Provider

مجموعه‌ای از گواهی‌ها و پالیسی‌هاست که تعیین می‌کند چه کسی عضو شبکه است و به چه منابعی دسترسی دارد.

فایلتوضیح
config.yamlتعریف نقش admin و client در سازمان
cacerts/گواهی CA اصلی سازمان
tlscacerts/گواهی CA مخصوص ارتباطات TLS
keystore/کلید خصوصی کاربر یا نود
signcerts/گواهی امضای دیجیتال کاربر

بررسی فایل‌های کانفیگ شبکه

بعد از ایجاد channel، دو فایل مهم ساخته می‌شوند:

 genesis.block

نخستین بلاک شبکه (Orderer genesis block) شامل اطلاعات مربوط به سیستم ordering service، سازمان‌های شرکت‌کننده و کانال‌های مجاز است. مانند DNA شبکه است؛ اولین بلاکی که orderer برای شروع نیاز دارد.

  mychannel.tx

فایل کانفیگ کانال (Channel Configuration Transaction) است. مشخص می‌کند چه سازمان‌هایی عضو این کانال‌اند. توسط ابزار configtxgen ساخته می‌شود.

 مسیر معمول:

test-network/channel-artifacts/
├── genesis.block
├── mychannel.tx
└── mychannel.block

دستورات مهم :

تغییر نام کانال

شبکه را پاک می کند :

./network.sh down

شبکه را با نام کانال جدید ایجاد می کند :

./network.sh up createChannel -c channeltest -ca

ساخت کانال (Channel Creation)

وقتی دستور بالا را اجرا می‌کنیم: در پشت‌صحنه چند اتفاق مهم می‌افتد:راه‌اندازی Fabric CA Serverها برای هر سازمان (تا بتوانند گواهی‌های هویت را صادر کنند)

راه‌اندازی نودهای Orderer و Peerها و اجرای دستور:

./scripts/createChannel.sh mychannel

این اسکریپت وظیفه دارد: فایل mychannel.tx را بخواند از طریق CLI یا Fabric SDK، دستور ایجاد کانال را به Orderer بفرستد.

پشت صحنه createChannel.sh بیایید بفهمیم دقیقاً چه اتفاقی می‌افتد. درون این فایل دستوراتی مانند زیر وجود دارد:

peer channel create \
 -o localhost:7050 \
 -c mychannel \
 -f ./channel-artifacts/mychannel.tx \
 --outputBlock ./channel-artifacts/mychannel.block \
 --tls true \
 --cafile $ORDERER_CA
پارامترمعنی
-o localhost:7050آدرس سرویس Orderer
-c mychannelنام کانال
-f mychannel.txفایل پیکربندی کانال
--outputBlock mychannel.blockبلاک اولیه‌ای که برمی‌گردد و برای join شدن peerها استفاده می‌شود
--tls trueفعال کردن ارتباط امن
--cafile $ORDERER_CAگواهی TLS مربوط به Orderer

پیوستن Peerها به کانال (Join Channel) بعد از ساخته شدن کانال، هر Peer باید به آن join شود. دستور مشابه زیر برای هر Peer اجرا می‌شود:

peer channel join -b ./channel-artifacts/mychannel.block

این دستور باعث می‌شود Peer: بلاک اولیه را از فایل بخواند، و به دفترکل (ledger) مخصوص کانال اضافه شود.

 نکته:
در شبکهٔ تست، برای هر سازمان معمولاً یک Peer (peer0) داریم:

Org1 → peer0.org1.example.com
Org2 → peer0.org2.example.com

هر دو به کانال mychannel ملحق می‌شوند.

به‌اشتراک‌گذاری Anchor Peers

در Fabric، هر سازمان باید یک یا چند Anchor Peer معرفی کند تا بقیه Peerها بتوانند از طریق آن با این سازمان ارتباط بگیرند.

دستور زیر معمولاً بعد از join اجرا می‌شود:

peer channel update \
 -o localhost:7050 \
 -c mychannel \
 -f ./channel-artifacts/Org1MSPanchors.tx \
 --tls true \
 --cafile $ORDERER_CA

هر سازمان در بلاک‌چین ثبت می‌کند که کدام Peer، Anchor Peer است. این اطلاعات در پیکربندی کانال ذخیره می‌شود.

بررسی وضعیت کانال

بعد از join شدن، می‌توانیم با دستور زیر مطمئن شویم Peer عضو کانال است:

peer channel list

خروجی باید شامل mychannel باشد.

یا برای دیدن بلاک‌ها:

peer channel getinfo -c mychannel

که شماره بلاک فعلی و هش بلاک قبلی را نشان می‌دهد.

مفهوم بلاک‌ها (Block Structure)

در Hyperledger Fabric هر بلاک شامل ۳ بخش اصلی است:
Header :   اطلاعات بلاک، مثل شماره بلاک و هش قبلی
Data :   تراکنش‌های تأییدشده در این بلاک
Metadata :   امضاها، زمان‌سنجی (timestamp)، و سایر داده‌های تکمیلی

پیشنهاد مطالعه: دستور docker ps -a در هایپر لجر فبریک

مشاهده  فایل ها مسیر channel-artifacts 

channeltest.block
channeltest.tx

خلاصه دستورات

مفهومخلاصه
network.sh upبالا آوردن شبکه و containerها
createChannelایجاد یک کانال جدید
organizations/گواهی‌ها و MSPهای سازمان‌ها
genesis.blockاولین بلاک شبکه (DNA سیستم)
mychannel.txتراکنش ایجاد کانال
cryptogen vs Fabric CAcryptogen ساده و سریع؛ Fabric CA واقعی و قابل‌مدیریت

 

در مسیر test-network/organizations چند پوشه ساخته می‌شود که هرکدام نقش مهمی دارند.

بیایید مرحله‌به‌مرحله بررسی کنیم:

 ۱. ساختار کلی organizations

درون پوشه organizations دو پوشه اصلی وجود دارد:

organizations/
│
├── ordererOrganizations/
│
└── peerOrganizations/

ordererOrganizations:

شامل فایل‌ها و گواهی‌های مربوط به سرویس‌های Orderer (ترتیب‌دهنده تراکنش‌ها در شبکه).

peerOrganizations:

شامل فایل‌ها و گواهی‌های مربوط به اعضای شبکه (یعنی سازمان‌هایی که Peer دارند).

ساختار داخل peerOrganizations   داخل آن معمولاً دو سازمان وجود دارد:

peerOrganizations/
├── org1.example.com/
└── org2.example.com/

هرکدام از این پوشه‌ها شامل چند بخش است:

org1.example.com/
│
├── msp/
├── peers/
├── users/
└── tlsca/

توضیح اجزای مهم:

msp/  مخفف Membership Service Provider است. این پوشه هویت سازمان را تعریف می‌کند — شامل گواهی‌های CA و اطلاعات تأیید هویت.

peers/  شامل فایل‌های پیکربندی و گواهی‌های مخصوص هر peer، مثلاً:

peers/peer0.org1.example.com/

users/   شامل کاربران سازمان (مثلاً Admin یا User1).

tlsca/    شامل گواهی‌های مربوط به TLS (امنیت ارتباطی بین نودها).

فایل‌های کلیدی در هر پوشه MSP در پوشه msp معمولاً فایل‌های زیر دیده می‌شود:

msp/
├── cacerts/
├── tlscacerts/
├── signcerts/
├── keystore/
└── config.yaml
پوشه / فایلتوضیح
cacerts/گواهی صادرکننده (CA اصلی سازمان)
tlscacerts/گواهی‌های مربوط به ارتباطات TLS
signcerts/گواهی امضای دیجیتال مربوط به این نود یا کاربر
keystore/کلید خصوصی مربوط به گواهی
config.yamlتنظیمات داخلی MSP (مثل NodeOUs برای نقش‌ها)

genesis.block و mychannel.tx

بعد از راه‌اندازی شبکه، در مسیر:

test-network/system-genesis-block/

یک فایل به نام genesis.block ساخته می‌شود.

و در مسیر:

test-network/channel-artifacts/

فایل mychannel.tx قرار دارد. بیایید نقششان را توضیح دهیم

 genesis.block

این بلوک اولیه شبکه است.

شامل پیکربندی Orderer و مشخصات اولیه کل شبکه است.

در واقع، Orderer از این فایل برای شروع بلاک‌چین استفاده می‌کند.

  mychannel.tx

این فایل مربوط به پیکربندی اولیه کانال است.

با دستور createChannel ساخته می‌شود.

حاوی اطلاعاتی مثل اعضای کانال، سیاست‌ها، و نام کانال (مثلاً mychannel) است.

اگر اسم کانال را تغییر دهی (مثلاً به artachannel)، این فایل دوباره ساخته می‌شود و متفاوت خواهد بود.

نمونه کد : 

 بررسی فایلها در مسیر test-network/organizations  فایل genesis.block را با دستور زیر باز کنید

configtxgen -inspectBlock ./system-genesis-block/genesis.block

تغییر نام کانال  

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

در دمو پیش‌فرض، دستور:

./network.sh -ca

باعث می‌شود به‌جای ابزار cryptogen، از Fabric CA برای تولید گواهی‌ها استفاده شود.

ابزارتوضیح
cryptogenیک ابزار ساده برای تولید گواهی‌های تستی و سریع.
Fabric CAیک سرویس کامل CA واقعی که مدیریت هویت‌ها را به‌صورت داینامیک انجام می‌دهد.

 

دستور وارد شدن به کانتینر peer

docker exec -it peer0.org1.example.com bash

مشاهده عضویت در کانال‌ها:

peer channel list

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

 

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

مریم گوهرزاد

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

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

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

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