Absolutely!
Here's a more detailed and logically connected explanation of
Hyperledger Fabric, presented in a smooth, sequential narrative. The points are tied
together to help you understand how each part contributes to the overall architecture
and workflow:
Hyperledger Fabric – In-Depth, Sequential
Explanation
1. Introduction and Architecture Overview
Hyperledger Fabric is a permissioned, modular blockchain platform tailored for
enterprise use. Unlike public blockchains like Bitcoin or Ethereum, Fabric provides
confidentiality, scalability, and flexibility by allowing only authorized participants. It
achieves this through a unique architecture that separates transaction processing into
three distinct phases: execution, ordering, and validation.
The platform is composed of multiple components: clients, peers, ordering nodes,
certificate authorities (CAs), and membership services providers (MSPs), all
orchestrated to securely process transactions and maintain a shared, tamper-
resistant ledger.
2. Node Types and Their Roles
Fabric's network is made up of different node types, each with a specialized role:
Clients: External applications or SDKs that propose
transactions.
Peers: Nodes that host the ledger and smart contracts.
o Endorsing Peers: Simulate transactions and sign
endorsements.
o Committing Peers: Validate and commit transactions
to the ledger.
Ordering Nodes: Order the transactions and group them into
blocks to be distributed to peers.
Certificate Authority (CA): Issues digital identities and
certificates to authenticate network participants.
These nodes interact in a precise flow to ensure that every transaction is processed
securely, consistently, and with required authorization.
3. Membership Services Provider (MSP) and Identity
All identities in Fabric are managed by an entity called the Membership Services
Provider (MSP). The MSP governs how digital certificates (X.509) are issued,
verified, and used to assign roles such as admin, peer, and client.
User Identities: Issued by the CA, used by clients to interact
with the network.
Admin Identities: Have higher privileges, such as channel
configuration and chaincode management.
Peer & Orderer Identities: Used for node authentication
and secure communication within the network.
Each organization in the network has its own MSP, and when multiple organizations
form a network, they create a consortium.
4. Consortium and Channel Configuration
A consortium is a group of organizations that collaborate in a Fabric network. They
agree on governance rules and can create one or more channels.
Channels are private sub-networks that isolate transaction
data between members. Each channel has:
o Its own ledger
o Its own chaincode (smart contracts)
o A set of authorized peers
o A channel-specific MSP configuration
You can have:
Single-channel setup: Simpler, but less privacy.
Multi-channel setup: Provides greater confidentiality by
separating data and logic between different groups.
5. Fabric Peer Components
Each peer hosts several key components:
Ledger: Stores the blockchain (immutable history) and world
state (current state of data).
Chaincode: The smart contracts that contain the business
logic.
Local MSP: Validates identities and enforces access control
on the peer.
Channel Configuration: Defines which chaincode and ledger
the peer is part of.
Peers can be endorsers, committers, or both, depending on the chaincode endorsement
policy.
6. Fabric CA and Identity Lifecycle
The Fabric Certificate Authority (CA) is responsible for managing digital identities.
It:
Registers users and nodes.
Issues and revokes certificates.
Supports the enrollment of users who authenticate and
receive cryptographic material for secure interaction.
Every participant in the network must hold a valid identity issued by the CA and
governed by the MSP.
7. Endorsement and Consensus Mechanism
Before a transaction is accepted, it must be endorsed based on a policy. An
endorsement policy defines which peers must approve the transaction.
For example:
“Transaction must be endorsed by one peer from Org1 and Org2.”
Once the necessary endorsements are collected, the transaction can be submitted to
the ordering service.
8. Ordering Service and Consensus
The ordering service is responsible for sequencing transactions and delivering them
to peers in blocks. It does not process or validate transactions — it ensures total
ordering.
There are multiple implementations of the ordering service:
Solo: A single-node, development-only option (deprecated).
Kafka: A crash fault-tolerant consensus using Apache Kafka
(deprecated).
Raft: A production-ready, leader-based consensus protocol
that is simpler and more robust.
The ordered blocks are sent to all peers on the channel for validation.
9. Transaction Lifecycle – Step-by-Step
Let’s now walk through how a transaction flows from proposal to commitment:
1. Client Application (via SDK) sends a transaction proposal to
endorsing peers.
2. Endorsing Peers simulate the transaction (without changing
the ledger) and send signed endorsements back.
3. Client collects endorsements and assembles the transaction.
4. Client submits the transaction to the Ordering Service.
5. Ordering Service packages transactions into blocks and
broadcasts to peers.
6. Peers validate:
o Endorsement policies
o Read-write set versioning (to prevent double-spending
or conflicts)
7. Valid Transactions are committed to the ledger, and event
notifications are sent to the client.
10. SDKs and Client Applications
Hyperledger Fabric provides SDKs in languages like Node.js, Java, and Go. The
SDK enables client apps to:
Connect to the network
Authenticate using digital certificates
Discover peers and channels
Submit transaction proposals
Listen to block and chaincode events
This client interaction is fundamental to real-world blockchain applications.
11. Transaction Signing and Verification
Every transaction in Fabric is digitally signed:
First by the client who submits it.
Then by the endorsing peers according to the endorsement
policy.
During validation, these signatures are checked against the MSP to ensure the
transaction is genuine and authorized before it’s committed to the ledger.
Conclusion
Hyperledger Fabric offers a powerful, secure, and modular approach to blockchain
tailored for enterprises. By combining modular components such as peers, MSPs,
CAs, and channels with fine-grained policies and a flexible consensus layer, Fabric
enables confidential and scalable networks for real-world business applications.
Would you like me to format this as a document or PowerPoint presentation for easier
sharing?
مع الحفاظ،بالطبع! إليك الترجمة الكاملة والمفصلة للنص السابق إلى اللغة العربية
على التسلسل المنطقي وربط النقاط:
Hyperledger Fabric – شرح تفصيلي ومتسلسل
1. مقدمة ونظرة عامة على المعمارية
Hyperledger Fabric ،هي منصة بلوكتشين مخصصة ومصممة لالستخدام المؤسسي
بخالف شبكات البلوكتشين العامة مثل بيتكوين أو.وتتميز بكونها مرنة وقابلة للتخصيص
توفر، إيثريومFabric والمرونة من خالل السماح فقط، وقابلية التوسع،السرية
للمشاركين المصرح لهم بالوصول إلى الشبكة.
تعتمدFabric والتحقق، وترتيبها،على معمارية فريدة تفصل بين تنفيذ المعامالت
العقد، العمالء: تتكون الشبكة من مكونات متعددة.( منهاPeers)، العقد المنظمة
(Orderers)، ( وسلطات الشهاداتCA)، ( ومزودو خدمات العضويةMSP).
2. أنواع العقد وأدوارها
تتضمن شبكةFabric لكل منها دور محدد،أنواًعا مختلفة من العقد:
.الذي يقترح المعامالت SDKهو التطبيق الخارجي أو (Client):العميل
والعقود الذكية ) (ledgerتقوم باستضافة السجل الذكي (Peers):العقد
(chaincode).
تحاكي المعامالت وتوقع (Endorsing Peers):العقد الُم صِّدقة o
.الموافقات
تتحقق من صحة (Committing Peers):العقد الُم لتزمة o
.المعامالت وتقوم بتثبيتها في السجل
ترتب المعامالت وتجمعها في كتل (Ordering Nodes):عقد الترتيب
.إلرسالها إلى العقد
تصدر الهويات الرقمية والشهادات لجميع (CA):سلطة الشهادات
.المشاركين
Fabric.جميع هذه العقد تعمل بتناغم لضمان أمان المعامالت واتساقها ضمن شبكة
والهويات ) (MSPمزود خدمات العضوية 3.
تتم إدارتها بواسطة ما ُيعرف بـ مزود خدمات العضوية Fabricجميع الهويات في
والذي يتحكم في كيفية إصدار الشهادات الرقمية والتحقق منها وتحديد األدوار (MSP)،
.مثل المشرف ،أو العميل ،أو العقدة
.وُتستخدم للتفاعل مع الشبكة CAهويات المستخدمين :تصدرها
هويات المشرفين :تتمتع بصالحيات إدارية مثل تكوين القنوات وإدارة العقود
.الذكية
.هويات العقد والمنظمين :تتيح التحقق من العقد وتأمين التواصل بينها
خاص بها ،وعندما تتحد عدة منظمات ،تشكل ما MSPكل منظمة ضمن الشبكة لديها
ُ (Consortium).يعرف بـ التحالف
التحالف وتكوين القنوات 4.
وتوافق على قواعد Fabricالتحالف هو مجموعة من المنظمات تتعاون لتشكيل شبكة
.الحوكمة .يمكن للتحالف إنشاء قناة واحدة أو عدة قنوات
هي شبكات فرعية خاصة تتيح الخصوصية والعزل بين ) (Channelsالقنوات
:المنظمات .كل قناة تحتوي على
.سجل معامالت خاص بها o
.عقد ذكية مستقلة o
.مجموعة محددة من العقد المصرح لها o
.خاصة بالقناة MSPإعدادات o
:هناك نوعان من التكوين
.قناة واحدة :تبسيط اإلدارة ولكن بخصوصية أقل
.عدة قنوات :تتيح الفصل الكامل بين البيانات والمنظمات
Fabricمكونات العقدة في 5.
:تحتوي على ) (Peerكل عقدة
.يتضمن سجل المعامالت وسجل الحالة العالمية (Ledger):السجل
.الكود الذي يحتوي على منطق األعمال (Chaincode):العقد الذكية
.المحلي :يتحقق من الهويات ويفرض قواعد الوصول MSP
.تكوين القناة :يحدد ما هي القناة والعقد الذكية المرتبطة بها
أو كالهما حسب ) (Committerأو ملتزمة ) (Endorserيمكن أن تكون العقدة مؤيدة
.سياسة التأييد
ودورة حياة الهوية Fabric CAشهادة 6.
:إدارة الهويات الرقمية ،حيث تقوم بـ ) (Fabric CAتتولى سلطة الشهادات
.تسجيل المستخدمين والعقد
.إصدار وإلغاء الشهادات
.تمكين المصادقة والتشفير اآلمن للمشاركين
ومعتمدة من CAال يمكن ألي كيان التفاعل مع الشبكة بدون شهادة صالحة مصدرة من
MSP.
سياسة التأييد وآلية التوافق 7.
.حسب سياسة محددة ) (endorsementقبل قبول أي معاملة ،يجب أن تحصل على تأييد
:مثًال
" Org2.و Org1يجب أن تؤيد المعاملة عقدة واحدة على األقل من كل من"
.بعد الحصول على التأييدات المطلوبة ،يمكن إرسال المعاملة إلى خدمة الترتيب
خدمة الترتيب وآلية التوافق 8.
ترتيب المعامالت وتغليفها في كتل .ال تقوم ) (Ordering Serviceتتولى خدمة الترتيب
.بالتحقق من صحة المعامالت ،بل تضمن فقط ترتيبها
:تتوفر بعدة أشكال
.عقدة واحدة ،لالختبار فقط (تم إيقافها) Solo:
.لدعم الخطأ (تم إيقافها) Apache Kafkaتعتمد على Kafka:
.خوارزمية توافق تعتمد على القائد ،وهي المعتمدة في بيئات اإلنتاج Raft:
.بمجرد ترتيب الكتل ،يتم إرسالها إلى جميع العقد على القناة
دورة حياة المعاملة – خطوة بخطوة 9.
1. .اقتراح المعاملة إلى عقد التأييد SDKيرسل العميل عبر
2. .تقوم العقد المؤيدة بمحاكاة المعاملة وتوقيع التأييد
3. .يجمع العميل التأييدات وينشئ المعاملة النهائية
4. .يرسل العميل المعاملة إلى خدمة الترتيب
5. .تقوم خدمة الترتيب بتجميع المعامالت في كتلة
6. .تتحقق العقد الملتزمة من سياسة التأييد وتكامل البيانات
7. .يتم تثبيت المعاملة الصحيحة في السجل ويتم إخطار العميل بالنتيجة
وتطبيقات العمالء 10. SDKs
تتيح هذه المكتبات Go.و Node.js، Java،بلغات مثل SDKمكتبات Fabricتوفر
:لتطبيقات العمالء
.االتصال بالشبكة
.المصادقة باستخدام الشهادات
.اكتشاف القنوات والعقد
إرسال اقتراحات المعامالت.
االستماع إلى األحداث مثل تثبيت الكتل.
وهو ما يجعلFabric قاباًل للتكامل في األنظمة الحقيقية.
11. توقيع المعامالت والتحقق منها
يتم توقيع كل معاملة رقميًا على مرحلتين:
أوًال بواسطة العميل.
ثم بواسطة العقد المؤيدة حسب السياسة.
تقوم العقد بمراجعة التوقيعات والتأكد من صالحيتها وفًقا لـ، أثناء التحققMSP قبل
قبول المعاملة وتسجيلها.
الخاتمة
ُيعدHyperledger Fabric من.منصة بلوكتشين قوية ومرنة ومصممة خصيًص ا للمؤسسات
، وسياسات التأييد، خدمات العضوية، العقد،خالل مكونات قابلة للتخصيص مثل القنوات
وقابلة للتوسع، خاصة،يمكن للشركات بناء شبكات آمنة.
هل ترغب أن أجهز هذا النص في ملفPDF أو عرضPowerPoint جاهز؟
Sure! Here's a clear explanation in English of what makes Hyperledger Fabric stand
out compared to traditional public blockchains, specifically in terms of speed,
performance, scalability, privacy, and security:
What Makes Hyperledger Fabric Unique Compared
to Traditional Blockchains?
1. Speed and Performance
Traditional Blockchains (like Ethereum or Bitcoin) rely on
computationally expensive consensus algorithms such as
Proof of Work (PoW), which slows down transaction
throughput.
Hyperledger Fabric separates the transaction flow into three
distinct phases — execution, ordering, and validation —
allowing for parallel processing and much higher
throughput.
Since it’s a permissioned network, there’s no need for
complex mining or public verification, making transactions
faster and more efficient.
2. Scalability
In public blockchains, every node processes every transaction,
which becomes a bottleneck as the network grows.
Fabric supports modular architecture and allows multiple
channels, enabling independent transaction processing
across different groups.
This channel-based isolation and support for pluggable
consensus mechanisms (e.g., Raft) allow Fabric networks
to scale efficiently without impacting the overall system.
3. Privacy and Confidentiality
Public blockchains are fully transparent — all data is visible to
everyone.
Hyperledger Fabric provides data isolation through
channels, so only authorized parties within a channel can
access that channel’s data.
In addition, private data collections allow organizations to
share sensitive data only with specific parties, even within the
same channel.
4. Security
Fabric uses X.509 digital certificates and Public Key
Infrastructure (PKI) for strong identity management via the
Membership Service Provider (MSP).
Access control and policies are enforced at every level —
channels, chaincode, and endorsement.
Since it's permissioned, every participant is known and
verified, reducing the risk of malicious actors.
Summary Table: Fabric vs Traditional Blockchain
Let me know if you'd like a graphical comparison or a version ready for presentation
or documentation.
بالطبع! إليك الترجمة الكاملة للنص السابق إلى اللغة العربية:
عن سالسل الكتل Hyperledger Fabricما الذي يميز
التقليدية؟
السرعة واألداء 1.
تعتمد على ) Bitcoinأو Ethereumمثل( سالسل الكتل التقليدية
(Proof ofخوارزميات توافق تستهلك الكثير من الموارد ،مثل إثبات العمل
.مما يؤدي إلى بطء في معالجة المعامالت Work)،
تفصل عملية المعاملة إلى ثالث مراحل رئيسية — Hyperledger Fabric
التنفيذ ،الترتيب ،والتحقق — مما يسمح بـ معالجة متوازية وسرعة
.أعلى بكثير
وبما أنها شبكة مصرح بها ،فال حاجة للتعدين أو التحقق العام ،مما يجعل
.المعامالت أسرع وأكثر كفاءة
قابلية التوسع 2.
في سالسل الكتل العامة ،كل عقدة تعالج كل معاملة ،مما يسبب عنق زجاجة
.مع زيادة عدد المشاركين
بنية قابلة للتخصيص وتسمح بوجود قنوات متعددة ،مما يتيح Fabricتدعم
.معالجة المعامالت بشكل مستقل عبر مجموعات مختلفة
هذا العزل من خالل القنوات ،باإلضافة إلى دعمها لخوارزميات التوافق القابلة
قابلة للتوسع بكفاءة دون التأثير على Fabricيجعل Raft)،مثل( للتبديل
.النظام بأكمله
الخصوصية والسرية 3.
.سالسل الكتل العامة شفافة بالكامل — كل البيانات مرئية للجميع
عزًال للبيانات من خالل القنوات ،بحيث ال Hyperledger Fabricتوفر
.يمكن الوصول إلى بيانات القناة إال من قبل األطراف المصرح لهم
(Private Dataباإلضافة إلى ذلك ،تتيح مجموعات البيانات الخاصة
تبادل البيانات الحساسة بين أطراف محددة فقط داخل نفس )Collections
.القناة
األمان 4.
) (PKIوبنية مفاتيح عامة X.509شهادات رقمية من نوع Fabricتستخدم
(MSP).إلدارة الهوية بشكل قوي من خالل مزود خدمات العضوية
يتم فرض سياسات التحكم في الوصول على جميع المستويات — القنوات،
.والتأييد (Chaincode)،العقود الذكية
وبما أنها شبكة مصرح بها ،فـ جميع المشاركين معروفون وُم حقق من
.هويتهم ،مما يقلل من مخاطر الجهات الخبيثة
مقابل سالسل الكتل التقليدية : Hyperledger Fabricجدول مقارنة
؟ PDFأو ملف PowerPointهل ترغب أن أحّول هذه المقارنة إلى عرض تقديمي بصيغة
دعني Hyperledger Fabric.ممتاز ،سؤالك مهم جدًا لفهم كيف يتم تأمين المعامالت في
في ) (Private Keyوالمفتاح الخاص ) (Public Keyأوضح استخدام المفتاح العام
:داخل الشبكة ) (userسياق المستخدم
في ) (Public/Private Keyما استخدام المفتاح العام والخاص
؟Hyperledger Fabric
أوًال :التعريف السريع
ُيحفظ بسرية تامة لدى المستخدم (Private Key): ،المفتاح الخاص
.وُيستخدم لتوقيع البيانات (مثل المعامالت)
يتم مشاركته مع الشبكة وُيستخدم للتحقق (Public Key):المفتاح العام
.من صحة التوقيع
ثانيًا :كيف يستخدم المستخدم هذه المفاتيح؟
) (Digital Signatureالتوقيع الرقمي 1.
:عندما يريد المستخدم إرسال معاملة إلى الشبكة
.يقوم بتوقيع المعاملة باستخدام المفتاح الخاص
.هذا التوقيع يثبت أن المعاملة جاءت من مالك الهوية
) (Signature Verificationالتحقق من التوقيع 2.
أو الشبكة باستخدام المفتاح العام ) (Peersعند استالم المعاملة ،تقوم العقد
.المرتبط بالمستخدم للتحقق من صحة التوقيع
.إذا كان التوقيع صحيحًا ،يتم قبول المعاملة كصالحة
) (Authentication & Identityالمصادقة والهوية 3.
Fabric CA.يتم ربط المفتاحين (الخاص والعام) بشهادة رقمية صادرة من
هذه الشهادة تثبت أن المستخدم هو عضو حقيقي في الشبكة وتم التحقق من
.هويته
:مثال عملي
:ويستلم ُ Fabric CAيسَّج ل المستخدم لدى 1.
) (X.509 Certificateشهادة رقمية o
مفتاح خاص o
:عندما يرسل طلب معاملة 2.
ُ.يوّقعها باستخدام مفتاحه الخاص o
:تتلقى العقدة المعاملة 3.
.تستخدم المفتاح العام الموجود في الشهادة للتحقق من التوقيع o
.إذا طابق التوقيعُ ،تعتبر المعاملة قانونية 4.
ملخص
Fabric CAهل ترغب أن أشرح كيف يتم إنشاء هذه المفاتيح والشهادات عملًيا باستخدام
؟
رائع! إليك شرًح ا عملًيا ومبسًطا لكيفية إنشاء المفاتيح والشهادات الرقمية
Hyperledger Fabric CA:للمستخدم باستخدام
Fabric CAكيفية إنشاء المفاتيح والشهادات باستخدام
:الخطوات الرئيسية
:هناك مرحلتان أساسيتان
CA.حيث يتم تعريف المستخدم في الـ (Registration):التسجيل 1.
حيث يتم توليد المفاتيح واستالم (Enrollment):التسجيل الفعلي 2.
.الشهادة
) (Registerالتسجيل 1.
CA.بتسجيل المستخدم الجديد لدى ) (Adminيقوم المشرف
CLI:مثال باستخدام أمر
\ fabric-ca-client register
\ --id.name user1
\ --id.secret user1pw
\ --id.type client
\ --id.affiliation org1.department1
\ >--url https://<ca-server
>--tls.certfiles <path-to-ca-cert.pem
ماذا يحدث؟
CA.يتم إدخال المستخدم في قاعدة بيانات الـ
user1 / user1pw).مثل( ُيعطى اسم مستخدم وكلمة مرور مؤقتة
) (Enrollالتسجيل الفعلي 2.
.يقوم المستخدم باستخدام بيانات التسجيل الستالم هويته
:مثال
\ fabric-ca-client enroll
\ >-u https://user1:user1pw@<ca-server
>--tls.certfiles <path-to-ca-cert.pem
:النتيجة
.على جهاز المستخدم ) (private keyيتم إنشاء مفتاح خاص
تحتوي على المفتاح العام وهوية ) (certificateيتم استالم شهادة رقمية
.المستخدم
ماذا تحتوي ملفات الهوية؟ 3.
:بعد التسجيلُ ،ينشأ مجلد يحتوي على
(.key).ملف المفتاح الخاص keystore/:
(.pem).ملف الشهادة الرقمية signcerts/:
CA.شهادة الـ cacerts/:
Fabric.يحتوي جميع الملفات المطلوبة لتكوين هوية msp/:
كيف ُتستخدم هذه الهوية؟ 4.
عند التفاعل مع الشبكة (مثل إرسال معاملة) ،يستخدم المستخدم المفتاح
.الخاص لتوقيع الطلب
.العقد األخرى تستخدم الشهادة والمفتاح العام للتحقق من التوقيع
MSP.تتم المصادقة على المستخدم بناًء على هذه الشهادة ضمن إطار
رسم توضيحي مبسط للخطوات
][Admin] --------> [CA
| |
Register User |
| |
[User] <-------- Enroll
|
Generates Key + Receives Certificate
إلنشاء ) bash scriptأو Dockerمثل( هل ترغب أن أرسل لك سكريبت أو ملف إعداد آلي
؟ Fabricمستخدمين في شبكة
وكيفية )العقدة( Peerسؤال ممتاز! اآلن لننتقل إلى الهوية الرقمية الخاصة بـ
Fabric CA.إنشائها باستخدام
Hyperledger Fabricفي Peerهوية الـ
ما الهدف منها؟
:ضرورية لتمكينه من Peerهوية الـ
CA).و Ordererمثل( التواصل اآلمن مع باقي مكونات الشبكة
.االنضمام إلى القنوات
تنفيذ وتأييد المعامالت.
المصادقة من ِقبل الشبكة والتحقق من شرعيته.
خطوات إنشاء هويةPeer باستخدامFabric CA
1. تسجيل الـPeer (Register the Peer)
يقوم مسؤول الشبكة،( مثل المستخدمAdmin) بتسجيل الـPeer فيCA.
مثال:
fabric-ca-client register \
--id.name peer0 \
--id.secret peer0pw \
--id.type peer \
--id.affiliation org1.department1 \
--tls.certfiles <path-to-ca-cert.pem>
--id.type peer: ُيحدد نوع الهوية كعقدةPeer.
--id.name و--id.secret: اسم وكلمة مرور مؤقتة.
2. تسجيل الـPeer (Enroll the Peer)
نقوم بتسجيل العقدة فعلًيا لتوليد المفاتيح واستالم الشهادة،بعد التسجيل.
مثال:
fabric-ca-client enroll \
-u https://peer0:peer0pw@<ca-server> \
--csr.hosts peer0.org1.example.com \
--tls.certfiles <path-to-ca-cert.pem>
النتيجة:
توليد مفتاح خاص للـPeer.
استالم شهادة رقمية تحمل هوية الـPeer.
إعدادMSP المحلي للعقدة.
TLS Identity for Peer ()اختياري لكن مهم
عقد الـPeer تحتاج أيًضا إلى شهادةTLS لتأمين االتصال.
Enroll TLS Certificate:
fabric-ca-client enroll \
-u https://peer0:peer0pw@<ca-server> \
--enrollment.profile tls \
--csr.hosts peer0.org1.example.com \
--tls.certfiles <path-to-ca-cert.pem>
يتم إنشاء شهادة خاصة بتأمين االتصال عبرTLS.
ُتستخدم في إعدادات الشبكة بين العقد.
الملفات الناتجة:
يحتوي على، نحصل على هيكل ملفات مشابه للمستخدم،بعد عملية التسجيل:
.المفتاح الخاص keystore/:
.شهادة الهوية signcerts/:
.الجذرية CAشهادة cacerts/:
TLS.شهادة tlscacerts/:
.حزمة الهوية الكاملة msp/:
أين ُتستخدم هذه الهوية؟
يتم تمرير مسار المجلد CLI،أو Dockerباستخدام Peerعند تشغيل عقدة
.الذي يحتوي على ملفات الهوية
باالنضمام إلى Peerيتم التحقق من هذه الهوية من قبل الشبكة للسماح للـ
chaincode.القنوات وتثبيت الـ
ملخص سريع
crypto-أو ملف Dockerباستخدام Peerهل ترغب أن أرسل لك مثاًال جاهًز ا لتوليد هوية
؟ cryptogenالخاص بـ config.yaml
Hyperledgerفي Orderer Nodeممتاز! دعنا نكمل الصورة اآلن ونتحدث عن هوية الـ
.والتي ُتعتبر أساسية لتأمين وإدارة خدمة ترتيب المعامالت في الشبكة Fabric،
Hyperledger Fabricفي Ordererهوية الـ
ما الهدف منها؟
ُ:تستخدم من أجل Ordererهوية الـ
CA).و (Peersالمصادقة عند االتصال بالعقد األخرى
Raft).مثل( المشاركة في خوارزمية التوافق
.توقيع كتل المعامالت قبل إرسالها
.إثبات أنه عقدة ترتيب شرعية تابعة لمنظمة موثوقة
Fabric CAباستخدام Ordererخطوات إنشاء هوية
) Orderer (Register the Ordererتسجيل الـ 1.
orderer node.بتسجيل CAيقوم مسؤول
:مثال
\ fabric-ca-client register
\ --id.name orderer1
\ --id.secret orderer1pw
\ --id.type orderer
--id.affiliation ordererorg.department1 \
--tls.certfiles <path-to-ca-cert.pem>
--id.type orderer: ُيحدد أن هذه الهوية خاصة بعقدةOrderer.
--id.affiliation: مثًال( ُيربط الهوية بمنظمة الترتيبordererorg).
2. ( تسجيل فعليEnroll the Orderer)
نقوم بالتسجيل الفعلي للحصول على المفتاح والشهادة،بعد التسجيل.
مثال:
fabric-ca-client enroll \
-u https://orderer1:orderer1pw@<ca-server> \
--csr.hosts orderer1.example.com \
--tls.certfiles <path-to-ca-cert.pem>
ُيولد مفتاح خاص ويتم استالم شهادة هوية رقمية.
TLS Identity for Orderer
لالتصال اآلمن بينorderers وpeers، نحتاج أيًضا إلى شهادةTLS:
fabric-ca-client enroll \
-u https://orderer1:orderer1pw@<ca-server> \
--enrollment.profile tls \
--csr.hosts orderer1.example.com \
--tls.certfiles <path-to-ca-cert.pem>
هذا التسجيل ُينتج شهادةTLS خاصة.
الملفات الناتجة
تحصل على،بعد التسجيل:
msp/: يحتوي على الشهادة والمفتاح والـCA.
tls/: يحتوي على شهادةTLS، وشهادة، المفتاح الخاصCA الجذرية الخاصة بـ
TLS.
keystore/, signcerts/, cacerts/, tlscacerts/ كما هو الحال معPeer.
استخدام الهوية
عند تشغيلorderer node ( باستخدامDocker أوKubernetes)، يتم تمرير
مسارات هذه الملفات إلىorderer configuration.
وللمصادقة عند االتصال بالـ، هذه الهوية ُتستخدم لتوقيع الكتلPeers أو
Orderers في حال استخدام( اآلخرينRaft).
ملخص سريع
هل ترغب أن أرسل لك نموذج تكوين فعلي لـorderer.yaml أو إعداداتDocker
Compose لعقدةOrderer باستخدام هذه الهويات؟
Hyperledger Fabric،في ) (Organizationسؤال رائع! دعنا نوضح اآلن دور المنظمة
.وما الهوية الخاصة بها ،وما الذي يميزها في الشبكة
؟ Hyperledger Fabricفي ) (Organizationما هي المنظمة
:التعريف
تمثل كياًنا مستقًال (مثل شركة أو ) (Organizationالمنظمة Hyperledger Fabric،في
.مؤسسة حكومية) يشارك في شبكة البلوكتشين
:كل منظمة تمتلك
(MSP).هياكل هوية خاصة بها
(Peers).مجموعة من المستخدمين والعقد
(Admins).مدراء
.سياسات وصول وموافقة محددة
.تابع لها CAأو ) (CAشهادة رقمية
:مكونات المنظمة
)1. Membership Service Provider (MSP
.هو المكون المسؤول عن إدارة الهويات داخل المنظمة
:يحتوي على
.الجذرية CAشهادات o
(Admins).شهادات المشرفين o
).الوحدات التنظيمية( o OUs
.إلخ peer،السياسات التي تحدد من هو المشرف ،العضو ،الـ o
)2. Certificate Authority (CA
.مركزي CAخاص بها أو تشترك في CAكل منظمة يمكن أن يكون لها
(Admins، Peers، Users...).يقوم بإصدار الشهادات لجميع عناصر المنظمة
3. Admins
.هويات المشرفين الذين يتحكمون في إعدادات المنظمة
:يمكنهم
.إنشاء قنوات o
.الموافقة على تحديث السياسات o
chaincode.تثبيت وتحديث o
4. Peers
.عقد تابعة للمنظمة ،تشارك في تنفيذ المعامالت وتخزين السجل
) (Organizational Identityهوية المنظمة
:المنظمة نفسها ال تمتلك "شهادة" واحدة ثابتة ،بل ُتعرف عن طريق
Org1MSP).مثل( معرف ثابت ومميز للمنظمة داخل الشبكة MSP ID:
الجذرية :الشهادة الجذرية التي ُتستخدم للتحقق من صالحية جميع هويات CA
.أعضائها
.الشهادات المخصصة لهويات المشرفين Admins MSP:
ما هو دور المنظمة في الشبكة؟
.التحكم في هويات المستخدمين والعقد داخلها 1.
مثل إعدادات القناة ،أو( التوقيع والموافقة على سياسات الشبكة 2.
chaincode).
تحديد السياسات مثل :من يمكنه تأييد المعامالت أو الوصول إلى 3.
.القنوات
(Consortium).المشاركة في التوافق إذا كانت جزًءا من التحالف 4.
مثال :كيف يتم التعرف على منظمة في الشبكة؟
:عند التحقق من معاملة
العقد األخرى تقرأ شهادة التوقيع وتتحقق هل صاحبها ينتمي إلى منظمة معترف
.بها
.للتحقق من صحة التوقيع MSPتستخدم الشهادة الجذرية في
.يتم تطبيق السياسات بناًء على ما إذا كان الكيان ينتمي فعًال للمنظمة المطلوبة
ملخص
أو في ملفات configtx.yamlهل ترغب أن أرَيك كيف يتم تمثيل منظمة داخل تكوين
إعداد الشبكة؟
(Channel).وهو القناة Hyperledger Fabric،رائع! اآلن ننتقل إلى عنصر محوري في
.تميز الشبكة وتمنحها خصوصية وتحكم دقيق في البيانات Fabricالقنوات في
؟ Hyperledger Fabricفي ) (Channelما هي القناة
:التعريف
ُتستخدم لتمكين Hyperledger Fabric،القناة هي طبقة اتصال خاصة ضمن شبكة
وعقود ذكية ) (Ledgerمجموعة محددة من المنظمات من مشاركة دفتر حسابات
.بشكل معزول عن باقي الشبكة )(Chaincode
:كل قناة هي بلوكتشين مستقلة
.لها دفتر حسابات خاص بها
.لها إعدادات سياسات خاصة
ُ.تشارك فقط بين أعضاء محددين (منظمات)
لماذا ُتستخدم القنوات؟
:الفوائد األساسية
الخصوصية :البيانات والمعامالت ضمن القناة ال ُترى إال لألعضاء المشاركين 1.
.فيها
.العزل :كل قناة لها سلسلة كتل منفصلة ،مما يمنع تداخل البيانات 2.
مختلف أو نفس chaincodeمرونة التكوين :يمكن لكل قناة استخدام 3.
.بمنطق مختلف chaincode
حوكمة منفصلة :يمكن أن يكون لكل قناة سياسات خاصة بها (مثل من يوقع4. ،
.من يؤيد ،من ُيدير)
:المكونات التقنية داخل القناة
:أنواع القنوات
) (Single Channelقناة فردية 1.
.كل المنظمات تعمل على نفس القناة
.دفتر واحد مشترك للجميع
.مناسب إذا لم يكن هناك بيانات سرية أو فصل مطلوب
) (Multi-Channelقنوات متعددة 2.
.تستخدم عندما تحتاج المنظمات لعزل البيانات
.منفصل Ledgerكل قناة لها
.كل منظمة قد تنتمي ألكثر من قناة
:مثال
"channelA".يشتركان في قناة Org2و Org1
"channelB".يشتركان في قناة Org3و Org2
Org3.ال ُترى من قبل " "channelAالمعامالت في
كيف يتم إنشاء القناة؟
1. configtxgen.باستخدام ) (Genesis Blockتكوين القناة Blockإنشاء
2. orderer node.إرسال طلب إنشاء القناة إلى
3. peer channel join.إلى القناة من خالل أمر ) (Peersانضمام العقد
4. .لتسهيل التواصل بين المنظمات Anchor Peersتكوين
:هوية القناة
:الذي يحتوي channel.txالقناة ُتحدد عبر ملف
.أسماء المنظمات المشاركة o
.إعدادات السياسات o
.هويات المشرفين o
.خاص بها لتحديد صالحيات األعضاء MSPكل قناة لها
ملخص
؟ peer CLIو configtx.yamlهل ترغب أن ُأريك مثاًال عملًيا إلنشاء قناة باستخدام
Hyperledger Fabric.سؤال مهم جدًا ،وهو جوهري لفهم كيفية عمل
تمر بعدة خطوات حسب (Peer)،إلى العقدة ) (Clientعند وصول المعاملة من العميل
).أو غير مؤيدة " "Endorsing Peerهل هي مؤيدة( نوع العقدة
:دعنا نشرح ذلك بالتفصيل وبالترتيب
؟ Clientعند استالم معاملة من Peerما الذي تقوم به العقدة
أوًال :التوضيح العام
(Endorsingالمعاملة ال ُترسل مباشرة إلى الشبكة لُتسَّج ل ،بل تمر أوًال بعقد التأييد
.للحصول على الموافقة )Peers
.وليس معاملة نهائية " (Proposal)،العميل ُيرسل "طلب تأييد
):عقدة التأييد( Peerالخطوات التفصيلية داخل الـ
) (Authenticationالتحقق من التوقيع والهوية 1.
CAالعقدة تتحقق من أن العميل يملك هوية رقمية صالحة وموقعة من
.معتمد
يتم التحقق من التوقيع الرقمي باستخدام المفتاح العام الموجود في شهادة
.العميل
) (Access Controlالتحقق من الصالحيات 2.
استدعاء( يتم فحص ما إذا كان المستخدم مخوًال بتنفيذ العملية المطلوبة
MSP.بناًء على السياسات المعرفة في )معّين مثًال chaincode
) (Simulationتنفيذ المعاملة بشكل تجريبي 3.
على البيانات الحالية دون تعديل chaincodeالعقدة تقوم بمحاكاة تنفيذ
.السجل الفعلي
"Read/Write Set":يتم إنتاج
؟ chaincodeما البيانات التي قرأها o
وما البيانات التي سيتم تعديلها إن تمت الموافقة؟ o
) (Endorsementتوقيع نتيجة التنفيذ 4.
) (Read/Write Setإذا تم التنفيذ بنجاح ،تقوم العقدة بتوقيع نتيجة المحاكاة
.باستخدام مفتاحها الخاص
ُ "endorsement signature".يسمى هذا بـ
) (Proposal Responseإعادة الرد إلى العميل 5.
:يتم إرسال الرد إلى العميل ،ويتضمن
.نتائج المحاكاة o
.توقيع التأييد o
.هوية العقدة المؤيدة o
بعد ذلك ،ماذا يفعل العميل؟
يجمع التأييدات من عدد كاٍف من العقد حسب سياسة التأييد
(Endorsement Policy).
ليتم ترتيبها ) (Ordering Serviceثم ُيرسل المعاملة إلى خدمة الترتيب
.وتوزيعها على جميع العقد
ملخص على شكل جدول
:مالحظة مهمة
.العقدة التي تستقبل المعاملة ليست بالضرورة من تقوم بكتابتها في السجل
كتابة المعاملة في السجل تتم الحًقا بواسطة العقد الملتزمة
بعد أن تقوم خدمة الترتيب بترتيب المعاملة )(Committing Peers
.وتوزيعها في كتلة
عند استالم ) (Committing Peerهل ترغب أن أشرح أيًضا ما تقوم به العقدة الملتزمة
؟ ordererالكتلة من
ممتاز! دعنا نكمل اآلن سلسلة المعالجة ونتحدث عن ما تقوم به العقدة الملتزمة
Orderer.عند استالم كتلة من الـ )(Committing Peer
(Ledger).هذا الجزء مسؤول عن التحقق النهائي وتسجيل المعامالت في السجل
عند استالم الكتلة؟ Committing Peerما الذي تقوم به
من خدمة الترتيب ،تقوم العقدة الملتزمة بتنفيذ 4خطوات ) (Blockعند استالم كتلة
:رئيسية
التحقق من صالحية الكتلة 1.
معروف وموقع ordererأوًال ،تتحقق العقدة من أن الكتلة صادرة من
TLS).بواسطة( باستخدام شهادة رقمية موثوقة
.يتم التأكد من سالمة تركيبة الكتلة ومحتواها
التحقق من كل معاملة داخل الكتلة 2.
:بالنسبة لكل معاملة في الكتلة ،يتم
) (Endorsement Policyأ .التحقق من سياسة التأييد
تفحص العقدة هل المعاملة تحتوي على عدد كاٍف من التأييدات؟
هل التأييدات صادرة من العقد المطلوبة حسب السياسة؟
.يتم التحقق من توقيعات العقد المؤيدة باستخدام شهاداتها
(MVCC Check – Multi Version Concurrencyب .التحقق من تناسق البيانات
)Control
تتأكد العقدة أن البيانات التي قرأها العميل أثناء محاكاة المعاملة لم تتغير منذ
.تلك اللحظة
.هذا يمنع تضارب البيانات أو التالعب (مثًال :منع ازدواجية اإلنفاق)
ج .التحقق من التوقيع النهائي للعميل
.يتم التأكد أن العميل الذي أرسل المعاملة هو فعًال من وقعها
) (Valid / Invalidتصنيف المعامالت 3.
:إذا نجحت المعاملة في جميع االختبارات
ُ (Valid).تعَّلم بأنها صالحة o
:إذا فشلت (مثل عدم تحقق التأييد أو تعارض بيانات)
ُ (Invalid).تعَّلم بأنها غير صالحة o
جميع المعامالت ُتسَّج ل في السجل ،لكن فقط الصالحة ُتطَّبق على
(World State).الحالة
) (Ledgerتحديث السجل 4.
:من جزأين Fabricيتكّون سجل
ُ.يسجل كل المعامالت (صالحة وغير صالحة) Blockchain:
ُ.تحَّدث فقط بالمعامالت الصالحة ):الحالة العالمية( World State
:العقدة تقوم بـ
.إضافة الكتلة إلى سلسلة الكتل
.بالتغييرات الناتجة عن المعامالت الصالحة World Stateتحديث
ملخص على شكل جدول
:مالحظة مهمة
تشّغل نفس ) Committingأو Endorsingسواء كانت( Peersجميع الـ
.سلسلة الكتل و نفس السجل لضمان التوافق الكامل في الشبكة
الفرق فقط في األدوار :التأييد يحصل قبل إرسال المعاملة ،وااللتزام يحصل بعد
.الترتيب والتحقق النهائي
هل ترغب أن أرفق لك رسًما توضيحًيا أو سيناريو عملي يوضح هذه الخطوات
بالتسلسل؟
ممتاز! اآلن ننتقل إلى العنصر األساسي الثالث في سلسلة معالجة المعاملة
).عقدة الترتيب( Ordererوهو الـ Hyperledger Fabric،في
ُيعتبر بمثابة "قلب الشبكة" ،حيث يقوم بترتيب المعامالت وتركيبها في كتل Ordererالـ
.وإرسالها إلى العقد المشاركة في القناة (Blocks)،
؟ Ordererما وظيفة الـ
:مسؤول عن Ordererالـ
.استالم المعامالت من العمالء (بعد حصولها على التأييدات) 1.
.ترتيب المعامالت زمنًيا حسب وقت وصولها 2.
(Blocks).تجميع المعامالت في كتل 3.
.المشاركين في القناة Peersتوزيع الكتل على كل الـ 4.
Ordererالخطوات التفصيلية التي يقوم بها
) (Clientاستالم المعامالت من العميل 1.
.العميل يرسل معاملة نهائية موقعة تحتوي على التأييدات الالزمة
.ال يقوم بتنفيذ أو التحقق من المعاملة من حيث المحتوى Ordererالـ
.دوره فقط هو استقبالها وحفظ ترتيبها
) (Transaction Orderingترتيب المعامالت 2.
.يتم وضع المعامالت في قائمة حسب الزمن الذي وصلت فيه
ordering service (Solo, Kafka,يتم تطبيق آلية توافق حسب نوع الـ
Raft).
) (Batchingتجميع المعامالت في كتل 3.
عندما تصل عدد معين من المعامالت ،أو يمر وقت محدد (حسب إعدادات
:القناة) ،يتم
.تجميع المعامالت في كتلة واحدة o
orderer.توقيع الكتلة باستخدام شهادة الـ o
Peersإرسال الكتلة إلى الـ 4.
ُ (committing peers).ترسل الكتلة إلى كل العقد المشاركة في القناة
يقوم بالتحقق من المعامالت وتحديث دفتر الحسابات حسب Peerكل
.الصالحية
؟ Ordererماذا ال يفعله
ال يفحص سياسة التأييد أو التوقيعات)
.ال يتحقق من صحة المعامالت (
.أو يحاكي المعامالت chaincodeال ينفذ
.فقط يقوم بـ الترتيب والتوزيع
Orderer:آليات التوافق التي يستخدمها
.هي اآللية الموصى بها حاليًا : Raftمالحظة
ملخص على شكل جدول
يوضح كيف يتم انتخاب القائد وتوزيع Raftهل ترغب أن أريك سيناريو حقيقي باستخدام
؟ orderersالكتل على
هي حجر األساس ) (Consensus Mechanismsسؤال ممتاز جدًا ،ألن آليات التوافق
Hyperledger Fabric.في أي نظام بلوكتشين ،حتى في
يفصل التوافق عن التنفيذ ،إال أن وجود توافق في خدمة الترتيب Fabricورغم أن
.أمر ضروري وحاسم )(Ordering Service
؟ Ordererفي ) (Consensusما الغرض من آليات التوافق
:الهدف الرئيسي
.على نفس ترتيب المعامالت في الشبكة ) (Peersضمان اتفاق جميع العقد
لماذا هذا مهم؟
.في شبكة موزعة ،تصل المعامالت من عمالء مختلفين وفي أوقات مختلفة
بدون وجود ترتيب موحد وموثوق للمعامالت ،ستختلف دفاتر الحسابات بين
.العقد ،مما يؤدي إلى فوضى وفقدان التزامن
Orderer:وظائف آليات التوافق في
) Ordererعبر( Fabricأنواع آليات التوافق في
عن البلوكشين التقليدي؟ Fabricلماذا تختلف
التوافق ال ُيستخدم للتحقق من المعامالت أو توليد الكتل عبر Fabric،في
.التعدين
.بل ُيستخدم حصرًيا لضمان ترتيب موحد وموثوق للمعامالت
:مثال مبسط
Peer:لنفترض أن لدينا عقدتين
A.العميل ُ 1يرسل معاملة
B.العميل ُ 2يرسل معاملة
:بدون توافق
A.قبل Bقد يرى Peer1
B.قبل Aقد يرى Peer2
(world state).هذا يسبب تضارب في سجل الحالة
Orderer:لكن باستخدام التوافق في
B.ثم : Aيستقبلون الكتلة Peersجميع الـ
.ويتم تطبيق التغييرات بنفس الترتيب
Orderer:ملخص الفائدة من التوافق في
1. .الحفاظ على دفتر حسابات موّح د
2. .حماية من المعامالت المتزامنة المتعارضة
3. .توفير استقرار وشفافية في معالجة البيانات
4. .دعم شبكة موزعة بإجماع على الترتيب
بما في ذلك القائد ( Fabricفعلًيا داخل شبكة Raftهل ترغب أن أشرح كيف يعمل
؟)والتبديل التلقائي في حال فشل العقدة
(Consensusكآلية توافق Raftرائع! دعني أشرح لك كيف يعمل بروتوكول
(Ordering Service).وخاصًة في نظام الترتيب Hyperledger Fabric،داخل )Mechanism
؟ Raftما هو
وهدفها (Leader-based consensus)،هو خوارزمية توافق مبنية على مفهوم القيادة Raft
تتفق دائًما على ترتيب موّح د ) (Orderersهو ضمان أن جميع عقد الترتيب
.للمعامالت ،حتى في حالة فشل أو تعطل بعض العقد
؟ Hyperledger Fabricداخل Raftكيف يعمل
Raft:مكونات نظام 1.
العقدة التي تستقبل المعامالت من العمالء وتقوم ):القائد( Leader
.بتجميعها في كتل ثم توزيعها
عقد ترتيب أخرى تتلقى الكتل من القائد وُتطابق ):المتابعين( Followers
.السجل
عند فشل القائد ،يمكن ألي تابع أن يترشح ليصبح ):مرشح( Candidate
.القائد الجديد
:الخطوات التفصيلية
) (Leader Electionانتخاب القائد 1.
.عند بدء التشغيل ،تنتخب العقد نفسها تلقائًيا وُتعِّين قائًدا
في حالة عدم وجود قائد خالل فترة زمنية قصيرة ،تبدأ العقد بانتخاب واحد
(Candidate).
استقبال المعامالت 2.
.القائد هو الوحيد الذي يستقبل المعامالت من العمالء
.يقوم بتجميعها في كتلة
) (Log Replicationتوزيع الكتلة على المتابعين 3.
(Followers).القائد يرسل الكتلة المقترحة إلى جميع المتابعين
كل عقدة تقوم بكتابة الكتلة مؤقًتا في سجل المعامالت المحلي
(log).
التحقق من األغلبية 4.
عندما تتلقى أغلبية العقد تأكيًدا بأن الكتلة ُس جلت ،يعتبر القائد أن الكتلة
"".ملتزمة
.لجميع المتابعين لتأكيد تثبيت الكتلة رسمًيا " "commitثم يرسل إشارة
Peersإرسال الكتلة إلى 5.
.المرتبطين بالقناة Peersبعد االلتزام ،يوزع القائد الكتلة إلى كل الـ
ما الذي يحدث عند فشل القائد؟
.إذا توّق ف القائد أو انقطع االتصال به ،فإن أحد المتابعين يبدأ انتخابات جديدة
.يتم اختيار قائد جديد تلقائًيا عن طريق التصويت من األغلبية
ُ.يستأنف العمل بشكل طبيعي دون تعطل الشبكة
Raft:متطلبات
.يجب أن تتكون مجموعة الترتيب من عدد فردي من العقد (مثًال 3أو )5
.لعقد االلتزام بالكتل ) (n/2 + 1تحتاج إلى أغلبية
Zookeeper.أو Kafkaال حاجة إلى أدوات خارجية مثل
:مثال عملي
Orderer:لنفترض وجود 3عقد
)القائد الحالي( orderer1
)متابعين( orderer3و orderer2
.يستقبل المعاملة من العميل 1. orderer1
orderer3.و ُ orderer2يرسل الكتلة المقترحة إلى 2.
.كالهما يؤكد االستالم 3.
.بعد تحقق األغلبية ،يتم االلتزام بالكتلة 4.
.كقائد جديد orderer2يتم انتخاب orderer1،في حال تعطل 5.
Fabric:في Raftملخص
ُ Raftيظهر كيفية تفعيل ) orderer.yamlمثل( هل ترغب أن أرسل لك ملف تكوين فعلي
ضمن مجموعة توافق؟ orderersوتكوين
Orderer،و Peerو Clientسؤال ممتاز ومهم جدًا .اآلن وقد فهمت ما يحدث في الـ
:دعنا نكمل الحلقة ونشرح
Hyperledgerفي ) (Channelما الذي يحدث عند القناة
؟Fabric
:مقدمة
القناة هي البيئة المنعزلة التي تتم فيها كل مراحل المعاملة — من التأييد ،إلى الترتيب،
.إلى التحقق ،وحتى التثبيت في السجل
بمعنى آخر" :المعاملة ال ُتعالج على مستوى الشبكة بالكامل ،بل داخل القناة
".فقط
دور القناة في عملية المعاملة
استالم المعاملة ضمن سياق القناة 1.
:مثًال( يكون ذلك باسم قناة محددة Orderer،عندما ُيرسل العميل المعاملة إلى الـ
mychannel).
ترتبط بالقناة التي تنتمي Ordererالكتلة التي يتم إنشاؤها من قبل الـ
.لها المعاملة
.الذين انضموا إلى تلك القناة Peersوبالتالي ،ال ُترسل الكتلة إال إلى
السياسات والسيطرة داخل القناة 2.
:كل قناة تحتوي على إعدادات خاصة بها ،مثل
تحديد المشاركين في المعاملة 3.
:بما أن القناة تضم فقط منظمات محددة
orderer.المنتمية لتلك القناة تستلم الكتلة من Peersفقط الـ
.فقط المستخدمين التابعين لمنظمات القناة يمكنهم تقديم معامالت
التنفيذ والتحقق داخل القناة 4.
داخل القناة (Committing Peers) ،كل معاملة داخل كتلة تمر بالتحقق عبر العقد الملتزمة
:باستخدام
.الخاصة بالقناة للتحقق من الهويات MSPs
.الخاصة بالقناة للتحقق من صحة التأييد Policies
أهمية القناة في الحفاظ على الخصوصية والعزل
ماذا يحدث إذا كانت هناك أكثر من قناة؟
.كل قناة تعمل وكأنها شبكة بلوكتشين مستقلة
.قد تشارك منظمة في أكثر من قناة
.ال يوجد تداخل في البيانات أو العقود بين القنوات
:مثال عملي للتوضيح
1. ُ channelA.يرسل معاملة إلى Org1عميل تابع لـ
2. .فقط channelAفي Peersيرسل الكتلة إلى Orderer
3. .تتحقق من المعاملة باستخدام سياسة تلك القناة channelAالعقد داخل
4. channelA.يتم تحديث دفتر الحسابات الخاص بـ
:ملخص ما يحدث عند القناة
ُيظهر إعداد قناة متعددة configtx.yamlهل توّد أن ُأريك مثاًال عملًيا في ملفات
المنظمات ،مع سياسات تأييد مختلفة؟
Hyperledger Fabric:ممتاز! اآلن نصل إلى أحد أهم مكونات
Chaincode.باسم Fabricوالذي ُيعرف في (Smart Contract)،وهو العقد الذكي
؟ Hyperledger Fabricفي Smart Contractما هو
:التعريف
:وُيستخدم لتنفيذ منطق األعمال ،مثل Fabricالعقد الذكي هو برنامج ُينشر على شبكة
إنشاء سجل جديد
تحديث البيانات
تنفيذ شروط معينة بناًء على المعطيات
) (Docker containerوُيشَّغل داخل حاوية Chaincodeيسمى العقد الذكي Fabric،في
(Peers).على العقد
(Chaincode):وظائف العقد الذكي
كيف ُيستخدم العقد الذكي؟
) (Installالتثبيت 1.
(endorsing peers).على العقد المؤيدة Chaincodeيتم تثبيت
.هذه الخطوة محلية للعقد
) (Approveالموافقة 2.
ضمن القناة ،باستخدام سياسة Chaincodeكل منظمة توافق على تعريف
chaincode definition.
) (Commitالنشر 3.
.بعد موافقة العدد الكافي من المنظمات ،يتم تثبيت العقد على القناة
) (Invoke/Queryاالستدعاء 4.
.لتنفيذ وظيفة معينة ) (Invokeالعميل يرسل طلب إلى العقد الذكي
Read/Write Set.العقدة المؤيدة تقوم بمحاكاة تنفيذ الوظيفة وتوليد
World State.في حال التأكيد وااللتزام ،يتم تنفيذ التعديالت على
ما الذي يمكن للعقد الذكي فعله؟
)" (conditionsتنفيذ منطق "إذا ...فإن
التحقق من القيود
إدارة حسابات أو أرصدة
) (multi-party logicإجراء عمليات تحقق متعددة
تعديل وإرجاع البيانات
:بعض اللغات المدعومة
)األكثر استخداًما( Go
)JavaScript / TypeScript (Node.js
)أقل شيوعًا( Java
أين يتم تخزين العقد الذكي؟
Peer.على Dockerيتم تشغيله داخل حاوية
.يحتفظ بنسخة من العقد المثبتة عليه Peerكل
ما عالقة العقد الذكي بالمعاملة؟
ملخص
أو Goمكتوب بلغة ) (Chaincodeهل ترغب أن أرسل لك مثاًال عملًيا بسيًطا لعقد ذكي
؟JavaScript