Compare commits
6 Commits
master
...
remotenode
| Author | SHA1 | Date | |
|---|---|---|---|
| 5fcaebc08d | |||
| 2cadf70d53 | |||
| d71ee81de6 | |||
| a3ea840886 | |||
| d7a3911d55 | |||
| 440bc9d07a |
41
README-NO-LOOPBACK-RESTRICTION.md
Normal file
41
README-NO-LOOPBACK-RESTRICTION.md
Normal file
@ -0,0 +1,41 @@
|
||||
Removed a few lines from liana-gui/src/installer/view/mod.rs to allow connecting to bitcoin core running on a remote host.
|
||||
|
||||
NOTE: Only use this if you are running your own, trusted bitcoin core instance. The watch-only inheritance wallet will be created on that host in /home/<user>/.liana. This slightly increases your attack surface compared to a local node running on the wallet host, but given a trusted own instance is better than providing an email to use the integrated remote service. Using a trusted remote node will also greatly increase your UX as you will not need to wait for sync and provide space for the blockchain on the wallet host.
|
||||
|
||||
You will need to create a matching /home/<user>/.liana directory on the remote host, and ensure the user bitcoind runs as has write access to that directory. This means that if your username on the host where you want to install Liana is 'mrawesome', and bitcoind is running as the 'bitcoin' user, on your bitcoin core node you will run:
|
||||
`mkdir -p /home/mrawesome/.liana`
|
||||
`chown -R bitcoin:bitcoin /home/mrawesome/.liana`
|
||||
|
||||
You do not need to add 'mrawesome' as a user to your bitcoin node host, adding the directory as above is enough.
|
||||
|
||||
To compile:
|
||||
1) Install dependencies on the host used to compile
|
||||
`sudo apt install -y build-essential pkg-config libgtk-3-dev libwebkit2gtk-4.1-dev libssl-dev libudev-dev`
|
||||
|
||||
2) Install rust
|
||||
<pre><code>
|
||||
curl --proto '=https' --tlsv1.2 --http2 -sSf https://sh.rustup.rs | sh
|
||||
. "$HOME/.cargo/env"
|
||||
rustc --version
|
||||
</code></pre>
|
||||
|
||||
3) Clone the repo
|
||||
<pre><code>
|
||||
git clone https://git.mitev.net/nik/liana
|
||||
git checkout remotenode
|
||||
cargo build --release
|
||||
</code></pre>
|
||||
|
||||
I used these steps to build on a debian vm, then run the binaries on Linux Mint. You may need to modify the dependencies for other distributions.
|
||||
|
||||
If you would like to verify the changes made against the original code by wisardsardine
|
||||
- add the github repo as a remote:
|
||||
`git remote add wisardsardine https://github.com/wizardsardine/liana.git`
|
||||
|
||||
- checkout the master branch
|
||||
<pre><code>
|
||||
git checkout master
|
||||
git pull wisardsardine master
|
||||
git diff master remotenode
|
||||
</code></pre>
|
||||
|
||||
@ -1150,17 +1150,6 @@ pub fn define_bitcoind<'a>(
|
||||
rpc_auth_vals: &RpcAuthValues,
|
||||
selected_auth_type: &RpcAuthType,
|
||||
) -> Element<'a, Message> {
|
||||
let is_loopback = if let Some((ip, _port)) = address.value.clone().rsplit_once(':') {
|
||||
let (ipv4, ipv6) = (Ipv4Addr::from_str(ip), Ipv6Addr::from_str(ip));
|
||||
match (ipv4, ipv6) {
|
||||
(_, Ok(ip)) => ip.is_loopback(),
|
||||
(Ok(ip), _) => ip.is_loopback(),
|
||||
_ => false,
|
||||
}
|
||||
} else {
|
||||
false
|
||||
};
|
||||
|
||||
let col_address = Column::new()
|
||||
.push(text("Address:").bold())
|
||||
.push(
|
||||
@ -1173,19 +1162,6 @@ pub fn define_bitcoind<'a>(
|
||||
.size(text::P1_SIZE)
|
||||
.padding(10),
|
||||
)
|
||||
.push_maybe(if !is_loopback && address.valid {
|
||||
Some(
|
||||
iced::widget::Text::new(
|
||||
"Connection to a remote Bitcoin node \
|
||||
is not supported. Insert an IP address bound to the same machine \
|
||||
running Liana (ignore this warning if that's already the case)",
|
||||
)
|
||||
.style(theme::text::warning)
|
||||
.size(text::CAPTION_SIZE),
|
||||
)
|
||||
} else {
|
||||
None
|
||||
})
|
||||
.spacing(10);
|
||||
|
||||
let col_auth = Column::new()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user