Support Tor connections for LND
Adds basics for general Tor support in bitcoin recipes, and specific support for Tor to the lnd recipe.
This commit is contained in:
		
							parent
							
								
									9f0b5f0e64
								
							
						
					
					
						commit
						b7af04e8be
					
				@ -26,6 +26,8 @@
 | 
				
			|||||||
      "kosmos-bitcoin::dotnet",
 | 
					      "kosmos-bitcoin::dotnet",
 | 
				
			||||||
      "kosmos-bitcoin::nbxplorer",
 | 
					      "kosmos-bitcoin::nbxplorer",
 | 
				
			||||||
      "kosmos-bitcoin::btcpay",
 | 
					      "kosmos-bitcoin::btcpay",
 | 
				
			||||||
 | 
					      "tor-full",
 | 
				
			||||||
 | 
					      "tor-full::default",
 | 
				
			||||||
      "apt::default",
 | 
					      "apt::default",
 | 
				
			||||||
      "timezone_iii::default",
 | 
					      "timezone_iii::default",
 | 
				
			||||||
      "timezone_iii::debian",
 | 
					      "timezone_iii::debian",
 | 
				
			||||||
@ -82,6 +84,7 @@
 | 
				
			|||||||
    "recipe[kosmos-bitcoin::c-lightning]",
 | 
					    "recipe[kosmos-bitcoin::c-lightning]",
 | 
				
			||||||
    "recipe[kosmos-bitcoin::lnd]",
 | 
					    "recipe[kosmos-bitcoin::lnd]",
 | 
				
			||||||
    "recipe[kosmos-bitcoin::rtl]",
 | 
					    "recipe[kosmos-bitcoin::rtl]",
 | 
				
			||||||
    "role[btcpay]"
 | 
					    "role[btcpay]",
 | 
				
			||||||
 | 
					    "recipe[tor-full]"
 | 
				
			||||||
  ]
 | 
					  ]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -25,6 +25,9 @@ node.default['bitcoin']['conf'] = {
 | 
				
			|||||||
  zmqpubrawtx: 'tcp://127.0.0.1:8338'
 | 
					  zmqpubrawtx: 'tcp://127.0.0.1:8338'
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Also enables Tor for LND
 | 
				
			||||||
 | 
					node.default['bitcoin']['tor_enabled'] = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
node.default['c-lightning']['repo'] = 'https://github.com/ElementsProject/lightning'
 | 
					node.default['c-lightning']['repo'] = 'https://github.com/ElementsProject/lightning'
 | 
				
			||||||
node.default['c-lightning']['revision'] = 'v0.10.0'
 | 
					node.default['c-lightning']['revision'] = 'v0.10.0'
 | 
				
			||||||
node.default['c-lightning']['source_dir'] = '/opt/c-lightning'
 | 
					node.default['c-lightning']['source_dir'] = '/opt/c-lightning'
 | 
				
			||||||
 | 
				
			|||||||
@ -26,3 +26,4 @@ depends 'kosmos-nginx'
 | 
				
			|||||||
depends 'kosmos-nodejs'
 | 
					depends 'kosmos-nodejs'
 | 
				
			||||||
depends 'firewall'
 | 
					depends 'firewall'
 | 
				
			||||||
depends 'application_javascript'
 | 
					depends 'application_javascript'
 | 
				
			||||||
 | 
					depends 'tor-full'
 | 
				
			||||||
 | 
				
			|||||||
@ -71,6 +71,9 @@ template "#{lnd_dir}/lnd.conf" do
 | 
				
			|||||||
  notifies :restart, "systemd_unit[lnd.service]", :delayed
 | 
					  notifies :restart, "systemd_unit[lnd.service]", :delayed
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exec_flags = ""
 | 
				
			||||||
 | 
					exec_flags += "--tor.active --tor.v3" if node['bitcoin']['tor_enabled']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
systemd_unit 'lnd.service' do
 | 
					systemd_unit 'lnd.service' do
 | 
				
			||||||
  content({
 | 
					  content({
 | 
				
			||||||
    Unit: {
 | 
					    Unit: {
 | 
				
			||||||
@ -83,7 +86,7 @@ systemd_unit 'lnd.service' do
 | 
				
			|||||||
      User: bitcoin_user,
 | 
					      User: bitcoin_user,
 | 
				
			||||||
      Group: bitcoin_group,
 | 
					      Group: bitcoin_group,
 | 
				
			||||||
      Type: 'simple',
 | 
					      Type: 'simple',
 | 
				
			||||||
      ExecStart: '/opt/go/bin/lnd',
 | 
					      ExecStart: "/opt/go/bin/lnd #{exec_flags}",
 | 
				
			||||||
      Restart: 'always',
 | 
					      Restart: 'always',
 | 
				
			||||||
      RestartSec: '30',
 | 
					      RestartSec: '30',
 | 
				
			||||||
      TimeoutSec: '240',
 | 
					      TimeoutSec: '240',
 | 
				
			||||||
@ -108,3 +111,8 @@ firewall_rule 'lnd' do
 | 
				
			|||||||
  protocol :tcp
 | 
					  protocol :tcp
 | 
				
			||||||
  command  :allow
 | 
					  command  :allow
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if node['bitcoin']['tor_enabled']
 | 
				
			||||||
 | 
					  node.override['tor']['ControlPort'] = 9051
 | 
				
			||||||
 | 
					  node.override['tor']['CookieAuthentication'] = true
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -81,6 +81,14 @@ user bitcoin_user do
 | 
				
			|||||||
  shell "/bin/bash"
 | 
					  shell "/bin/bash"
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if node['bitcoin']['tor_enabled']
 | 
				
			||||||
 | 
					  group 'debian-tor' do
 | 
				
			||||||
 | 
					    action :modify
 | 
				
			||||||
 | 
					    members bitcoin_user
 | 
				
			||||||
 | 
					    append true
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[bitcoin_datadir, bitcoin_walletdir].each do |path|
 | 
					[bitcoin_datadir, bitcoin_walletdir].each do |path|
 | 
				
			||||||
  directory path do
 | 
					  directory path do
 | 
				
			||||||
    owner bitcoin_user
 | 
					    owner bitcoin_user
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user