פריסת Hyperledger Fabric: פתרון בלוקצ'יין ארגוני סוהר

כיצד לפרוס Hyperledger Fabric תוך 6–8 שבועות? דמיינו שיש לכם קונסורציום של חמש חברות, שכל אחת רוצה לשלוט בגישה לעסקאותיה תוך שמירה על ספר חשבונות משותף אחד. בלוקצ'יין ציבורי עם מטבע קריפטוגרפי מקורי אינו מתאים—אתם צריכים רשת מורשית שבה כל משתתף

שירותי פיתוח בלוקצ'יין

שאלות נפוצות

העבודות האחרונות

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1450
  • image_web-applications_feedme_466_0.webp
    פיתוח אפליקציית ווב עבור FEEDME
    1309
  • image_websites_belfingroup_462_0.webp
    פיתוח אתר עבור BELFINGROUP
    1004
  • image_ecommerce_furnoro_435_0.webp
    פיתוח חנות מקוונת לחברת FURNORO
    1270
  • image_logo-advance_0.webp
    עיצוב לוגו לחברת B2B Advance
    719
  • image_crm_enviok_479_0.webp
    פיתוח אפליקציית ווב עבור Enviok
    1011

כיצד לפרוס את Hyperledger Fabric תוך 6–8 שבועות?

דמיינו שיש לכם קונסורציום של חמש חברות, שכל אחת רוצה לשלוט בגישה לעסקאות שלה תוך שמירה על ספר חשבונות משותף אחד. בלוקצ'יין ציבורי עם מטבע קריפטוגרפי מובנה אינו מתאים—אתם זקוקים לרשת מורשית שבה כל משתתף מאומת. Hyperledger Fabric הוא התקן למשימות כאלה: הוא מספק בידוד ערוצים, נתונים פרטיים, ומודל ביצוע המופרד מקונצנזוס. פרסנו את Fabric במשך שנים, עם 20+ פרויקטים בייצור. להלן הגישה הקונקרטית: כיצד לתכנן ולהשיק רשת תוך 6–8 שבועות ללא מלכודות טיפוסיות. השוואות עם בלוקצ'יינים אחרים מראות ש-Fabric על Raft מעבד עד 1000 TPS, מהיר פי 3 ממודול Kafka בגרסאות ישנות יותר.

מדוע Fabric היא הבחירה הטובה ביותר לקונסורציום?

Hyperledger Fabric היא בלוקצ'יין מורשה המספק בקרת גישה באמצעות תעודות PKI וערוצים. בניגוד לרשתות ציבוריות, כל משתתף מזוהה, ונתונים חסויים מוגנים באמצעות Private Data Collections. Fabric משתמשת במודל Execute-Order-Validate, המשפר ביצועים ומפחית השהיה. לפי מדדי Hyperledger, Fabric משיגה 1000 TPS בתצורה עם 5 ארגונים ו-3 צמתי orderer. זה מהיר פי 2 מ-Ethereum על proof-of-authority בתצורה דומה.

מהם מושגי הארכיטקטורה המרכזיים של Fabric?

ארגונים הם משתתפי הרשת. לכל ארגון יש רשות אישורים (CA) ו-MSP משלו. עסקאות נחתמות עם תעודות מ-CAs ספציפיים; אין אנונימיות. Peers הם צמתים המאחסנים את ספר החשבונות ואת ה-chaincode. הם מחולקים למאשרים (מבצעים chaincode וחותמים על תוצאות) ומתחייבים (רק מאמתים בלוקים). Orderer הוא שירות סידור העסקאות. לייצור אנו משתמשים ב-Raft, המספק סובלנות לתקלות עד (N-1)/2 צמתים. ערוצים הם ספרי חשבונות מבודדים בתוך הרשת: ארגונים A ו-B יכולים לקבל ערוץ פרטי בלתי נראה ל-C. Chaincode הם חוזים חכמים ב-Go, Java או Node.js, המבוצעים בקונטיינרים של Docker על peers מאשרים.

מדוע מודל Execute-Order-Validate הוא קריטי?

