פריסת בלוקצ'יין ארגוני על Hyperledger Besu

פריסת בלוקצ'יין ארגוני על Hyperledger Besu לעתים קרובות אנו נתקלים במצב הזה: אתה צריך רשת בלוקצ'יין תואמת EVM עבור קונסורציום, אבל Geth או Erigon לא מספקים שליטה על המשתתפים. Hyperledger Besu—לקוח Ethereum ארגוני (רישיון Apache 2.0, Java)—פותר את זה. אני

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

שאלות נפוצות

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

  • 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 Besu

לעתים קרובות אנו נתקלים במצב הזה: אתה צריך רשת בלוקצ'יין תואמת EVM עבור קונסורציום, אבל Geth או Erigon לא נותנות שליטה על המשתתפים. Hyperledger Besu—לקוח Ethereum ארגוני (רישיון Apache 2.0, Java)—פותר את זה. זוהי פלטפורמת בלוקצ'יין ארגונית התומכת ברשתות מורשות באמצעות הרשאות מבוססות חוזה חכם, קונצנזוס ארגוני (QBFT, IBFT 2.0, Clique), ואינטגרציה טבעית למערכת האקולוגית של Hyperledger. Besu נבחר כאשר אתה צריך תאימות לחוזים חכמים של Solidity וכלים כמו Hardhat, Foundry ו-MetaMask, בנוסף לבקרת גישה—בניגוד ל-Fabric, שבו כל פעולה דורשת chaincode מותאם אישית.

ארכיטקטורה של רשת מורשית

┌──────────────────────────────────────────────────────┐ │ Besu Network │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Bootnode │ │Validator1│ │Validator2│ ... │ │ │(no vote) │ │(QBFT) │ │(QBFT) │ │ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ │ └─────────────┴─────────────┘ │ │ P2P Network │ │ │ │ ┌──────────────────────────────────────────────┐ │ │ │ Permissioning Contracts │ │ │ │ NodePermissioning AccountPermissioning │ │ │ └──────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────┘ 

איך לבחור קונצנזוס לרשת ייצור?

QBFT הוא האלגוריתם המומלץ לרשתות חדשות. סופיות מיידית לאחר הכללה בבלוק—אין פיצולים. הוא סובל עד (n-1)/3 צמתים ביזנטיים: עם 4 מאמתים, הרשת שורדת צומת זדוני אחד. QBFT מהיר פי 2 מ-IBFT 2.0 בזמן בלוק (2 שניות לעומת 4–5 שניות) ומספק סובלנות תקלות גבוהה יותר. IBFT 2.0 הוא קודמו, פחות יעיל עם קבוצות מאמתים גדולות, ונשמר לתאימות לאחור. Clique—PoA לפיתוח/סטייג'ינג, סופיות הסתברותית. מספר מינימלי של מאמתים ל-QBFT: 4 (סובל כשל אחד). לייצור, אנו ממליצים על 4–7 מאמתים מארגונים שונים.

קונצנזוס סופיות מהירות בלוק סובלנות ביזנטית
QBFT מיידית ~2 שניות (n-1)/3
IBFT 2.0 מיידית ~4-5 שניות (n-1)/3
Clique הסתברותית ~5-15 שניות n/2 (שרשרת)

למה לבחור ב-QBFT?

QBFT מבטיח סופיות עסקה בבלוק אחד. זה קריטי ליישומים פיננסיים שבהם גלגול לאחור עלול לגרום להפסדים. זמן בלוק של 2 שניות בהגדרות ברירת מחדל מספיק לרוב התרחישים הארגוניים. רישיון Apache 2.0 מאפשר שימוש ב-Besu ללא תמלוגים, וחוסך בתקציב. לפי תיעוד Besu, 'QBFT מספק סופיות מיידית וסובל עד (n-1)/3 מאמתים פגומים.'

