profile
viewpoint
Luke Childs lukechilds Full time open source contributor Chiang Mai, Thailand https://lukechilds.co Writing code while exploring the world

jstrace/chart 225

Ansi charts for nodejs

atomiclabs/hyperdex 142

Grandma-Friendly Atomic Swaps

lukechilds/base64-async 98

Non-blocking chunked Base64 encoding

lukechilds/autoscale-do-block-storage 13

Autoscale Digital Ocean block storage volumes

Kukks/payjoin-client-js 11

Please see https://github.com/bitcoinjs/payjoin-client instead.

getumbrel/umbrel-dev 9

Automatically initialize and manage an Umbrel development environment

atomiclabs/hyperdex-nightlies 4

Nightly builds of HyperDEX

atomiclabs/ledger-kmd-reward-claim 4

Claim your KMD rewards on your Ledger device

lukechilds/AtHash 1

Social text parser

lukechilds/awesome-nodejs 1

:zap: Delightful Node.js packages and resources

created tagatomiclabs/hyperdex-nightlies

tagv0.0.0-abb973e-20.9.29.1528

Nightly builds of HyperDEX

created time in 19 hours

startedAaronDewes/umbrel-details-gui

started time in 2 days

PullRequestReviewEvent

created taggetumbrel/umbrel-manager

tagv0.2.5

Low-level system API for Umbrel

created time in 2 days

push eventgetumbrel/umbrel-manager

Luke Childs

commit sha 94f30fe34110b959f2a7bce282b1c54dcbe50f24

Fix outdated version number

view details

Luke Childs

commit sha f73c38e49291c0b68ded5be8019fca975ec98e0d

0.2.5

view details

push time in 2 days

delete tag getumbrel/umbrel-manager

delete tag : v0.2.5

delete time in 2 days

push eventgetumbrel/umbrel-dashboard

Luke Childs

commit sha eb82e03400341642bbaac39b67213a5f2b82641f

0.3.8

view details

push time in 2 days

created taggetumbrel/umbrel-dashboard

tagv0.3.8

Web-based dashboard to interact with your Umbrel

created time in 2 days

delete tag getumbrel/umbrel-dashboard

delete tag : v0.3.8

delete time in 2 days

push eventgetumbrel/umbrel-manager

Luke Childs

commit sha b93c9052393e6d97bf58e7bfd9056a031ea67a10

