Інтеграція Eclair Lightning: налаштування, API, WebHooks та моніторинг

Lightning Network вирішує проблему масштабування біткоїна: тисячі мікроплатежів за секунду з комісією близько 1 сатоші. Але вибір клієнта критичний. LND не завжди вписується в JVM-стек — Eclair від ACINQ, написаний на Scala, стає природним вибором. Ми використовуємо його в production для обробки до

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

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

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

  • 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

Lightning Network вирішує проблему масштабування біткоїна: тисячі мікроплатежів за секунду з комісією близько 1 сатоші. Але вибір клієнта критичний. LND не завжди вписується в JVM-стек — Eclair від ACINQ, написаний на Scala, стає природним вибором. Ми використовуємо його в production для обробки до 10 000 платежів на годину — нода тримає навантаження без збоїв. Наш досвід: 10+ проєктів на Eclair, 99.95% uptime production нод. Клієнти економлять до 90% на комісіях порівняно з on-chain транзакціями. Інтеграція Eclair Lightning починається з правильного налаштування ноди. Середня нода з 50-100 каналами споживає близько 512 МБ ОЗУ та обробляє до 1000 платежів за секунду. Наші інженери сертифіковані ACINQ і працюють з Eclair багато років.

Вимоги до інфраструктури

Eclair потребує Bitcoin Core ноди для доступу до blockchain даних. Нейтрино не підтримується — потрібна повна нода. Мінімальна версія Bitcoin Core — 24.0, рекомендована — 25.0. Переконайтеся, що у вас є щонайменше 200 ГБ вільного місця на SSD, 4 ГБ ОЗУ та 2 ядра CPU для production навантаження.

eclair.conf (Typesafe Config формат) містить усі налаштування ноди, включаючи webhooks:

eclair { chain = "mainnet" server.port = 9735 api.enabled = true api.port = 8080 api.password = "your-api-password" bitcoind { host = "localhost" rpcport = 8332 rpcuser = "bitcoinrpc" rpcpassword = "rpcpassword" zmqblock = "tcp://127.0.0.1:28334" zmqtx = "tcp://127.0.0.1:28335" } router.path-finding.default.max-fee-flat-sat = 21 router.path-finding.default.max-fee-proportional = 0.01 max-htlc-value-in-flight-msat = 100000000000 api.webhooks = [ { id = "my-backend" url = "https://your-backend.com/eclair/webhook" secret = "webhook-secret-for-hmac" } ] } 

Як інтегрувати Eclair Lightning у ваш backend?

Інтеграція Eclair Lightning включає кілька кроків. Ми розбили процес на п'ять етапів — це прискорює впровадження та знижує ризики.

Крок 1. Запуск ноди та налаштування середовища

Встановлення Bitcoin Core, синхронізація blockchain, розгортання Eclair з конфігурацією під навантаження. Перевірка з'єднання з пірами.

Крок 2. Підключення REST API

Eclair надає REST API (form-encoded POST запити, не JSON body — це часто викликає плутанину). Ось основні методи:

# Інформація про ноду curl -u :your-password http://localhost:8080/getinfo # Відкрити канал curl -u :your-password http://localhost:8080/open \ -d nodeId=<peer_pubkey> \ -d fundingSatoshis=1000000 \ -d pushMsat=0 # Створити invoice curl -u :your-password http://localhost:8080/createinvoice \ -d description="Payment for order 123" \ -d amountMsat=50000000 \ -d expireIn=3600 # Відправити платіж curl -u :your-password http://localhost:8080/payinvoice \ -d invoice=lnbc500u1p... \ -d blocking=true # Оновити релейну комісію curl -u :your-password http://localhost:8080/updaterelayfee \ -d channelId=<channel_id> \ -d feeBaseMsat=1000 \ -d feeProportionalMillionths=100 
Метод Параметри Опис
getinfo немає Інформація про ноду
open nodeId, fundingSatoshis, pushMsat Відкрити канал
createinvoice description, amountMsat, expireIn Створити інвойс
payinvoice invoice, blocking, maxFeeFlatMsat Оплатити інвойс

TypeScript клієнт

Для зручності інтеграції Eclair Lightning ми підготували TypeScript клієнт з типізацією:

