Skip to content

ryanthegentry/polar

 
 

Repository files navigation

Polar

One-click Bitcoin Lightning networks for local app development & testing

Actions Status codecov Crowdin

View a short video demo

Purpose

Polar was built to help Lightning Network application developers quickly spin up one or more networks locally on their computers.

With Polar you can:

  • Create a regtest Lightning Network in just a few clicks
  • Connect from your app to the lightning nodes via RPC
  • Add more nodes using drag & drop
  • Start and stop individual nodes
  • Open & Close Channels
  • Create & Pay Lightning Invoices
  • Launch a terminal in each bitcoin/lightning node
  • Manually mine new blocks
  • Deposit regtest coins into each Lightning node

Supported Network Node Versions:

  • LND v0.8.2, v0.8.0 & v0.7.1
  • Bitcoin Core v0.19.0.1 & v0.18.1
  • c-lightning v0.8.0
  • eclair (coming soon?) *need to gauge demand for this implementation*

Dependencies

Polar requires that you have Docker installed to create the local networks

You will be prompted to install Docker if Polar cannot detect it automatically

Download

Download Polar v0.2.0 for

Alternative and older version binaries can be found in the GitHub releases

Polar's Future

The overall goal of Polar is to minimize the time & effort needed for a developer new to Lightning to get started building their next killer app. In addition, Polar aims to be a useful tool for experienced Lightning App developers to iterate faster on their projects. Less time setting up nodes, more time building your app.

Here's a short list of ideas for features that may be beneficial to add in future releases (in no particular order):

  • Network snapshots with the ability to import/export them. These could also be used as templates to quickly boot up a network with predefined nodes and channels. The templates could be hosted github to allow community contributions. This may require a scripting system built-in.
  • Sample app projects/code in different languages (Python, Typescript/JS, Go, C#) showing how to connect to the Lightning/Bitcoin nodes from an external app.
  • Bitcoin Block Explorer & GRPC/REST API Explorers to have access to all of the node RPC API's graphically, without needing to fallback to the Terminal.
  • A branded website with download links and getting started guides to make Polar a bit easier to find via search engines

Help Translate

Polar's translations are managed on Crowdin. The initial translations of 10 languages were done by machine (Google Translate) and are likely to not be 100% accurate. If you speak multiple languages and wish to help with translations, please feel free to head over to the project page on Crowdin and submit updated strings. This assistance would be greatly appreciated.

Development

Commands

Command Description
yarn install dependencies
yarn dev run the app with react hot reloading and electron live restarting
yarn test run unit tests in watch mode
yarn test:e2e run e2e tests
yarn lint:all run typescript and eslint syntax checking
yarn langs extract i18n language keys from code
yarn package package the app for your OS

Tips

  • install the import-sorter Visual Studio Code extension for automatic import statement sorting

Tech Stack

Recognition

Huge thanks to maintainers of Lightning Joule, Zap Wallet, LND, Bitcoin Core, along with many others for the amazing apps & libraries that gave this project inspiration, ideas & sometimes even a little code 😊.

Contact

I plan to setup a website and email soon. The best place to reach me now is on Twitter @jamaljsr. I also lurk in the LND Slack server, so you can msg me there as well.

About

One-click Bitcoin Lightning networks for local app development & testing

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 96.7%
  • JavaScript 1.4%
  • Dockerfile 1.2%
  • Other 0.7%