Hace poco más de dos años, Blockstream creó Greenlight, una infraestructura de hosting revolucionaria de Lightning que amplía las implementaciones de Lightning sin riesgo ni custodia. Con las pruebas realizadas junto con los socios, en el último año se ha comprobado que Greenlight es estable y fácil de usar. Hoy hacemos el repositorio del cliente de código abierto y abrimos la inscripción a interesados a tener acceso a la vista previa para desarrolladores.
¿Qué es Greenlight?
Greenlight es un servicio de Lightning-as-a-Service (LaaS) sin custodia para empresas, comerciantes y aplicaciones de Lightning. Sus usuarios mantienen el control de las claves y nosotros nos ocupamos de todo el resto. Como desarrollador trabajando con Greenlight, podrá hablar con nuestra API simple e integrar sin problemas los pagos con Lightning en su aplicación, sin ser experto en el protocolo de Lightning ni hacer una configuración de nodos larga.
Hay dos dominios de control en Greenlight: el usuario y Blockstream. Cualquier número de clientes del dominio del usuario puede conectarse a un único nodo del dominio de Blockstream. El nodo que se ejecuta en la infraestructura de Blockstream recibe comandos, computa los cambios de estado y, luego, se pone en contacto con el firmante, que está bajo control exclusivo del usuario, para que compruebe y firme los cambios. El resultado es un nodo de Lightning sin custodia y a demanda en el que sus claves se guardarán en su dispositivo y nunca estarán en contacto con nuestra infraestructura.
La filosofía detrás de Greenlight y cómo cambiará la custodia de Lightning para siempre.
¿Qué está disponible hoy?
Si bien aún estamos desarrollando Greenlight activamente, las interfaces públicas son estables y están listas para que usted las explore.
El repositorio del cliente tiene varios componentes:
- gl-client y sus funcionalidades de enlace con varios idiomas proporcionan una API simple para interactuar con Greenlight y los nodos de usuarios. El firmante integrado se encarga de gestionar su frase semilla, y la mantiene oculta al nodo y, por lo tanto, también a nosotros, los operadores del servicio. La verificación integral (aún en etapa de desarrollo activa, incompleta en esta vista previa) del firmante garantiza que cualquier cambio de estado haya sido autorizado por un cliente autenticado, para que un posible riesgo para el host del nodo no provoque una pérdida de fondos.
- gl-testing proporciona un entorno de simulación completo para probar su código, en lugar del servicio Greenlight real. Para obtener más información, consulte nuestro tutorial sobre cómo puede usarse gl-testing en un proyecto de Python usando las funcionalidades para Python de gl-client-py. Además, hay más tutoriales en preparación.
- gl-plugin y gl-signerproxy le permiten a cualquiera replicar la interfaz expuesta por nodos de Greenlight, incluida la capacidad para usar un firmante remoto, en lugar de mantener la frase semilla en un servidor expuesto.
Los últimos dos componentes son la base de nuestros planes de integración: si Greenlight le queda pequeño, o si desea tener más control, le permitimos integrarse en su propia infraestructura y todas sus aplicaciones seguirán funcionando. Esto significa que si desarrolla su aplicación con la API de Greenlight, automáticamente será compatible con Core Lightning. Puede leer más sobre cómo hacer la integración en la documentación oficial de Greenlight y en el sitio de tutoriales.
Cómo comenzar
Mire el tutorial Cómo comenzar y siga las instrucciones. Primero necesitará un código de invitación para registrar un nuevo nodo en el servicio. El sistema de invitación nos permite ampliarnos gradualmente de manera controlada durante esta primera fase del servicio. Creamos un formulario en el que puede solicitar una invitación, y se la enviaremos tan pronto como sea posible.
Un cliente mínimo que registra un nodo, lo programa y ejecuta getinfo en el nodo se vería así en Python:
from glclient import TlsConfig, Signer, Scheduler
import secrets # Make sure to use cryptographically sound randomness
invite_code = "..."seed = secrets.randbits(256) # 32 bytes of randomnessnetwork = "bitcoin"
tls = TlsConfig()
signer = Signer(seed, network, tls)
scheduler = Scheduler(node_id=signer.node_id(), network=network, tls=tls)
# Now actually register the node, `r` will contain the credentials to use # when talking to the node
r = scheduler.register(signer, invite_code=invite_code)
# Use the credentials when talking to Greenlight from now on.
Requires a refresh
# of the `TlsConfig` and the `Scheduler`
tls = tls.with_identity(r.device_cert, r.device_key)
scheduler = Scheduler(
node_id=signer.node_id,
network=network,
tls=tls
)
node = scheduler.node() # Schedules the node on the service
# And finally we can use `node` to call `getinfo`
print(node.getinfo())
Y eso es todo. No es necesario configurar bitcoind, bases de datos, respaldos, torres de vigilancia, gossip, nodos, etc. Todo eso lo hacemos nosotros para que usted pueda centrarse en lo que más le importa: sus usuarios y sus necesidades.
Próximas novedades
Ya hemos recibido muchos comentarios de nuestros colaboradores:
- Breez ha desarrollado Breez SDK en Greenlight, ampliando nuestra oferta con servicios LSP y de intercambio y migrando su conocida cartera Breez a Greenlight.
- Verificación del firmante de Lightning para nuestra infraestructura de firma segura, que nos ayuda a acercarnos más a la verificación integral completa.
- Cartera Blockstream Green para comentarios y pruebas internos.
- Core Lightning por ser la mejor implementación de Lightning para esta escala.
Estamos ansiosos por que llegue el lanzamiento de la versión completa pero, para lograrlo, todavía necesitamos comentarios adicionales por parte de los desarrolladores. Lo invitamos a sumarse en Discord, en el canal de #greenlight de la página para desarrolladores de la comunidad de Build On L2 para compartir sus ideas y experiencias, además de mantenerse al tanto de los próximos talleres sobre Greenlight.
Si está en el proceso de crear algo emocionante con Greenlight, nos encantaría saberlo. Podríamos anunciarlo en el blog oficial de Blockstream.