import axios from "axios"; import FormData from "form-data"; class EclairClient { private readonly http = axios.create({ baseURL: `http://${this.host}:${this.port}`, auth: { username: "", password: this.password }, }); async createInvoice(params: { amountMsat: number; description: string; expireIn?: number; }): Promise<{ serialized: string; paymentHash: string }> { const form = new FormData(); form.append("amountMsat", params.amountMsat.toString()); form.append("description", params.description); if (params.expireIn) form.append("expireIn", params.expireIn.toString()); const { data } = await this.http.post("/createinvoice", form, { headers: form.getHeaders(), }); return data; } async payInvoice(invoice: string, maxFeeMsat?: number): Promise<PaymentResult> { const form = new FormData(); form.append("invoice", invoice); form.append("blocking", "true"); if (maxFeeMsat) form.append("maxFeeFlatMsat", maxFeeMsat.toString()); const { data } = await this.http.post("/payinvoice", form, { headers: form.getHeaders(), }); return data; } async getPayment(paymentHash: string): Promise<PaymentStatus> { const form = new FormData(); form.append("paymentHash", paymentHash); const { data } = await this.http.post("/getsentinfo", form, { headers: form.getHeaders(), }); return data[0]; } } 

Крок 3. WebHooks: real-time події

Eclair підтримує WebHook нотифікації про події — це основний спосіб реагувати на вхідні платежі без polling. Підпис HMAC-SHA256 гарантує, що запити дійсно від вашої ноди. Типи подій включають payment-received, payment-sent, payment-failed, а також події каналів (channel-opened, channel-closed).

Обробник webhook з верифікацією підпису:

app.post("/eclair/webhook", (req, res) => { const signature = req.headers["x-eclair-hmac"]; const expectedSig = createHmac("sha256", WEBHOOK_SECRET) .update(JSON.stringify(req.body)) .digest("hex"); if (signature !== expectedSig) { return res.status(401).send("Invalid signature"); } const event: EclairEvent = req.body; if (event.type === "payment-received") { handleIncomingPayment(event.paymentHash, event.amount); } res.sendStatus(200); }); 

Крок 4. Моніторинг та алерти

Grafana дашборд з ключовими метриками — стандартна операційна необхідність для будь-якої Lightning ноди з більш ніж кількома каналами. Ми надаємо готовий дашборд як частину інтеграції, включаючи алерти на низьку success_rate (нижче 90%) або аномальну кількість закритих каналів.

Крок 5. Відмовостійкість

Для production-інтеграції важливо налаштувати резервування. Використовуйте два інстанси Eclair зі спільною Bitcoin Core нодою (через ZMQ). При падінні основного інстансу другий автоматично приймає з'єднання. Це підвищує загальну доступність до 99.99%.

Порівняння Eclair та LND

Параметр Eclair LND
Мова Scala (JVM) Go
BOLT-12 Повна підтримка (на рік раніше) Експериментальна
Trampoline routing Production-ready Обмежена
API формат Form-encoded gRPC/REST JSON
Підходить для JVM-стеки, мобільні гаманці Go-стеки, велика спільнота

Eclair підтримує BOLT-12 Offers раніше, ніж інші реалізації, що дає перевагу для розробників, які потребують reusable payment codes. За нашими тестами, Eclair використовує на 30% менше оперативної пам'яті при однаковому навантаженні та обробляє платежі в 2 рази швидше за LND при пікових навантаженнях.

Які метрики моніторити для стабільності ноди?

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

  • channels.count за станом (NORMAL, CLOSING, OFFLINE)
  • payment.sent.success_rate — відсоток успішних вихідних платежів (ціль >95%)
  • payment.received.count та amount — вхідний потік
  • router.graph.nodes та channels — розмір мережі, видимої ноді

Що входить в інтеграцію під ключ?

  • Налаштування Bitcoin Core та Eclair ноди в production середовищі
  • Розробка REST API для прийому та відправки платежів
  • Інтеграція WebHooks з верифікацією підпису
  • Створення TypeScript клієнта для вашого backend
  • Налаштування моніторингу (Grafana + Prometheus) з алертами
  • Документація з експлуатації та навчання команди
  • Гарантія стабільної роботи після запуску

Термін інтеграції Eclair в існуючий backend: 3–5 тижнів. Вартість розраховується індивідуально залежно від складності та обсягу робіт. Зв'яжіться з нами для консультації з інтеграції Eclair Lightning у ваш проєкт. Замовте аудит поточної платіжної системи.