PeerSwapをUmbrelへDockerイメージからインストールする
[2022-08-27 更新] confファイルとDocker runのパラメータを変更
前回の記事ではPeerSwapについての概要や操作方法について解説しました。PeerSwapは現在ベータ版ということもあり、メインネットでの使用は自己責任でという注意書きがあります。しかし、この界隈で生き残っている強者は、自己資産の紛失よりも最先端技術を試してみたいという知的好奇心旺盛な方が多いと思います。そこで、Umbrel上でもPeerSwapを動かせるような環境を作ってみました。
まずはUmbrelのコンソールへSSHログインします。そして以下のコマンドでPeerSwapのDockerイメージをインストールしてください。
※dockerコマンドがアクセス制限されたらコマンドの先頭に sudo を付与してください。
※SSHログインや後述のconfファイルの作成・編集方法についてはこちらの記事を参考にしてみてください。
$ docker pull yuya207503/peerswap:v0.2
次に以下のコマンドを実行し、confファイルのサンプルを参考にpeerswap.confファイルを作成します。
$ mkdir ~/peerswap
$ nano ~/peerswap/peerswap.conf
confファイルのサンプル
lnd.tlscertpath=/lnd/tls.cert
lnd.macaroonpath=/lnd/data/chain/bitcoin/mainnet/admin.macaroon
以下のコマンドを実行してPeerSwapを起動します。コンテナ終了時に削除するオプションrmを追加しているので、適宜消してください。
docker run \
--rm \
--name peerswap \
--network="host" \
--add-host=umbrel.local:10.21.21.9 \
-v $HOME/peerswap:/root/.peerswap \
-v $HOME/umbrel/app-data/lightning/data/lnd:/lnd:ro \
yuya207503/peerswap:v0.2
以下のようなログが表示された成功です。
2022/08/26 08:16:36 [INFO] Starting peerswap commit with cfg: Host localhost:42069, ConfigFile /root/.peerswap/peerswap.conf, Datadir /root/.peerswap, Bitcoin enabled: true, Lnd Config: host: localhost:10009, macaroonpath /root/app-data/lightning/data/lnd/data/chain/bitcoin/testnet/admin.macaroon, tlspath /root/app-data/lightning/data/lnd/tls.cert, elements: elements: rpcuser: , rpchost: , rpcport 0, rpcwallet: swap
2022/08/26 08:16:36 [INFO] Running with lnd node: 03e2b21e648b7ac1a60a401c37aae1d1429d998ec5923a0ee246a46a16aef8d6dc
2022/08/26 08:16:36 [INFO] Waiting for lnd to be synced...
あとは別コンソールからUmbrelへSSHログインして、以下のコマンドのようにPeerswapのCLIコマンドを実行してSwapin/outを試してみましょう!使い方はこちら
$ docker exec -it peerswap pscli listpeers
以上、Dockerイメージを使ったUmbrel上でのインストールから起動まででした。
コマンド
peerswapを稼働しているピアの一覧
docker exec peerswap pscli listpeers
スワップイン(相手にオンチェーンBTCを送ってローカル残高を増やす)
docker exec peerswap pscli swapin --sat_amt <額> --channel_id <チャネルID> --asset btc
スワップアウト(相手にLN送金してオンチェーンBTCで返してもらう)
docker exec peerswap pscli swapin --sat_amt <額> --channel_id <チャネルID> --asset btc
※コマンドエイリアスを使うと打ち込むコマンドを少なく・見やすくできて便利
alias pscli='docker exec peerswap pscli'