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

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

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

שאלות נפוצות

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

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

כיצד לפרוס את 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, ראו את התיעוד הרשמי.