One-click Bitcoin Lightning networks for local app development & testing
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
- Launch a terminal in each bitcoin/lightning node
- Add more nodes using drag & drop
- Open & Close Channels
- Manually mine new blocks
- Deposit regtest coins into each Lightning node
Supported Network Nodes:
- LND v0.8.0 & v0.7.1
- Bitcoin Core v0.18.1
- c-lightning (coming soon)
- eclair (coming soon)
Polar requires that you have Docker installed to create the local networks
- On Mac & Windows, you can just install Docker Desktop
- On Linux, you need to install Docker Server and Docker Compose separately
The most current Polar downloads for Mac, Windows & Linux can be found in the GitHub releases
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
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 |
- install the import-sorter Visual Studio Code extension for automatic import statement sorting
- Electron: cross platform desktop app framework
- Typescript: increased productivity with a typed language
- ReactJS: declarative UI library for JavaScript
- Create React App: minimize build configuration
- easy-peasy: Redux state management without the boilerplate
- Ant Design: don't reinvent the wheel with UI design
- react-i18next: support for multiple languages (english/spanish included)
- electron-log: multi-level logging to console and file
- Prettier: keep code format consistent
- ESLint: follow code quality best practices
- Github Actions: automate builds and testing on Windows/Mac/Linux
- Renevate Bot: automate dependency upgrades via GitHub bot
- Jest: delightful JavaScript testing
- React Testing Library: React specific testing utilities
- CodeCov: maintain quality of unit tests
- Testcafe: End-to-end is important
- commitlint: standardize git commit messages
- standard-version: automate release versioning and changelog generation
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 😊.
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.