Set up PeerSwap
Allows to swap sats in and out of Lightning channels without a 3rd party (and their fees). Instead, swaps can be initiated directly with the channel peer. https://www.peerswap.dev/
This commit is contained in:
parent
b3465e186f
commit
4f1b1aff30
@ -27,12 +27,13 @@
|
||||
"kosmos_kvm::guest",
|
||||
"tor-full",
|
||||
"tor-full::default",
|
||||
"kosmos-bitcoin::source",
|
||||
"kosmos-bitcoin::bitcoind",
|
||||
"kosmos-bitcoin::c-lightning",
|
||||
"kosmos-bitcoin::lnd",
|
||||
"kosmos-bitcoin::lnd-scb-s3",
|
||||
"kosmos-bitcoin::boltz",
|
||||
"kosmos-bitcoin::rtl",
|
||||
"kosmos-bitcoin::peerswap-lnd",
|
||||
"kosmos_postgresql::hostsfile",
|
||||
"kosmos-bitcoin::lndhub",
|
||||
"kosmos-bitcoin::lndhub-go",
|
||||
|
@ -5,4 +5,5 @@ run_list %w(
|
||||
kosmos-bitcoin::lnd-scb-s3
|
||||
kosmos-bitcoin::boltz
|
||||
kosmos-bitcoin::rtl
|
||||
kosmos-bitcoin::peerswap-lnd
|
||||
)
|
||||
|
@ -118,3 +118,7 @@ node.default["btcpay"]["domain"] = 'btcpay.kosmos.org'
|
||||
node.default['btcpay']['postgres']['port'] = 5432
|
||||
node.default['btcpay']['postgres']['database'] = 'btcpayserver'
|
||||
node.default['btcpay']['postgres']['user'] = 'satoshi'
|
||||
|
||||
node.default['peerswap']['repo'] = 'https://github.com/ElementsProject/peerswap.git'
|
||||
node.default['peerswap']['revision'] = 'master'
|
||||
node.default['peerswap-lnd']['source_dir'] = '/opt/peerswap'
|
||||
|
94
site-cookbooks/kosmos-bitcoin/recipes/peerswap-lnd.rb
Normal file
94
site-cookbooks/kosmos-bitcoin/recipes/peerswap-lnd.rb
Normal file
@ -0,0 +1,94 @@
|
||||
#
|
||||
# Cookbook:: kosmos-bitcoin
|
||||
# Recipe:: peerswap-lnd
|
||||
#
|
||||
|
||||
include_recipe 'git'
|
||||
include_recipe 'kosmos-bitcoin::golang'
|
||||
include_recipe 'kosmos-bitcoin::user'
|
||||
|
||||
bitcoin_user = node['bitcoin']['username']
|
||||
bitcoin_group = node['bitcoin']['usergroup']
|
||||
lnd_dir = node['lnd']['lnd_dir']
|
||||
macaroon_path = "#{lnd_dir}/data/chain/bitcoin/#{node['bitcoin']['network']}/admin.macaroon"
|
||||
source_dir = node['peerswap-lnd']['source_dir']
|
||||
config_dir = "/home/#{bitcoin_user}/.peerswap"
|
||||
|
||||
directory config_dir do
|
||||
owner bitcoin_user
|
||||
group bitcoin_group
|
||||
mode '0700'
|
||||
action :create
|
||||
end
|
||||
|
||||
git source_dir do
|
||||
repository node['peerswap']['repo']
|
||||
revision node['peerswap']['revision']
|
||||
action :sync
|
||||
notifies :run, 'bash[compile_peerswap]', :immediately
|
||||
end
|
||||
|
||||
bash 'compile_peerswap' do
|
||||
cwd source_dir
|
||||
environment 'GOPATH' => '/opt/go'
|
||||
code 'make lnd-release'
|
||||
action :run
|
||||
notifies :restart, 'service[peerswap]', :delayed
|
||||
end
|
||||
|
||||
template "#{config_dir}/peerswap.conf" do
|
||||
source 'peerswap-lnd.conf.erb'
|
||||
owner bitcoin_user
|
||||
group bitcoin_group
|
||||
mode 0600
|
||||
sensitive true
|
||||
variables config: {
|
||||
tlscertpath: "#{lnd_dir}/tls.cert",
|
||||
macaroonpath: macaroon_path
|
||||
}
|
||||
notifies :restart, 'service[peerswap]', :delayed
|
||||
end
|
||||
|
||||
file "#{config_dir}/policy.conf" do
|
||||
owner bitcoin_user
|
||||
group bitcoin_group
|
||||
mode 0600
|
||||
content 'accept_all_peers=true'
|
||||
notifies :restart, 'service[peerswap]', :delayed
|
||||
end
|
||||
|
||||
systemd_unit 'peerswap.service' do
|
||||
content({
|
||||
Unit: {
|
||||
Description: 'PeerSwap Lightning channel balancing',
|
||||
Documentation: ['https://github.com/ElementsProject/peerswap'],
|
||||
Requires: 'lnd.service',
|
||||
After: 'lnd.service'
|
||||
},
|
||||
Service: {
|
||||
User: bitcoin_user,
|
||||
Group: bitcoin_group,
|
||||
Type: 'simple',
|
||||
WorkingDirectory: source_dir,
|
||||
ExecStart: "/opt/go/bin/peerswapd",
|
||||
Restart: 'always',
|
||||
RestartSec: '10',
|
||||
TimeoutSec: '60',
|
||||
PrivateTmp: true,
|
||||
ProtectSystem: 'full',
|
||||
NoNewPrivileges: true,
|
||||
PrivateDevices: true,
|
||||
MemoryDenyWriteExecute: true
|
||||
},
|
||||
Install: {
|
||||
WantedBy: 'multi-user.target'
|
||||
}
|
||||
})
|
||||
verify false
|
||||
triggers_reload true
|
||||
action [:create, :enable, :start]
|
||||
end
|
||||
|
||||
service 'peerswap' do
|
||||
action :nothing
|
||||
end
|
@ -0,0 +1,3 @@
|
||||
<% @config.each do |k, v| %>
|
||||
<%= "lnd.#{k}=#{v}" %>
|
||||
<% end %>
|
Loading…
x
Reference in New Issue
Block a user