You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Renovate Bot cbd5ccc2bf
chore(deps): update dependency @types/jest to v26.0.6
4 years ago
.github ci(github): run CI builds on all branches except excluded ones 5 years ago
.vscode test(export): add and update unit tests for import & export 5 years ago
assets chore(release): bump version and update changelog & readme 5 years ago
docker chore(deps): update openjdk docker tag to v11.0.8 4 years ago
docs docs: add documentation for building custom nodes 5 years ago
e2e chore(deps): update dependency prettier to v2 5 years ago
electron chore(eslint): fix eslint v3 breaking changes 4 years ago
public chore: remove auto-generated css files from git repo 5 years ago
src feat(lnd): update to LND final releases for v0.10.2 and v0.10.3 4 years ago
.commitlintrc chore(setup): initial app setup (#1) 5 years ago
.crowdin.yml ci(github): do not run builds for translation PRs 5 years ago
.editorconfig chore(setup): initial app setup (#1) 5 years ago
.electronbuildrc build: do not build 32bit binaries any longer 5 years ago
.eslintignore Continue addressing code review and feedback 5 years ago
.eslintrc chore(eslint): fix eslint v3 breaking changes 4 years ago
.gitattributes chore(setup): initial app setup (#1) 5 years ago
.gitignore chore: remove auto-generated css files from git repo 5 years ago
.i18next-scanner.js chore(setup): initial app setup (#1) 5 years ago
.lintstagedrc feat(images): implement adding and deleting custom nodes 5 years ago
.prettierignore chore(github): update issue templates 5 years ago
.prettierrc chore(setup): initial app setup (#1) 5 years ago
.renovaterc chore(deps): update renovate bot config 5 years ago
.rescriptsrc.js fix(export): fix archiver module not found error when packaged 5 years ago
.stylelintrc feat(styles): add emotion dependency 5 years ago
.testcafe-electron-rc chore(setup): initial app setup (#1) 5 years ago
.versionrc chore(setup): initial app setup (#1) 5 years ago
CHANGELOG.md chore(release): bump version to v1.0.1 and update changelog 4 years ago
CONTRIBUTING.md docs: fix small typo in CONTRIBUTING (#332) 5 years ago
LICENSE chore(setup): initial app setup (#1) 5 years ago
README.md feat(lnd): add support for LND v0.10.3-beta.rc1 4 years ago
RELEASE.md chore(release): bump version and update changelog & readme 5 years ago
TODO.md feat(logs): add ability to view live logs from nodes 5 years ago
package.json chore(deps): update dependency @types/jest to v26.0.6 4 years ago
tsconfig.json Continue addressing code review and feedback 5 years ago
yarn.lock chore(deps): update dependency @types/jest to v26.0.6 4 years ago

README.md

Polar

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

Actions Status codecov Crowdin GitHub license GitHub release

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
  • View streaming logs from each node
  • Manually mine new blocks
  • Deposit regtest coins into each Lightning node
  • Export and import networks, for sharing with other Lightning developers
  • Create you own docker images to use as custom nodes (ex: master branch, local fork)

Supported Network Node Versions:

  • LND v0.10.3, v0.10.2, v0.10.1, v0.10.0, v0.9.1, v0.9.0, v0.8.2, v0.8.0 & v0.7.1
  • c-lightning v0.8.2, v0.8.1 & v0.8.0
  • Eclair v0.3.3
  • Bitcoin Core v0.20.0, v0.19.1, v0.19.0.1 & v0.18.1

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 v1.0.1 for your OS

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):

  • Importing network templates from external sources (such as GitHub) to allow for 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.

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

If you would like to learn how to package Polar from source code or want to fix a bug or add a new feature, please see CONTRIBUTING for detailed instructions.

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 package package the app for your OS

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

The best place to reach me is on Twitter @jamaljsr. I also lurk in the LND Slack server, so you can msg me there as well.