This project has been rewritten and moved here for the time being: https://github.com/BitcoinDevShop/mutiny-web-poc
- Spin up a new node for every channel open
- Fund channels with an external wallet, and no change!
- Sending
- No receive lol
- DO NOT USE THIS IS BARELY EVEN ALPHA
Here's our hackathon presentation: slides and video
To build from source, download the most recent source code and build it with cargo
.
git clone https://github.com/BitcoinDevShop/pln.git
cd pln
cargo build --release
The binary is built to target/release/pln
.
There is a Docker container pre-built that can be used to run this instead.
# pull it!
docker pull ghcr.io/BitcoinDevShop/pln:v0.0.1
If you want to build the Docker image locally:
# build it!
docker build -t bitcoindevshop/pln .
# run it in regtest mode!
docker compose up
# run it in testnet/mainnet mode!
# this requires your own bitcoind instance running somewhere accessible
# replace the values below
docker run -e BITCOIND_RPC_HOST='127.0.0.1' \
-e BITCOIND_RPC_PASSWORD='123' \
-e BITCOIND_RPC_PORT='8443' \
-e BITCOIND_RPC_USERNAME='admin1' \
-e NETWORK='mainnet' \
-e DATA_DIR='/mnt/ln-data' \
-v .local/data:/mnt/ln-data \
bitcoindevshop/pln
You can set up a DigitalOcean instance for about ~$11 with a mainnet integrated prune bitcoind node using our Docker Compose script.
- Get the one click docker package on Digital Ocean: https://marketplace.digitalocean.com/apps/docker
- Use the following configurations, at minimum:
- Basic CPU
- Regular SSD
- 2GB / 2 CPU / 50GB storage
- SSH into the machine when it is ready
- Pull down the repo:
git clone https://github.com/BitcoinDevShop/pln.git && cd pln
- Run docker compose for mainnet:
docker-compose -f docker-compose.mainnet-prune.yaml up -d
cargo run -- --development-mode=true --network=regtest --bitcoind-rpc-host=localhost --bitcoind-rpc-port=18443 --bitcoind-rpc-username=user --bitcoind-rpc-password=pass --data-dir={YOUR_DATA_DIR}
The GRPC should run on 5401
Install Flutter for your dev OS and chosen target.
flutter doctor
will let you know how your setup is looking.
Follow the relevant instructions for running a Flutter app from your IDE (this is nice because you get better debugging and hot reload).
If you want to run from the terminal, enter the /mobile
dir and run one of these:
flutter run -d macos
for Mac
flutter run -d linux
for Linux
flutter run -d <device id>
for an iOS or Android simulator (list available simulators via flutter devices
)
(from mobile dir):
flutter pub global activate protoc_plugin
export PATH="$PATH":"$HOME/resources_for_dev/flutter/.pub-cache/bin"
protoc -I. -I../proto --dart_out=grpc:lib/generated ../proto/pln.proto
Sending a regtest bitcoin transaction (when you need to create a channel on Mutiny)
bitcoin-cli -named sendtoaddress address="bcrt1qmjwu997paw5pec8kp4t2qzuktw5anqyf39t3xd" amount=0.002 fee_rate=1 replaceable=true