Як розгорнути приватний блокчейн на Hyperledger Besu

Коли дійсно потрібен приватний блокчейн? «Нам потрібен свій блокчейн» — фраза, яку ми чуємо щомісяця. Найчастіше за нею стоїть задача, яку можна вирішити звичайною БД з аудит-логом або permissioned смарт-контрактами на публічному блокчейні. Але є легітимні кейси: консорціумні розрахунки між конку

Напрямки блокчейн-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1450
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1309
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    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

Коли дійсно потрібен приватний блокчейн?

«Нам потрібен свій блокчейн» — фраза, яку ми чуємо щомісяця. Найчастіше за нею стоїть задача, яку можна вирішити звичайною БД з аудит-логом або permissioned смарт-контрактами на публічному блокчейні. Але є легітимні кейси: консорціумні розрахунки між конкуруючими компаніями, коли жодна сторона не довіряє іншій достатньо для розміщення даних на її сервері; державні реєстри, що вимагають децентралізації без публічності; торговельні мережі з власним токеном розрахунків. Якщо ви потрапляєте в один із цих сценаріїв — це керівництво для вас. Замовте безкоштовну консультацію з архітектури приватного блокчейну — наші інженери допоможуть вибрати платформу.

Ми розгорнули більше 50 приватних блокчейнів для фінансових, логістичних та державних замовників. Досвід показує: правильно налаштована мережа працює роками без збоїв, якщо дотримуватися архітектурних принципів. Помилки на старті призводять до втрати консенсусу та дорогого перероблення. Мережа з 4 нод витримує 1 відмову (25% від усіх нод), а 7 нод — 2 відмови (28.5%).

Як вибрати платформу для приватного блокчейну?

Три реальних варіанти для enterprise private blockchain:

  • Hyperledger Besu — EVM-сумісний клієнт Ethereum, розроблений ConsenSys, тепер Linux Foundation. Підтримує QBFT та IBFT2 консенсус. Головна перевага: повна EVM-сумісність — все що працює на Ethereum, працює і тут без змін. Solidity контракти, Hardhat, MetaMask, ethers.js — все працює. Для команд з EVM-експертизою — перший вибір.
  • Hyperledger Fabric — не EVM, chaincode на Go/Java/Node.js, канальна архітектура, MSP (Membership Service Provider) для управління учасниками. Краще підходить для складних permissioned сценаріїв з різними ролями учасників. Більш складний в експлуатації.
  • Polygon Edge / Polygon CDK — EVM-сумісний, міст до Ethereum mainnet або Polygon. Якщо потрібен зв'язок з публічним блокчейном — хороший вибір. Активно розвивається як appchain фреймворк.
Критерій Hyperledger Besu Hyperledger Fabric Polygon CDK
EVM-сумісність Повна Ні Повна
Консенсус QBFT, IBFT2 Kafka, Raft IBFT, PoS bridge
Продуктивність (TPS) ~100-500 ~200-1000 ~500-2000
Складність експлуатації Середня Висока Середня
Інтеграція з публічними мережами Через міст Ні Нативна

Для більшості корпоративних завдань рекомендуємо Besu з QBFT: EVM-сумісність відкриває доступ до величезної екосистеми інструментів, а QBFT забезпечує детерміновану фінальність без форків.

Архітектура мережі Hyperledger Besu + QBFT

QBFT (Quorum Byzantine Fault Tolerance) — Byzantine fault tolerant консенсус. Мережа з N нод витримує до ⌊(N-1)/3⌋ відмов. Для 4 нод — 1 відмова, для 7 — 2. Мінімальна production топологія включає три валідатори (по одному на організацію) та один RPC/boot node для додатків.

Налаштування генезіс-блоку

Генезіс визначає початковий стан мережі. Критичні параметри:

{ "config": { "chainId": 12345, "berlinBlock": 0, "londonBlock": 0, "qbft": { "blockperiodseconds": 2, "epochlength": 30000, "requesttimeoutseconds": 4 } }, "nonce": "0x0", "timestamp": "0x5B3D92D7", "gasLimit": "0x1fffffffffffff", "difficulty": "0x1", "mixHash": "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365", "coinbase": "0x0000000000000000000000000000000000000000", "alloc": { "0xYOUR_INITIAL_ACCOUNT": { "balance": "90000000000000000000000" } }, "extraData": "0x<QBFT_EXTRA_DATA>" } 

chainId — унікальний ідентифікатор мережі. Обирайте не пересічний з публічними мережами (список зайнятих chainId можна знайти на офіційних ресурсах).