זהו הבדל יסודי מ-Ethereum. עסקה עוברת שלושה שלבים:

  1. Execute: הלקוח שולח הצעה ל-peers מאשרים; הם מדמים ביצוע chaincode, מחזירים ערכי read/write וחתימות.
  2. Order: הלקוח אוסף אישורים (חייבים לעמוד במדיניות האישור) ושולח אותם ל-orderer. ה-orderer יוצר בלוק.
  3. Validate: כל peer מאמת עסקאות בבלוק (מדיניות אישור, התנגשויות MVCC) וכותב לספר החשבונות.

MVCC (Multi-Version Concurrency Control) הוא מלכודת נפוצה: אם שני לקוחות קוראים וכותבים בו-זמנית את אותו מפתח, העסקה השנייה מקבלת התנגשות MVCC. תכננו chaincode כדי למזער התנגשויות: השתמשו בפעולות אטומיות או במנעולים זמניים ברמת היישום. בניסיון שלנו, זה מפחית התנגשויות ב-40%.

כיצד להכין את התשתית?

התקינו את קבצי Fabric ותמונות Docker, צרו חומר קריפטוגרפי וערוץ:

curl -sSL https://bit.ly/2ysbOFE | bash -s -- 2.5.6 1.5.9 cryptogen generate --config=./config/crypto-config.yaml --output="crypto-material" configtxgen -profile TwoOrgsOrdererGenesis -channelID system-channel -outputBlock ./system-genesis-block/genesis.block configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/mychannel.tx -channelID mychannel 

מבנה תיקיות טיפוסי: curl -sSL https://bit.ly/2ysbOFE | bash -s -- 2.5.6 1.5.9 cryptogen generate --config=./config/crypto-config.yaml --output="crypto-material" configtxgen -profile TwoOrgsOrdererGenesis -channelID system-channel -outputBlock ./system-genesis-block/genesis.block configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/mychannel.tx -channelID mychannel , config/, docker/, chaincode/.

Docker Compose לרשת דמוית ייצור

services: orderer.example.com: image: hyperledger/fabric-orderer:2.5.6 environment: - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0 - ORDERER_GENERAL_BOOTSTRAPMETHOD=file - ORDERER_GENERAL_BOOTSTRAPFILE=/var/hyperledger/orderer/genesis.block - ORDERER_GENERAL_LOCALMSPID=OrdererMSP - ORDERER_GENERAL_TLS_ENABLED=true ports: ["7050:7050"] peer0.org1.example.com: image: hyperledger/fabric-peer:2.5.6 environment: - CORE_PEER_ID=peer0.org1.example.com - CORE_PEER_LOCALMSPID=Org1MSP - CORE_PEER_TLS_ENABLED=true - CORE_LEDGER_STATE_STATEDATABASE=CouchDB - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb0:5984 ports: ["7051:7051"] couchdb0: image: couchdb:3.3.2 ports: ["5984:5984"] 
קריטריון LevelDB CouchDB
סוג שאילתה חיפוש מפתח-ערך שאילתות עשירות (Mango, JSON)
תמיכה באינדקסים לא כן
שימוש פיתוח, תרחישים פשוטים ייצור, לוגיקה עסקית מורכבת
ביצועים גבוהים עבור get/put פשוט נמוכים יותר אך גמישים יותר

לייצור, CouchDB היא הבחירה מספר אחת: שאילתות עשירות מאיצות פיתוח chaincode מורכב, אינדקסים מאפשרים סינון ללא סריקות מלאות. בבדיקות, CouchDB מספקת עד פי 3 גמישות שאילתות.

כיצד לפרוס Chaincode?

מחזור החיים של chaincode ב-Fabric 2.x דורש אישור מכל ארגון. שלבים:

  1. אריזת chaincode לארכיון.
  2. התקנת החבילה על כל peer מאשר.
  3. אישור הגרסה מכל ארגון.
  4. ביצוע commit של האישורים.
peer lifecycle chaincode package my-contract.tar.gz --path ./chaincode/my-contract --lang golang --label my-contract_1.0 peer lifecycle chaincode install my-contract.tar.gz peer lifecycle chaincode approveformyorg --channelID mychannel --name my-contract --version 1.0 --package-id <PACKAGE_ID> --sequence 1 --tls --cafile $ORDERER_CA peer lifecycle chaincode commit --channelID mychannel --name my-contract --version 1.0 --sequence 1 --peerAddresses peer0.org1.example.com:7051 --peerAddresses peer0.org2.example.com:9051 --tls --cafile $ORDERER_CA 

