Рефакторизация структуры кода для улучшения читаемости и удобства сопровождения.
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
manifestVersion: 1
|
||||
id: circuitbreaker
|
||||
category: bitcoin
|
||||
name: Circuit Breaker
|
||||
version: "v0.5.1"
|
||||
tagline: Брандмауэр вашего узла Lightning
|
||||
description: >-
|
||||
Это позволяет узлам защитить себя от переполнения HTLC.
|
||||
С помощью автоматического выключателя можно установить максимальное количество находящихся в полете HTLC для каждого узла.
|
||||
Например, известным и доверенным узлам может быть назначен более высокий максимум, в то время как новый канал от ранее невидимого узла может быть ограничен лишь несколькими ожидающими HTLC.
|
||||
Кроме того, можно применять ограничения скорости к количеству пересылаемых HTLC.
|
||||
Это обеспечивает защиту от DoS-атак и спама, которые основаны на большом количестве HTLC с быстрым разрешением.
|
||||
Ограничение скорости реализовано с помощью корзины токенов.
|
||||
С помощью интерфейс можно указать минимальный интервал между HTLC.
|
||||
Большое количество HTLC также требуется для проверки баланса каналов.
|
||||
Снижение утечки информации посредством зондирования может стать еще одной причиной установить ограничение скорости для ненадежных узлов.
|
||||
|
||||
|
||||
Режимы работы
|
||||
|
||||
|
||||
Существует несколько режимов, в которых может работать автоматический выключатель. Режим по умолчанию и переопределения для каждого узла можно настроить через веб-интерфейс:
|
||||
|
||||
|
||||
- сбой: возврат HTLC в случае превышения ограничений. Это сводит к минимуму блокировку ликвидности на входящей стороне, но влияет на вашу репутацию как узла маршрутизации.
|
||||
|
||||
|
||||
- очередь: ставить HTLC в очередь при превышении лимитов. Элементы извлекаются из очереди, когда количество ожидающих HTLC ниже максимального и ограничение скорости допускает еще одну пересылку. Этот режим наказывает вышестоящие узлы за плохой трафик, блокируя ликвидность на маршруте. Это может подтолкнуть вышестоящие узлы к установке брандмауэра и ограничить работу неправильно работающего узла.
|
||||
|
||||
Даже в случае неисправности автоматического выключателя режим очереди никогда не должен вызывать принудительное закрытие канала из-за встроенной защиты lnd, которая автоматически отключает неразрешенные HTLC.
|
||||
|
||||
ВНИМАНИЕ: функция автоматического сбоя еще не выпущена и запланирована на версию 0.16. В более ранних версиях lnd существует риск принудительного закрытия!
|
||||
|
||||
|
||||
-queue_peer_initiated: этот режим также ставит в очередь HTLC, но только те, которые поступают через каналы, для которых мы не являемся инициатором открытия канала. Отсутствие инициатора означает, что удаленный узел несет расходы за потенциальное принудительное закрытие из-за зависания HTLC. Для каналов, которые мы инициировали, используется более безопасный режим отказа.
|
||||
|
||||
- заблокировано: этот режим блокирует весь входящий трафик от узла.
|
||||
|
||||
ВНИМАНИЕ: См. предупреждение режима очереди.
|
||||
releaseNotes: >-
|
||||
В этом выпуске автоматический выключатель обновляется до версии 0.5.1, в которой добавлена функциональность для отслеживания детальной информации о пересылке HTLC, которая не сохраняется LND. Эта подробная информация о пересылке HTLC также полезна для операторов узлов, желающих получить более подробное представление о своем потоке пересылки.
|
||||
|
||||
|
||||
В частности, он будет сохранять записи истории пересылки с отметками времени для успешных и неудачных HTLC (LND сохраняет только успешные пересылки и не сохраняет временные метки). По умолчанию автоматический выключатель будет хранить только 100 000 записей, поэтому максимальный объем места, занимаемого этими записями, составляет примерно 14 МБ. Это значение можно изменить с помощью флага --fwdhistorylimit, который позволяет при нулевых значениях полностью отключить эту функцию.
|
||||
|
||||
|
||||
Эта функция была разработана в рамках продолжающейся работы над протоколом для исследования предотвращения атак с глушением каналов в сети (https://lists.linuxfoundation.org/pipermail/lightning-dev/2023-August/004034.html). Добровольцы, заинтересованные в участии в этом исследовании путем выполнения *локального* анализа данных, собираемых автоматическим выключателем, могут выразить интерес по адресу https://docs.google.com/forms/d/e/1FAIpQLScm2xs4hNsrkI8UCBS4aTdO03YrmWT2X0-j6zXWpkZ7keKiUw/viewform?usp=sf_link или связаться с carla@chaincode.com для получения подробной информации.
|
||||
|
||||
Версия v0.5.1 содержит исправление для версии v0.5.0, которое регистрирует HTLC, пересылаемые по неизвестным исходящим каналам, а не завершает работу.
|
||||
developer: Joost Jager
|
||||
website: https://github.com/joostjager
|
||||
dependencies:
|
||||
- lightning
|
||||
repo: https://github.com/lightningequipment/circuitbreaker
|
||||
support: https://github.com/lightningequipment/circuitbreaker/issues
|
||||
port: 9235
|
||||
gallery:
|
||||
- 1.jpg
|
||||
- 2.jpg
|
||||
- 3.jpg
|
||||
path: ""
|
||||
defaultUsername: ""
|
||||
defaultPassword: ""
|
||||
submitter: Joost Jager
|
||||
submission: https://github.com/getumbrel/dfwebos-apps/pull/394
|
||||
@@ -0,0 +1,18 @@
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
app_proxy:
|
||||
environment:
|
||||
APP_HOST: circuitbreaker_web_1
|
||||
APP_PORT: 9235
|
||||
|
||||
web:
|
||||
image: ghcr.io/lightningequipment/circuitbreaker:v0.5.1@sha256:1c73f4785dad73e279cfb06ec12b004df61f5905446cec06079ace5618490a1d
|
||||
user: "1000:1000"
|
||||
restart: on-failure
|
||||
stop_grace_period: 1m
|
||||
init: true
|
||||
volumes:
|
||||
- ${APP_LIGHTNING_NODE_DATA_DIR}:/data/.lnd:ro
|
||||
- ${APP_DATA_DIR}/data:/data/.circuitbreaker
|
||||
command: [ "--configdir=/data/.circuitbreaker", "--network=${APP_BITCOIN_NETWORK}", "--lnddir=/data/.lnd", "--rpcserver=${APP_LIGHTNING_NODE_IP}:${APP_LIGHTNING_NODE_GRPC_PORT}", "--httplisten=0.0.0.0:9235" ]
|
||||
Reference in New Issue
Block a user