מה כלול בפריסת Besu סוהר?

  • ארכיטקטורת רשת: חישוב ארגונים, מאמתים, פרמטרי קונצנזוס.
  • יצירת Genesis ומפתחות: באמצעות ┌──────────────────────────────────────────────────────┐ │ Besu Network │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Bootnode │ │Validator1│ │Validator2│ ... │ │ │(no vote) │ │(QBFT) │ │(QBFT) │ │ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ │ └─────────────┴─────────────┘ │ │ P2P Network │ │ │ │ ┌──────────────────────────────────────────────┐ │ │ │ Permissioning Contracts │ │ │ │ NodePermissioning AccountPermissioning │ │ │ └──────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────┘ .
  • תשתית: Docker Compose או Kubernetes, הגדרת גישה לרשת.
  • הרשאות: פריסת חוזי NodePermissioning ו-AccountPermissioning.
  • ניטור: Prometheus + Grafana עם לוח מחוונים רשמי.
  • תיעוד: runbook למפעילים, הוראות להוספת משתתפים חדשים.
  • הכשרת צוות: 2–3 מפגשים על ניהול רשת.
  • תמיכה: שבועיים לאחר ההשקה.
פרטי חוזי הרשאות

חוזי ההרשאות נפרסים ב-genesis או לאחר ההשקה. Besu מספק יישום ייחוס ב-GitHub. ההתקנה כוללת רישום צמתים וחשבונות ראשוניים. להרשאת חשבונות, נעשה שימוש ברשימת כתובות מורשות.

תהליך הפריסה: שלבים

  1. עיצוב רשת: הגדרת הרכב הקונסורציום, מודל הרשאות, קונצנזוס, פרמטרי gas limit. (1–2 ימים)
  2. יצירת הגדרות: יצירת genesis.json, הפצת מפתחות למשתתפים. (יום אחד)
  3. פריסת תשתית: הקמת שרתים, הגדרת Docker/K8s, חומות אש. (2–3 ימים)
  4. השקה וסנכרון: הפעלת bootnode ומאמתים, אימות peering וקונצנזוס. (1–2 ימים)
  5. הרשאות: פריסת חוזים, רישום צמתים וחשבונות ראשוניים. (1–2 ימים)
  6. חוזים חכמים: פריסת לוגיקה עסקית (תלוי בהיקף).
  7. ניטור והתראות: הגדרת Prometheus + Grafana, לוחות מחוונים, התראות. (יום אחד)
  8. תיעוד: runbook, הוראות מפעיל. (1–2 ימים)

קובץ Genesis

{ "config": { "chainId": 1337, "berlinBlock": 0, "londonBlock": 0, "qbft": { "blockperiodseconds": 2, "epochlength": 30000, "requesttimeoutseconds": 4, "blockreward": "0", "validatorcontractaddress": "0x0000000000000000000000000000000000008888" } }, "nonce": "0x0", "timestamp": "0x5b3d92d7", "gasLimit": "0x1fffffffffffff", "difficulty": "0x1", "mixHash": "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365", "coinbase": "0x0000000000000000000000000000000000000000", "alloc": { "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73": { "privateKey": "...", "comment": "validator 1", "balance": "0xad78ebc5ac6200000" } }, "extraData": "0x..." } 

besu operator generate-blockchain-config עבור QBFT חייב להכיל רשימה מקודדת RLP של כתובות מאמתים ראשוניות. השתמש ב-{ "config": { "chainId": 1337, "berlinBlock": 0, "londonBlock": 0, "qbft": { "blockperiodseconds": 2, "epochlength": 30000, "requesttimeoutseconds": 4, "blockreward": "0", "validatorcontractaddress": "0x0000000000000000000000000000000000008888" } }, "nonce": "0x0", "timestamp": "0x5b3d92d7", "gasLimit": "0x1fffffffffffff", "difficulty": "0x1", "mixHash": "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365", "coinbase": "0x0000000000000000000000000000000000000000", "alloc": { "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73": { "privateKey": "...", "comment": "validator 1", "balance": "0xad78ebc5ac6200000" } }, "extraData": "0x..." } כדי ליצור genesis עם מפתחות:

besu operator generate-blockchain-config \ --config-file=qbftConfigFile.json \ --to=networkFiles \ --private-key-file-name=key 

Docker Compose לרשת מקומית