כל שדרוג chaincode מגדיל את scripts/. כל הארגונים המשתתפים חייבים לאשר את הגרסה החדשה.

כיצד להבטיח סודיות עם Private Data Collections?

Private Data Collections (PDC) מאפשרות אחסון נתונים הנראים רק לתת-קבוצה של ארגונים. ה-hash של הנתונים נכתב לספר החשבונות הציבורי. זה קריטי לתרחישי B2B: שתי חברות רואות פרטי עסקה, שלישית רואה רק את העובדה. הגדירו באמצעות קובץ services: orderer.example.com: image: hyperledger/fabric-orderer:2.5.6 environment: - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0 - ORDERER_GENERAL_BOOTSTRAPMETHOD=file - ORDERER_GENERAL_BOOTSTRAPFILE=/var/hyperledger/orderer/genesis.block - ORDERER_GENERAL_LOCALMSPID=OrdererMSP - ORDERER_GENERAL_TLS_ENABLED=true ports: ["7050:7050"] peer0.org1.example.com: image: hyperledger/fabric-peer:2.5.6 environment: - CORE_PEER_ID=peer0.org1.example.com - CORE_PEER_LOCALMSPID=Org1MSP - CORE_PEER_TLS_ENABLED=true - CORE_LEDGER_STATE_STATEDATABASE=CouchDB - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb0:5984 ports: ["7051:7051"] couchdb0: image: couchdb:3.3.2 ports: ["5984:5984"] עם מדיניות כמו peer lifecycle chaincode package my-contract.tar.gz --path ./chaincode/my-contract --lang golang --label my-contract_1.0 peer lifecycle chaincode install my-contract.tar.gz peer lifecycle chaincode approveformyorg --channelID mychannel --name my-contract --version 1.0 --package-id <PACKAGE_ID> --sequence 1 --tls --cafile $ORDERER_CA peer lifecycle chaincode commit --channelID mychannel --name my-contract --version 1.0 --sequence 1 --peerAddresses peer0.org1.example.com:7051 --peerAddresses peer0.org2.example.com:9051 --tls --cafile $ORDERER_CA .

דוגמה collections_config.json
{ "name": "collectionAsset", "policy": "OR('Org1MSP.member', 'Org2MSP.member')", "requiredPeerCount": 2, "maxPeerCount": 3, "blockToLive": 0, "memberOnlyRead": true } 

כמה זמן אורך הפריסה?

שלב משך
תכנון רשת 3–5 ימים
הקמת תשתית ו-PKI 3–5 ימים
פריסה והגדרת רשת 3–5 ימים
פיתוח Chaincode 1–4 שבועות
אינטגרציה עם SDK של לקוח 1–2 שבועות
בדיקות וחיזוק 1–2 שבועות

ציר זמן ריאלי מהתחלה ועד רשת מוכנה לייצור עם chaincode פשוט: 6–8 שבועות. עבור chaincode מורכב עם ערוצים מרובים—2–3 חודשים. הודות לאוטומציה, אנו מפחיתים עבודה טיפוסית ב-30% בהשוואה לפריסה ידנית. עלות הפרויקט מחושבת באופן פרטני והיא בממוצע 25–40% נמוכה יותר מאשר בשימוש בפלטפורמות צד שלישי.

מה כלול במחזור הפריסה המלא?

  • תיעוד פרויקט ותרשים רשת
  • יצירת PKI והקמת CA
  • פריסת צמתי orderer ו-peer על bare-metal או קונטיינרים
  • הגדרת ערוצים ומדיניות גישה
  • פיתוח ובדיקת Chaincode
  • אינטגרציה עם SDKs של לקוח
  • הכשרת צוות הלקוח
  • 30 ימי תמיכה לאחר השקה

הזמינו הדגמה של רשת שכבר נפרסה על נתוני בדיקה—ראו ביצועים ממקור ראשון. קבלו ייעוץ לתכנון הארכיטקטורה של הקונסורציום שלכם. המהנדסים שלנו הם מומחים מוסמכים עם ניסיון בעשרות פרויקטים של Fabric. אנו מבטיחים אמינות וסקלביליות של הפתרון.

לפרטים נוספים על Fabric, ראו את התיעוד הרשמי.