Simular HTLC en regtest c-lightning

Tengo tres nodos en el entorno de registro l1, l2 y l3

l1 crea un canal con l2

l2 crea un canal con l3

l3 crea una factura para l1. l1 puede pagarlo porque usa la ruta l1- l2 -l3

Supongo que aquí c-lightning usa HTLC para lograrlo.

¿Dónde puedo depurar el script? me gustaria ver algo asi

IF
  # Payment if you have the secret R
  HASH160 <H> EQUALVERIFY
ELSE
# Refund after timeout.
<locktime> CHECKLOCKTIMEVERIFY DROP <Payee Pubic Key> CHECKSIG
ENDIF

Respuestas (1)

Para que pueda ver estos scripts, deberá forzar el canal en cadena, junto con el HTLC. Solo entonces se barrerá el HTLC con el script; de lo contrario, solo verá la salida P2WSH para que se agregue el HTLC y luego se elimine si el pago se realiza correctamente o falla.

En condiciones normales de funcionamiento, por lo tanto, no vería el HTLC. Sin embargo, cuando probamos c-lightning, forzamos este caso para verificar que se está manejando correctamente. Hay dos formas de forzar la liquidación en cadena:

  • Escriba un pequeño complemento que simplemente se aferre al HTLC entrante en cualquiera l2de l3los canales en los que desee observar el script.
  • Si compiló con, DEVELOPER=1también puede proporcionar un archivo con instrucciones para desconectarse si se ven ciertos mensajes. Esto es un poco más complicado, pero aquí hay una prueba que muestra cómo funciona. Le indica que l1se desconecte tan pronto como reciba un WIRE_REVOKE_AND_ACKmensaje que complete la adición del HTLC.

Una vez que el HTLC se atasca en algún momento, puede generar una cantidad de bloques hasta que se acerque el tiempo de espera de HTLC, momento en el cual los nodos publicarán un cierre unilateral. Una vez que el canal se cierra y el tiempo de espera de HTLC expira, los nodos barrerán la salida de HTLC con el script que está buscando.

Gracias por responder. Ya lo instalé en mi mac, lo intenté de nuevo ./configure --enable-developery luego make DEVELOPER=1, pero me sale un error: tools/mockup.sh: line 12: syntax error near unexpected token ;;'` Intenté incluso con solo makepero me sale el mismo error
Eso suena mucho a que bash en Mac no es realmente compatible con el script. ¿Puede tal vez presentar un problema y podemos ver cómo podemos solucionarlo?