Il y a déjà un peu plus de deux ans, Blockstream a conçu Greenlight : une infrastructure d'hébergement Lightning révolutionnaire qui permet la mise à l’échelle de vos déploiements Lightning en garde autonome. L'année dernière, des tests effectués avec des partenaires ont prouvé que Greenlight était à la fois stable et simple à utiliser. Aujourd'hui, nous ouvrons le dépôt du code source du logiciel client et invitons les développeurs intéressés à s'inscrire pour profiter de notre version pour développeurs !
Qu'est-ce que Greenlight ?
Greenlight est un LaaS (Lightning-as-a-Service) en garde autonome pour les entreprises, les commerçants et les applications Lightning. Vos utilisateurs détiennent leurs clés et nous nous occupons du reste. En tant que développeur développant avec Greenlight, vous pouvez simplement communiquer avec notre API, et intégrer de manière transparente les paiements Lightning dans votre application, sans avoir d'expertise sur le protocole Lightning, ou passer par une configuration de nœud complexe.
Il existe deux zones de contrôle dans Greenlight : l'utilisateur et Blockstream. N'importe quel nombre de clients de la zone utilisateur peuvent se connecter à un seul nœud de la zone Blockstream. Le nœud fonctionnant sur l'infrastructure de Blockstream reçoit les commandes, calcule les changements d'état, puis s'adresse au signataire, qui est uniquement sous le contrôle de l'utilisateur, pour qu'il vérifie et approuve les changements. Le résultat est un nœud Lightning à la demande, où vos clés sont stockées sur votre appareil et ne touchent jamais notre infrastructure.
Qu'est-ce qui est disponible aujourd'hui ?
Bien que nous travaillons encore activement sur Greenlight, les interfaces publiques sont stables et prêtes à être utilisées.
Le dépôt du logiciel client propose plusieurs composants :
- gl-client fournit une API simple pour interagir en plusieurs langages avec Greenlight et les nœuds d'utilisateurs. Le signataire intégré s'occupe de la gestion de votre seed, et la garde cachée du nœud, et par extension, de l'opérateur de service (nous). La vérification de bout en bout (toujours en cours de développement) dans le signataire garantit que tout changement d'état a été autorisé par un client authentifié, de sorte qu'une compromission potentielle de l'hôte du nœud n'entraîne pas de perte de fonds.
- gl-testing fournit un environnement fictif complet pour tester votre code, plutôt que le véritable service Greenlight. Pour en savoir plus, consultez notre tutoriel sur la façon dont gl-testing peut être utilisé dans un projet Python en utilisant la liaison Python dans gl-client-py. D'autres tutoriels sont en préparation.
- gl-plugin et gl-signerproxy permettent à quiconque de reproduire l'interface exposée par les nœuds Greenlight, y compris la possibilité d'utiliser un signataire distant, plutôt que de conserver la seed sur un serveur exposé.
Les deux derniers composant dans cette liste sont à la base de notre vision pour la mise à l’échelle: si vous dépassez les limites de Greenlight, ou si vous voulez plus de contrôle, nous vous permettons d'intégrer votre propre infrastructure et toutes vos applications continueront à fonctionner. Cela signifie que si vous développez votre application à l'aide de l'API Greenlight, vous bénéficierez automatiquement de la prise en charge de Core Lightning. Vous pouvez en savoir plus sur la façon de quitter l'API dans la documentation officielle de Greenlight et sur le site des tutoriels.
Pour commencer
Rendez-vous sur le guide de démarrage et suivez les instructions. Vous aurez d'abord besoin d'un code d'invitation pour enregistrer un nouveau nœud sur le service. Le système d'invitation nous permet d'augmenter les ressources progressivement et de manière contrôlée au cours de sa phase initiale. Nous avons mis en place un formulaire où vous pouvez demander une invitation, et nous vous en enverrons une dès que possible.
Un client simple qui enregistre un nœud et exécute ensuite getinfo sur le nœud ressemblerait à ceci 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())
C'est tout ce qu'il y a à faire. Pas de mise en place de bitcoind, de bases de données, de sauvegardes, de tours de guet, de gossip, de configuration de nœuds, etc. Tout cela est fait de notre côté afin que vous puissiez vous concentrer sur ce qui compte le plus pour vous : vos utilisateurs et leurs besoins !
Quelle est la prochaine étape ?
Nous avons déjà reçu de nombreux commentaires de la part de nos collaborateurs :
- Breez a construit son SDK Breez sur Greenlight, élargissant notre offre avec des services LSP et de swap, ainsi que la migration de son célèbre portefeuille Breez sur Greenlight.
- Validating Lightning Signer comme infrastructure de signature sécurisée, nous aidant à nous rapprocher d'une vérification complète de bout en bout.
- Portefeuille Blockstream Green pour les rétroactions et tests internes.
- Core Lightning pour avoir été la meilleure implémentation de Lightning à cette échelle.
Nous sommes impatients d’en arriver à notre version complète, mais pour ce faire, nous avons encore besoin de vos commentaires. Nous vous invitons à nous rejoindre sur Discord dans le canal #greenlight ou sur la page développeur de la communauté Build On L2, pour partager vos réflexions et vos expériences, où vous pouvez également garder un œil sur les prochains ateliers sur Greenlight.
Si vous êtes en train de créer quelque chose d'intéressant à l'aide de Greenlight, nous serions ravis d'en entendre parler ! Et nous pourrons peut-être le présenter sur le blog officiel de Blockstream.