lorenzolfm / doppler

A tool for building out a local regtest environment

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Doppler (A Lightning Domain-Specific Language)

  • GOAL: Create a DSL for Lightning that enables users to easily experiment with and test against various Lightning implementations. Whether it's for discovery testing, inclusion in a comprehensive integration testing suite, or simply investigating the interactions between different components. Given the potential occurrence of intriguing and unique issues across different implementations of Lightning, this project aims to simplify the lives of application developers reliant on the network.

The DSL should empower developers to compose a concise script that configures an entire cluster of nodes running a single docker network, even if they are of different implementation types, to suit precise testing requirements. This should provide a sensation similar to working with a set of Lego blocks, where all the necessary components are at your fingertips, ready to be assembled based on the idea at hand.

How to use:

  • More information on how to use this tool can be found here: USAGE.md

Supports:

  • creating a cluster of bitcoind nodes
  • setting up one or many as miners on a provided time interval
  • setting up and funding a cluster of lnd nodes, backed by a specified bitcoind node
  • outputing the cluster configuration as a docker-compose
  • making all the logs/data of the nodes available to the running of doppler
  • allowing to set values in LND's native configuration file
  • setup all the networking deterministically
  • OPEN_CHANNEL
  • SEND_LN (amp/keysend/bolt11 via subcommand)
  • SEND_ONCHAIN (only taproot addresses)
  • LOOP a set of commands over an optional interval
  • CLOSE_CHANNEL
  • support multiple node implementations (supports LND, CoreLN, Eclair)
  • add a cluster level UI to see how all the nodes connect (comes from https://github.com/litch/lightning-conformance/tree/master/operator)

Acknowledgments

  • Thank you polar for having such easy docker images to work with
  • Thank you litch for creating lightning-conformance which helped inspire this project
  • Thank you w3irdrobot for getting this project started and helping pick the tool to build the grammar in rust

Disclaimer

  • This is very much a work in progress, but feel free to use what works today and PR's are welcome!

About

A tool for building out a local regtest environment

License:Creative Commons Zero v1.0 Universal


Languages

Language:Rust 85.1%Language:TypeScript 8.7%Language:Shell 2.5%Language:Svelte 2.1%Language:JavaScript 0.9%Language:HTML 0.5%Language:CSS 0.2%