0% found this document useful (0 votes)
12 views29 pages

شرح hyperledger

Hyperledger Fabric is a permissioned, modular blockchain platform designed for enterprise use, offering confidentiality, scalability, and flexibility through a unique architecture that separates transaction processing into execution, ordering, and validation phases. The platform consists of various components including clients, peers, ordering nodes, and certificate authorities, each playing specific roles in transaction processing and identity management. Fabric enables organizations to form consortia and create private channels, ensuring secure and efficient transaction handling tailored to business needs.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views29 pages

شرح hyperledger

Hyperledger Fabric is a permissioned, modular blockchain platform designed for enterprise use, offering confidentiality, scalability, and flexibility through a unique architecture that separates transaction processing into execution, ordering, and validation phases. The platform consists of various components including clients, peers, ordering nodes, and certificate authorities, each playing specific roles in transaction processing and identity management. Fabric enables organizations to form consortia and create private channels, ensuring secure and efficient transaction handling tailored to business needs.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 29

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‬‬

You might also like