Деплой з Docker Compose

Покрокова інструкція:

  1. Згенеруйте ключі та extraData через besu operator generate-blockchain-config.
  2. Створіть genesis.json та папки для ключів кожного валідатора.
  3. Налаштуйте docker-compose.yml з сервісами для валідаторів та bootnode.
version: '3.8' services: validator1: image: hyperledger/besu:latest volumes: - ./data/validator1:/data - ./genesis.json:/genesis.json - ./networkFiles/keys/validator1:/keys command: > --data-path=/data --genesis-file=/genesis.json --node-private-key-file=/keys/key --rpc-http-enabled --rpc-http-api=ETH,NET,QBFT,ADMIN --rpc-http-cors-origins=* --rpc-http-port=8545 --p2p-port=30303 --bootnodes=enode://BOOTNODE_ENODE@bootnode:30303 --min-gas-price=0 --revert-reason-enabled --metrics-enabled --metrics-port=9545 ports: - "8545:8545" - "30303:30303" 

--min-gas-price=0 вимикає мінімальну плату за газ — це проста gas optimization для приватних мереж, що прискорює транзакції та знижує накладні витрати.

Управління учасниками (Permissioning)

Besu підтримує on-chain permissioning через смарт-контракт. Рекомендується для production:

contract NodeRules { mapping(bytes32 => bool) private allowedNodes; function connectionAllowed( bytes32 sourceEnodeHigh, bytes32 sourceEnodeLow, bytes16 sourceEnodeIp, uint16 sourceEnodePort, bytes32 destEnodeHigh, bytes32 destEnodeLow, bytes16 destEnodeIp, uint16 destEnodePort ) external view returns (bytes32) { bytes32 nodeId = keccak256(abi.encodePacked(sourceEnodeHigh, sourceEnodeLow)); return allowedNodes[nodeId] ? 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff : 0x0; } } 

Додавання/видалення нод — транзакція з мультисигом, аудит-трейл у блокчейні.

Як налаштувати моніторинг та disaster recovery?

Моніторинг з Prometheus + Grafana

Besu нативно експортує метрики у Prometheus форматі:

scrape_configs: - job_name: 'besu' static_configs: - targets: ['validator1:9545', 'validator2:9545', 'validator3:9545'] 

Ключові метрики:

  • besu_blockchain_height — висота блокчейну (має бути однакова на всіх нодах)
  • besu_peers_connected_total — кількість пірів
  • besu_consensus_round_change_total — зміни раунду QBFT (зростання вказує на проблеми)

Алерт при розходженні висоти > 5 блоків обов'язковий.

Disaster Recovery

tar -czf validator-keys-backup-$(date +%Y%m%d).tar.gz \ ./networkFiles/keys/ \ ./genesis.json 

Ключі валідаторів зберігайте в HSM (AWS CloudHSM, Azure Dedicated HSM) та в різних фізичних локаціях. Втрата ключів більшості валідаторів зупиняє мережу.

Що входить в роботу

  • Інженерний проєкт: топологія мережі, кількість валідаторів, governance-модель, permissioning.
  • Конфігурація genesis та смарт-контракти: параметри консенсусу, chainId, розподіл токенів, контракти дозволів.
  • Деплой та тестування: розгортання Docker Compose або Kubernetes, перевірка консенсусу при відмовах, навантажувальне тестування (до 1000 TPS).
  • Моніторинг та документація: Prometheus/Grafana дашборди, runbook для ops, процедури бекапу.
  • Навчання команди: 1-2 дні воркшоп з адміністрування мережі.
  • Підтримка: місяць пост-релізної підтримки з SLA 4 години.

Процес роботи

Етап Тривалість Результат
Проєктування 2-3 дні Топологія, governance, вибір стеку
Розробка 1-2 дні Genesis, контракти permissioning, конфігурація
Деплой та тестування 3-4 дні Працююча мережа, тести відмовостійкості, навантаження
Моніторинг та документація 1-2 дні Дашборди, алерти, runbook
Передача та навчання 1 день Демонстрація, передача ключів та доступів

Підсумковий термін — 1-2 тижні для базової мережі. З інтеграцією HSM, SIEM — до 3-4 тижнів. Зв'яжіться з нами для консультації з вашого проєкту — ми допоможемо вибрати платформу та спроєктувати мережу під ключ. Наші інженери сертифіковані за Hyperledger та мають 10+ років досвіду в блокчейн-розробці. Гарантуємо відмовостійкість мережі при дотриманні архітектурних рекомендацій.

Подробиці в Hyperledger Besu.