У меня есть три узла в среде regtest l1, l2 и l3.
l1 создать канал с l2
l2 создать канал с l3
l3 создать счет для l1. l1 может заплатить, потому что используется маршрут l1- l2 -l3
Я предполагаю, что здесь c-lightning использует HTLC для достижения этой цели.
Где я могу отладить скрипт? Я хотел бы увидеть что-то вроде этого
IF
# Payment if you have the secret R
HASH160 <H> EQUALVERIFY
ELSE
# Refund after timeout.
<locktime> CHECKLOCKTIMEVERIFY DROP <Payee Pubic Key> CHECKSIG
ENDIF
Чтобы вы могли видеть эти скрипты, вам нужно принудительно включить канал в цепочке вместе с HTLC. Только после этого HTLC будет проверен с помощью скрипта, в противном случае вы увидите вывод P2WSH только для добавленного HTLC, а затем удалите его, если платеж прошел успешно или не удалось.
Поэтому при нормальной работе вы не увидите HTLC. Однако при тестировании c-lightning мы форсируем этот случай, чтобы убедиться, что он обрабатывается правильно. Есть два способа принудительного расчета по цепочке:
l2
в l3
зависимости от того, на каком канале вы хотите наблюдать за скриптом.DEVELOPER=1
вы также можете предоставить файл с инструкциями по отключению при появлении определенных сообщений. Это немного сложнее, но вот тест , который показывает, как это работает. Он предписывает l1
отключиться, как только получит WIRE_REVOKE_AND_ACK
сообщение о завершении добавления HTLC.Как только HTLC застрянет в какой-то момент, вы можете сгенерировать несколько блоков до тех пор, пока не подойдет тайм-аут HTLC, после чего узлы опубликуют одностороннее закрытие. Как только канал будет закрыт и время ожидания HTLC истечет, узлы просканируют вывод HTLC с помощью сценария, который вы ищете.
обезьянаПользователь
./configure --enable-developer
а затемmake DEVELOPER=1
, но я получаю сообщение об ошибке:tools/mockup.sh: line 12: syntax error near unexpected token
;;'` Я пытался даже просто,make
но получаю ту же ошибкуcdecker