version: '3.8' services: bootnode: image: hyperledger/besu:latest command: | --node-private-key-file=/opt/besu/keys/bootnode/key --data-path=/opt/besu/data --genesis-file=/opt/besu/config/genesis.json --rpc-http-enabled=true --rpc-http-host=0.0.0.0 --rpc-http-port=8545 --rpc-http-api=ETH,NET,QBFT,ADMIN,WEB3 --host-allowlist=* --rpc-http-cors-origins=all --p2p-port=30303 --logging=INFO volumes: - ./config:/opt/besu/config:ro - ./keys:/opt/besu/keys:ro - bootnode-data:/opt/besu/data ports: - "8545:8545" - "30303:30303" validator1: image: hyperledger/besu:latest depends_on: [bootnode] command: | --node-private-key-file=/opt/besu/keys/validator1/key --data-path=/opt/besu/data --genesis-file=/opt/besu/config/genesis.json --bootnodes=enode://${BOOTNODE_PUBKEY}@bootnode:30303 --rpc-http-enabled=true --rpc-http-host=0.0.0.0 --rpc-http-port=8546 --rpc-http-api=ETH,NET,QBFT --p2p-port=30304 volumes: - ./config:/opt/besu/config:ro - ./keys:/opt/besu/keys:ro - validator1-data:/opt/besu/data volumes: bootnode-data: validator1-data: 

איך עובדות הרשאות

ההרשאות מחולקות לשתי רמות. הרשאת צמתים שולטת אילו צמתים יכולים להתחבר לרשת P2P (רשימת enode URL בחוזה, עדכונים דינמיים ללא הפעלה מחדש). הרשאת חשבונות שולטת אילו חשבונות יכולים לשלוח עסקאות ולפרוס חוזים. חוזי ההרשאות נפרסים ב-genesis או לאחר ההשקה.

# Включение permissioning в конфиге ноды --permissions-nodes-contract-enabled=true --permissions-nodes-contract-address=0x0000000000000000000000000000000000009999 --permissions-accounts-contract-enabled=true --permissions-accounts-contract-address=0x0000000000000000000000000000000000008888 

הצוות שלנו, עם שנים של ניסיון בבלוקצ'יין, מגדיר הרשאות לכל תרחיש. רישיון Apache 2.0 הוא חינמי, וחוסך עד $20,000 בהשוואה לפלטפורמות בלוקצ'יין קנייניות. שימוש ב-Docker Compose מפחית עלויות תפעול ב-30% בהשוואה להגדרה ידנית. צור קשר כדי לדון בארכיטקטורת הרשת שלך.

ניטור וניהול

Besu מייצא מדדים בפורמט Prometheus בפורט 9545 (extraData). אנו מתקינים Grafana עם לוח מחוונים רשמי. דוגמה לבקשה לקבלת רשימת המאמתים:

curl -X POST --data '{"jsonrpc":"2.0","method":"qbft_getValidatorsByBlockNumber","params":["latest"],"id":1}' \ http://localhost:8545 

אינטגרציה עם כלים

Besu תואם EVM, כך שהכל עובד ללא שינוי:

  • Hardhat/Foundry: פריסה ובדיקת חוזים.
  • MetaMask: הוספת רשת מותאמת אישית דרך Custom RPC.
  • ethers.js, web3.js, viem: ספריות סטנדרטיות.
  • חוזי OpenZeppelin: תואמים לחלוטין.

לוחות זמנים לפריסה

שלב משימות לוח זמנים
עיצוב רשת הרכב משתתפים, מודל הרשאות, קונצנזוס 1–2 ימים
יצירת הגדרות מפתחות, genesis.json, alloc יום אחד
תשתית שרתים, Docker/K8s, רשת 2–3 ימים
פריסה הפעלת צמתים, סנכרון, אימות 1–2 ימים
הרשאות פריסת חוזים, הגדרת תפקידים 1–2 ימים
ניטור Prometheus, Grafana, התראות יום אחד
תיעוד Runbook, הדרכה 1–2 ימים

צור קשר כדי להעריך את הפרויקט שלך. קבל ייעוץ על ארכיטקטורה ועלות לפריסת Hyperledger Besu. אנו מבטיחים איכות ותמיכה בכל השלבים.