Fix whitespace in API responses (#50)

view details

push time in 2 days

PR merged getumbrel/umbrel-manager

Fix whitespace in API responses

When Tor hidden service hostname files are being read they end with a newline. When they are then built into Bitcoin/Electrum/LND connection strings and have extra information appended to them the newline gets sandwhiched between the data and breaks the connections string.

In the dashboard the connection strings are displayed in a text input and a QR code. The text input automatically strips out newlines so it works, but the QR code encodes the newlines so scanning the QR results in a broken connection string.

This PR automatically trims any trailing whitespace in the readUtf8File() method in the disk service to prevent this from ever happening.

+2 -2

0 comment

1 changed file

lukechilds

pr closed time in 2 days

push eventlukechilds/umbrel-manager

Luke Childs

commit sha 58c53694224566fb81926c731ee29e2bd66cc3ac

Don't trim the Promise

view details

push time in 2 days

PR opened getumbrel/umbrel-manager

Fix whitespace in API responses

When Tor hidden service hostname files are being read they end with a newline. When they are then built into Bitcoin/Electrum/LND connection strings and have extra information appended to them the newline gets sandwhiched between the data and breaks the connections string.

In the dashboard the connection strings are displayed in a text input and a QR code. The text input automatically strips out newlines so it works, but the QR code encodes the newlines so scanning the QR results in a broken connection string.

This PR automatically trims any trailing whitespace in the readUtf8File() method in the disk service to prevent this from ever happening.

+1 -1

0 comment

1 changed file

pr created time in 2 days

issue closedgetumbrel/umbrel

Integrate Electrs

Add Electrum Server and display the hidden service URL for relevant wallets that support it.

Will be resolved by #242.

closed time in 2 days

mayankchhabra

issue commentgetumbrel/umbrel

Integrate Electrs

Resolved via #242

mayankchhabra

comment created time in 2 days

create barnchlukechilds/umbrel-manager

branch : fix-trailing-whitespace

created branch time in 2 days

push eventgetumbrel/umbrel

Luke Childs

commit sha 447dfea1710dfb1090ba72bfd6d08128217ffd6c

Integrate electrs (#242) Also adds a 2GB RAM requirement for future OTA updates.

view details

push time in 2 days

PR merged getumbrel/umbrel

Integrate electrs

This integrates the electrs Electrum server into Umbrel.

Related:

  • https://github.com/getumbrel/umbrel-manager/pull/49
  • https://github.com/getumbrel/umbrel-dashboard/pull/221

You can connect Electrum Wallet to Umbrel with:

your-electrum-hidden-service.onion:50001:t

You can verify you're connected by viewing the console tab in Electrum and you should see the text "Umbrel v0.2.10".

Screenshot 2020-09-19 at 22 08 01

I don't seem to be able to get ARM builds of the electrs Docker images working in GitHub Actions via QEMU, so for now I've manually built the Docker images locally and pushed them to Docker Hub via CLI.

+79 -2

0 comment

13 changed files

lukechilds

pr closed time in 2 days

push eventlukechilds/umbrel

Aaron Dewes

commit sha 61b3e40cbcb32c24b1a0023b434e031a8792c95b

Update outdated readme information (#238)

view details

Mayank Chhabra

commit sha 5c8d06e8b6abd91695b7363a7d358dbe5850e3a3

Expose LND RPC/REST for lndconnect (#237)

view details

Luke Childs

commit sha 76e9bbe03a3b66b4cad3336303e1b71ce2deefe4

Merge branch 'master' into electrs

view details

push time in 2 days

push eventlukechilds/umbrel

Luke Childs

commit sha 065c9b589fc0dd2c3d5a3dafd50d75766c1fbe78

Revert dev images

view details

push time in 2 days

push eventgetumbrel/umbrel-dashboard

Luke Childs

commit sha 3626fceab545fb3ad55d4ea92d28b6e9c0936e23

Display Electrum connection details (#221)

view details

push time in 2 days

PR merged getumbrel/umbrel-dashboard

Display Electrum connection details

Show's a dropdown with multiple wallets and displays either the new Electrum connection details or the existing Bitcoin Core P2P connection details.

electrum-test

Extended from this PR branch: https://github.com/getumbrel/umbrel-dashboard/pull/218

+151 -7

0 comment

3 changed files

lukechilds

pr closed time in 2 days

push eventlukechilds/umbrel-dashboard

Luke Childs

commit sha ece9be527da00b1f8ceeef3b8bbb4d69a4b90dd2

Include Sparrow

view details

push time in 2 days

push eventlukechilds/umbrel-dashboard

Aaron Dewes

commit sha 4db2de5f899e9e2b6c63515df8a46af00ee6dbec

Update version in package.json (#220)

view details

John Gribbin

commit sha 69d44c1801615264cc5dad48647c26e7e2d44489

Darken the wee dots to the muted text color (#219)

view details

Mayank Chhabra

commit sha 8a99b83a3a45307163cc9235c9dc777f40775326

Connect lnd to external wallets using lndconnect (#218)

view details

Luke Childs

commit sha f237f7aa3f958de1e137e5b2a5dc19ad16a36fe3

Merge branch 'master' into show-electrum-connection-details

view details

push time in 2 days

push eventgetumbrel/umbrel-manager

Luke Childs

commit sha 667bf20ca4f0ef4af8aadedbe29067ce76083646

Expose electrum hidden service URL (#49)

view details

push time in 2 days

PR merged getumbrel/umbrel-manager

Expose electrum hidden service URL

Expose the Electrum server hidden service URL via the API.

+26 -1

0 comment

5 changed files

lukechilds

pr closed time in 2 days

issue commentgetumbrel/umbrel

Integrate Electrs

@maltokyo It is superior performance wise, however it also requires txindex in Bitcoin Core and takes considerably longer to build the initial index, electrs is really fast to build the index.

We think electrs makes the most sense to ship by default in Umbrel and its performance is more than adequate for personal use. Once we build out app infrastructure anyone is free to publish an ElectrumX app and users would be free to install that if they need a higher performance Electrum server.

Alternatively, if we get lots of complaints from users that the Electrum server is too slow then we can look at swapping out the default Electrum server in Umbrel from electrs to ElectrumX.

mayankchhabra

comment created time in 2 days

PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent

push eventlukechilds/umbrel

Luke Childs

commit sha 2ef64f068a9059c366f3576699ac432c1195d8fa

Fail updates on low memory devices

view details

push time in 2 days

created taglukechilds/umbrel

tagv0.2.69

Umbrel stack, powered by Docker and Docker Compose

created time in 2 days

delete tag lukechilds/umbrel

delete tag : v0.2.69

delete time in 2 days

created taglukechilds/umbrel

tagv0.2.69

Umbrel stack, powered by Docker and Docker Compose

created time in 2 days

delete tag lukechilds/umbrel

delete tag : v0.2.69

delete time in 2 days

created tagatomiclabs/hyperdex-nightlies

tagv0.0.0-abb973e-20.9.27.1525

Nightly builds of HyperDEX

created time in 3 days

created tagatomiclabs/hyperdex-nightlies

tagv0.0.0-abb973e-20.9.26.1526

Nightly builds of HyperDEX

created time in 4 days

push eventlukechilds/umbrel

Luke Childs

commit sha 7cebdf925b5c4648384ab9d2c9518e574b0642b3

Fail updates on low memory devices

view details

push time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha 8eeae23a9b963e8e9eac156c6238533f7a40e617

Fail updates on low memory devices

view details

push time in 5 days

created taglukechilds/umbrel

tagv0.2.69

Umbrel stack, powered by Docker and Docker Compose

created time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha 1de3d235658663f1e65e79e18c71eb6af4c796b8

v0.2.69

view details

push time in 5 days

delete tag lukechilds/umbrel

delete tag : v0.2.69

delete time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha 5a6c77f49ef5feb3eef40df34ad7559183a377e2

v0.2.69

view details

push time in 5 days

created taglukechilds/umbrel

tagv0.2.69

Umbrel stack, powered by Docker and Docker Compose

created time in 5 days

delete tag lukechilds/umbrel

delete tag : v0.2.69

delete time in 5 days

created taglukechilds/umbrel

tagv0.2.69

Umbrel stack, powered by Docker and Docker Compose

created time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha dc022323b4fcef75746ed1f2b2b974014c4bcc70

v0.2.69

view details

push time in 5 days

delete tag lukechilds/umbrel

delete tag : v0.2.69

delete time in 5 days

created taglukechilds/umbrel

tagv0.2.69

Umbrel stack, powered by Docker and Docker Compose

created time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha 23528dbf2405ceb7cfefb68ce6d36a8d38569678

v0.2.69

view details

push time in 5 days

delete tag lukechilds/umbrel

delete tag : v0.2.69

delete time in 5 days

created taglukechilds/umbrel

tagv0.2.69

Umbrel stack, powered by Docker and Docker Compose

created time in 5 days

delete tag lukechilds/umbrel

delete tag : v0.2.69

delete time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha 3bd6218478a5fb7a23defca185e96d1381730bdf

v0.2.69

view details

push time in 5 days

created taglukechilds/umbrel

tagv0.2.69

Umbrel stack, powered by Docker and Docker Compose

created time in 5 days

delete tag lukechilds/umbrel

delete tag : v0.2.69

delete time in 5 days

created taglukechilds/umbrel

tagv0.2.69

Umbrel stack, powered by Docker and Docker Compose

created time in 5 days

delete tag lukechilds/umbrel

delete tag : v0.2.69

delete time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha 3fe5805e58ebdcaf131682418275d4fbf3977ce9

v0.2.69

view details

push time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha f3bc1dd27422775f04481fb3fdec34247776b679

v0.2.69

view details

push time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha c13ad08a946e0fddb03207dc5d913ad25ce0ed1c

v0.2.69

view details

push time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha d904b0e7c48b07e3f7895ec0c98766fc60b547ef

v0.2.69

view details

push time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha 276b2fe8cbd2765e4dc21e7da2327fd1cd0479c3

v0.2.69

view details

push time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha e7e8d2b0b9f96f45278d1496525cd3aff5b63c89

Add electrs

view details

Luke Childs

commit sha e91ed75e14981bbd1a710071d9fe2f376121290b

Add TODO to change to official image

view details

Luke Childs

commit sha 76f4829f899c1efa24953f4a75d88a4c11c30ab4

Commit electrs dir

view details

Luke Childs

commit sha 2df37358b90d8918ac4b0176e670eb6f0883c852

Use config file for electrs

view details

Luke Childs

commit sha d96af1d1910b3d7f5dcef919f3fbe8d0fa39237f

Inject configuration values into electrs config

view details

Luke Childs

commit sha 329e48228d97252fdb7ff600989de2a95c5a6605

Prepend Umbrel version with v

view details

Luke Childs

commit sha e24518ab1f5eaba9706a01777a4fc085c7828310

Expose Electrum server hidden service

view details

Luke Childs

commit sha 83da1cc9f5cf781f251c7d5ddf3f68e7303bafb8

Use official image

view details

Luke Childs

commit sha caea8857505ae208a6cfdfb3ca90455c48c7cab4

Use dev builds of manager and dashboard

view details

Luke Childs

commit sha bcea37fd799afdf130e3c53d18d1c546e8f9bdfa

Bump stop grace period to 5m

view details

Luke Childs

commit sha 5f31013e5b42b7f72f2beefc878c9c287674c65a

Make sure electrs config gets updated via OTA

view details

Luke Childs

commit sha dd4601b53efe2bb32fe533945b9217e35325c3db

Fail updates on low memory devices

view details

Luke Childs

commit sha 69f3429880c744fd7c47e7422a57a46571f0a1c9

Switch to lukechilds repo

view details

Luke Childs

commit sha cbb11135d1b7cdbc182a4282c0b110591f0ffc60

v0.2.69

view details

push time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha 756b788605351e7789e6faef625110e21357ce2a

Update external Umbrel installation when booting from a newer Umbrel OS version. (#134)

view details

Mayank Chhabra

commit sha f7cdac40b890b44dbc8ee19a01dc59fdc56d88ba

Check for curl instead of wget (#137)

view details

Mayank Chhabra

commit sha 8b3b077404c0f926bae1a6778fa9b0ecc19f34f2

Delete unused Docker images only on Umbrel OS (#138)

view details

Luke Childs

commit sha 5ae3de350f6e08594ce0ea1a383380c9a6e03ee3

Reformat external storage if it isn't EXT4 (#139)

view details

Mayank Chhabra

commit sha 684196d3c342bb613e7988dbc6f5e96c991552a1

Umbrel v0.2.0 (#141)

view details

Mayank Chhabra

commit sha 75f6b46edee64a6eaa7e42a578f649d488fd51e6

Check for ext4 before mounting a device (#144)

view details

Mayank Chhabra

commit sha 3563831a6654d5234eb4263f7f9855331f67e358

Umbrel v0.2.1 (#145)

view details

Mayank Chhabra

commit sha ba9e50d6f2182b329f510d0dc9714cca67716e8a

Stop timeout after 16min (#146)

view details

BT

commit sha 2f1647cae2ba5a94318a3e9b7bec01331e1fd010

Bump bitcoin version to 0.20.1 (#86)

view details

BT

commit sha 8b4946d13d7c6b190e9b9f1f58d8edafd3806562

Bump lnd to v0.10.4 (#98)

view details

Mayank Chhabra

commit sha 1c355bfafe74d2465c2fe69c13827d9627055fd0

Bump manager to v0.2.1 (#148)

view details

Mayank Chhabra

commit sha 7322304f9d992fb0f1a68c5cfabb868a6d003206

Bump umbrel-dashboard to v0.3.2 (#149)

view details

Luke Childs

commit sha c18f4551b5036e457e300a1e394b510ff0d3de9b

Remove CORS headers (#142)

view details

Luke Childs

commit sha 401f57819ef421f03d0ee9034fc53aa14e6ea3a6

Remove unused x-utility block from Docker Compose config (#150)

view details

Mayank Chhabra

commit sha 98857949b34132eac12eb200fbd6d55a1a5895d3

Retry searching for block devices 20 times before failing (#151)

view details

Luke Childs

commit sha 8a5da007483c5d0ab04cb4b9b5bca3711ce0808d

Clean up Bitcoin Core config (#152)

view details

Mayank Chhabra

commit sha ddaec6efee39655151c76e3f18cc7372dadb36a2

Umbrel v0.2.2 (#153)

view details

Luke Childs

commit sha de21b8b8649990d3d066104674e07e35a63cede7

Document know security issues in SECURITY.md (#154)

view details

Luke Childs

commit sha 27ce61d2cfdb8c2cd9fe0c5bc108d351edd1335a

Add security disclaimer to readme (#155)

view details

Mayank Chhabra

commit sha 3d38f3f363338e7d695514feab0b2db96df1106d

Add a note on safeguarding funds (#156)

view details

push time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha dd4601b53efe2bb32fe533945b9217e35325c3db

Fail updates on low memory devices

view details

push time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha 3ec8a784a4978e273bc6396d3c0c19d29ff0baaa

Fail updates on low memory devices

view details

push time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha 3f33378de26953bdf81ff832471050ec8caa214e

Fail updates on low memory devices

view details

push time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha d25f451413a46d1b8ebed80c16aeb180d0cc9af6

Fail updates on low memory devices

view details

push time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha 6ae43e64e0cb71ff31ec5ab8f31b11d99c211478

Fail updates on low memory devices

view details

push time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha 0063cdbf4d734b2df8bf4dba23d532a56edb6be5

Fail updates on low memory devices

view details

push time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha ce7ee2c0f51b979d87c063b40a2d928c5c7d6ec0

Fail updates on low memory devices

view details

push time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha 5765bab0116f65489268e91e7fccc228a77c6fc9

Fail updates on low memory devices

view details

push time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha 4be8368b6b17898e15ea0a7a5b17c5b4a60925dd

Fail updates on low memory devices

view details

push time in 5 days

push eventlukechilds/umbrel

Luke Childs

commit sha b57cdf61a3822bf517704a65debc4044560e2488

Fail updates on low memory devices

view details

push time in 5 days

PullRequestReviewEvent
PullRequestReviewEvent

created tagatomiclabs/hyperdex-nightlies

tagv0.0.0-abb973e-20.9.25.1524

Nightly builds of HyperDEX

created time in 5 days

issue commentgetumbrel/umbrel-dev

Refactor development environment

I think we should support running as both Docker containers and directly on the host with Node.js.

Rebuilding the Docker containers is very useful for testing features that change the core Umbrel repo and modify the compose file.

It's just the feedback loop is a bit slow for changes only affecting UI/manager/middleware.

It would be nice if we can toggle it with something like:

umbrel-dev start --docker
// or
umbrel-dev start --hot-reload
mayankchhabra

comment created time in 5 days

Pull request review commentgetumbrel/umbrel

Expose LND RPC/REST for lndconnect

 maxpendingchannels=3 minchansize=10000 accept-keysend=true tlsextraip=10.11.1.2+tlsextraip=192.168.0.0/16

Also does this definitely work?

This stack exchange answer suggests it's not possible to add an IP range to a cert:

https://security.stackexchange.com/questions/91368/ip-range-in-ssl-subject-alternative-name

Did you get errors connecting via IP without this?

mayankchhabra

comment created time in 5 days

PullRequestReviewEvent

Pull request review commentgetumbrel/umbrel

Expose LND RPC/REST for lndconnect

 maxpendingchannels=3 minchansize=10000 accept-keysend=true tlsextraip=10.11.1.2+tlsextraip=192.168.0.0/16

I'm not sure we should do that, I can't think of anything off the top of my head but it doesn't seem very safe to use a certificate that's valid for every IP on the local network.

I personally think we should just not allow connecting over the local network at all.

It kind of makes sense for a desktop wallet but it's pretty confusing for a mobile wallet to only be able to connect when you're at home and connected to WiFi.

mayankchhabra

comment created time in 5 days

PullRequestReviewEvent

Pull request review commentgetumbrel/umbrel-dashboard

Connect lnd to external wallets using lndconnect

+<template>+  <div>+    <b-form-select v-model="selectedWallet" class="mb-3">+      <b-form-select-option+        :value="{ walletName: 'Select your wallet', type: null, network: null }"+        disabled+        >Select your wallet</b-form-select-option+      >+      <b-form-select-option+        :value="{ walletName: 'Zap Desktop', type: 'grpc', network: 'tor' }"+        >Zap Desktop</b-form-select-option+      >+      <b-form-select-option+        :value="{ walletName: 'Zap Mobile', type: 'rest', network: 'tor' }"

I think this should be gRPC: https://github.com/getumbrel/umbrel-dashboard/pull/218#issuecomment-698910656

        :value="{ walletName: 'Zap Mobile', type: 'grpc', network: 'tor' }"
mayankchhabra

comment created time in 5 days

PullRequestReviewEvent
PullRequestReviewEvent

pull request commentgetumbrel/umbrel-dashboard

Connect lnd to external wallets using lndconnect

After testing on a few wallets:

Zeus

  • Works via Tor on Android with Orbot.
  • Doesn't work with umbrel.local.
  • Does work with IP.
  • QR code is invalid.

Zap Mobile

  • QR code is invalid.
  • Get error: rest port 8080 no supports do you want to use 10009.
  • When connecting with gRPC (Zap Desktop) it works.

Zap Desktop

  • When trying to connect the loading spinner just spins forever.
mayankchhabra

comment created time in 5 days

Pull request review commentgetumbrel/umbrel-dashboard

Connect lnd to external wallets using lndconnect

+<template>+  <div>+    <b-form-select v-model="selectedWallet" class="mb-3">+      <b-form-select-option+        :value="{ walletName: 'Select your wallet', type: null, network: null }"+        disabled+        >Select your wallet</b-form-select-option+      >+      <b-form-select-option+        :value="{ walletName: 'Zap Desktop', type: 'grpc', network: 'tor' }"+        >Zap Desktop</b-form-select-option+      >+      <b-form-select-option+        :value="{ walletName: 'Zap Mobile', type: 'rest', network: 'tor' }"+        >Zap Mobile</b-form-select-option+      >+      <b-form-select-option+        :value="{ walletName: 'Zeus', type: 'rest', network: 'local' }"+        >Zeus</b-form-select-option+      >+      <b-form-select-option-group label="Other">+        <b-form-select-option+          :value="{+            walletName: 'any other wallet that uses lndconnect gRPC',+            type: 'grpc',+            network: 'local'+          }"+          >lndconnect gRPC</b-form-select-option+        >+        <b-form-select-option+          :value="{+            walletName: 'any other wallet that uses lndconnect gRPC (Tor)',+            type: 'grpc',+            network: 'tor'+          }"+          >lndconnect gRPC (Tor)</b-form-select-option+        >+        <b-form-select-option+          :value="{+            walletName: 'any other wallet that uses lndconnect REST',+            type: 'rest',+            network: 'local'+          }"+          >lndconnect REST</b-form-select-option+        >+        <b-form-select-option+          :value="{+            walletName: 'any other wallet that uses lndconnect REST (Tor)',+            type: 'rest',+            network: 'tor'+          }"+          >lndconnect REST (Tor)</b-form-select-option+        >+      </b-form-select-option-group>+    </b-form-select>+    <div+      class="d-lg-flex align-items-center"+      v-if="lndConnectUrl && selectedWallet.type"+    >+      <!-- Pubkey QR Code -->+      <qr-code+        :value="lndConnectUrl"+        :size="200"+        level="M"+        class="qr-image mb-3 mb-lg-0"+        showLogo+      ></qr-code>+      <div class="w-100 align-self-center ml-lg-3">+        <p class="text-center text-lg-left">+          Connect {{ selectedWallet.walletName }} to your Umbrel using the+          following url+        </p>+        <input-copy class="mb-2" size="sm" :value="lndConnectUrl"></input-copy>+      </div>+    </div>+  </div>+</template>++<script>+import { mapState } from "vuex";++import QrCode from "@/components/Utility/QrCode";+import InputCopy from "@/components/Utility/InputCopy";++export default {+  data() {+    return {+      selectedWallet: {+        walletName: "Select your wallet",+        type: null,+        network: null+      }+    };+  },+  computed: {+    ...mapState({+      lndConnectUrl: state => state.lightning.lndConnectUrl+    })+  },+  methods: {},+  watch: {+    selectedWallet: async function(wallet) {+      this.$store.dispatch("lightning/getLndConnectUrl", {

Ah wait, I'm not sure if this would be the right approach as we'd have to make 4 different API calls right on the page load, then store all 4 types of endpoints in the global store.

I'd say that's better than the current approach. The 4 requests can be async so they don't block anything.

We could probably quite easily just squash it down to a single request though. Does the network param just swap out the .onion for umbrel.local? If so we can just do that client side anyway.

It could be a single request to /v1/system/lndconnect-url that returns an object like:

{
  rest: "blah.onion?abc"
  rpc: "blah.onion?def"
}
mayankchhabra

comment created time in 5 days

Pull request review commentgetumbrel/umbrel-dashboard

Connect lnd to external wallets using lndconnect

+<template>+  <div>+    <b-form-select v-model="selectedWallet" class="mb-3">+      <b-form-select-option+        :value="{ walletName: 'Select your wallet', type: null, network: null }"+        disabled+        >Select your wallet</b-form-select-option+      >+      <b-form-select-option+        :value="{ walletName: 'Zap Desktop', type: 'grpc', network: 'tor' }"+        >Zap Desktop</b-form-select-option+      >+      <b-form-select-option+        :value="{ walletName: 'Zap Mobile', type: 'rest', network: 'tor' }"+        >Zap Mobile</b-form-select-option+      >+      <b-form-select-option+        :value="{ walletName: 'Zeus', type: 'rest', network: 'local' }"+        >Zeus</b-form-select-option+      >+      <b-form-select-option-group label="Other">+        <b-form-select-option+          :value="{+            walletName: 'any other wallet that uses lndconnect gRPC',+            type: 'grpc',+            network: 'local'+          }"+          >lndconnect gRPC</b-form-select-option+        >+        <b-form-select-option+          :value="{+            walletName: 'any other wallet that uses lndconnect gRPC (Tor)',+            type: 'grpc',+            network: 'tor'+          }"+          >lndconnect gRPC (Tor)</b-form-select-option+        >+        <b-form-select-option+          :value="{+            walletName: 'any other wallet that uses lndconnect REST',+            type: 'rest',+            network: 'local'+          }"+          >lndconnect REST</b-form-select-option+        >+        <b-form-select-option+          :value="{+            walletName: 'any other wallet that uses lndconnect REST (Tor)',+            type: 'rest',+            network: 'tor'+          }"+          >lndconnect REST (Tor)</b-form-select-option+        >+      </b-form-select-option-group>+    </b-form-select>+    <div+      class="d-lg-flex align-items-center"+      v-if="lndConnectUrl && selectedWallet.type"+    >+      <!-- Pubkey QR Code -->+      <qr-code+        :value="lndConnectUrl"+        :size="200"+        level="M"+        class="qr-image mb-3 mb-lg-0"+        showLogo+      ></qr-code>+      <div class="w-100 align-self-center ml-lg-3">+        <p class="text-center text-lg-left">+          Connect {{ selectedWallet.walletName }} to your Umbrel using the+          following url+        </p>+        <input-copy class="mb-2" size="sm" :value="lndConnectUrl"></input-copy>+      </div>+    </div>+  </div>+</template>++<script>+import { mapState } from "vuex";++import QrCode from "@/components/Utility/QrCode";+import InputCopy from "@/components/Utility/InputCopy";++export default {+  data() {+    return {+      selectedWallet: {+        walletName: "Select your wallet",+        type: null,+        network: null+      }+    };+  },+  computed: {+    ...mapState({+      lndConnectUrl: state => state.lightning.lndConnectUrl+    })+  },+  methods: {},+  watch: {+    selectedWallet: async function(wallet) {+      this.$store.dispatch("lightning/getLndConnectUrl", {

This is triggering a network round trip each time the user changes the select, waiting for the round trip to complete, then updating the result in the UI.

Over Tor this is quite noticeable.

It's also confusing because the text content is updated immediately but the connection string and QR wait for the network. So if you change between wallets over Tor there's a period of a few seconds where the text is saying one thing but the connection string is for the previously selected option.

umbrel-lag

I think it would be better to request all the required information on Lightning page load and then instantly show the result to the user when they select it instead of waiting for extra network requests to complete.

mayankchhabra

comment created time in 5 days

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentgetumbrel/umbrel

Expose LND RPC/REST for lndconnect

 maxpendingchannels=3 minchansize=10000 accept-keysend=true tlsextraip=10.11.1.2+tlsextraip=192.168.0.0/16

What's this for?

mayankchhabra

comment created time in 5 days

Pull request review commentgetumbrel/umbrel

Expose LND RPC/REST for lndconnect

 maxpendingchannels=3 minchansize=10000 accept-keysend=true tlsextraip=10.11.1.2+tlsextraip=192.168.0.0/16+tlsextradomain=umbrel.local+tlsextradomain=umbrel-testnet.local

Maybe we should just inject the hostname here?

mayankchhabra

comment created time in 5 days

PullRequestReviewEvent
PullRequestReviewEvent
more