diff --git a/lightning/docker-compose.yml b/lightning/docker-compose.yml index decba9ed..868169e2 100644 --- a/lightning/docker-compose.yml +++ b/lightning/docker-compose.yml @@ -7,7 +7,7 @@ services: APP_PORT: 3006 app: - image: getumbrel/umbrel-lightning:v1.1.2@sha256:3ab819f6335abebb160d2c7b4bd979ad706e25208d219beb9f82d4c1dadd3eff + image: getumbrel/umbrel-lightning:v1.2.0@sha256:6252a4b7412f157ee61576af8f9e924d4f73e7e9dc2ba171cc9dc2767df7ffed restart: on-failure volumes: - "${APP_LIGHTNING_NODE_DATA_DIR}:/data/.lnd" @@ -33,6 +33,7 @@ services: JSON_SETTINGS_FILE: "/data/settings.json" UMBREL_LND_CONF_FILEPATH: "/data/.lnd/umbrel-lnd.conf" LND_CONF_FILEPATH: "/data/.lnd/lnd.conf" + LND_INITIALIZE_WITH_TOR_ONLY: "${LND_INITIALIZE_WITH_TOR_ONLY:-unset}" DEVICE_DOMAIN_NAME: "${DEVICE_DOMAIN_NAME}" EXPLORER_PORT: "${APP_MEMPOOL_PORT}" EXPLORER_HIDDEN_SERVICE: "${APP_MEMPOOL_HIDDEN_SERVICE}" @@ -42,7 +43,7 @@ services: lnd: hostname: "${DEVICE_DOMAIN_NAME}" # Needed so LND can generate a valid cert - image: lightninglabs/lnd:v0.16.4-beta@sha256:a6e99f1a2a790ea6305a93f8075af64f9a2dade5cbf10bad893740264da03d0c + image: lightninglabs/lnd:v0.17.0-beta@sha256:2e49669792e6fbcb1d97c789b4690a2637645e43a90c05085d8bc33b0227f200 command: "${APP_LIGHTNING_COMMAND}" user: 1000:1000 restart: unless-stopped diff --git a/lightning/exports.sh b/lightning/exports.sh index fb6ca020..45da677d 100644 --- a/lightning/exports.sh +++ b/lightning/exports.sh @@ -51,3 +51,38 @@ rest_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-rest/hos grpc_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-grpc/hostname" export APP_LIGHTNING_REST_HIDDEN_SERVICE="$(cat "${rest_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" export APP_LIGHTNING_GRPC_HIDDEN_SERVICE="$(cat "${grpc_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" + +{ + # Migrate hybrid mode settings for app updates differently to fresh installs + LIGHTNING_DATA_DIR="${EXPORTS_APP_DIR}/data/lightning" + LND_DATA_DIR="${EXPORTS_APP_DIR}/data/lnd" + + IS_POST_HYBRID_MODE_INSTALL_FILE_PATH="${LIGHTNING_DATA_DIR}/IS_POST_HYBRID_MODE_INSTALL" + + # If no lnd/data directory exists, we write out a file to indicate that this is a fresh install. + # This gets around the issue of the pre-start hook starting up the lnd container early for Tor HS creation + # and creating the lnd/data directory. + if [[ ! -d "${LND_DATA_DIR}/data" ]]; then + touch "${IS_POST_HYBRID_MODE_INSTALL_FILE_PATH}" + fi + + APP_CONFIG_EXISTS="false" + APP_HYBRID_MODE_SETTING_EXISTS="false" + if [[ -f "${LIGHTNING_DATA_DIR}/settings.json" ]]; then + APP_CONFIG_EXISTS="true" + if jq -e '.lnd | has("tor.skip-proxy-for-clearnet-targets")' "${LIGHTNING_DATA_DIR}/settings.json" >/dev/null 2>&1; then + APP_HYBRID_MODE_SETTING_EXISTS="true" + fi + fi + + # We only need to preserve tor-only configuration for existing pre-1.2.0 installs + if [[ ! -f "${IS_POST_HYBRID_MODE_INSTALL_FILE_PATH}" ]]; then + if [[ "${APP_CONFIG_EXISTS}" = "false" ]]; then + # If no settings.json exists at all this is an update to a pre-Advanced-Settings version of the app, so we preserve existing tor-only configuration + export LND_INITIALIZE_WITH_TOR_ONLY="true" + elif [[ "${APP_CONFIG_EXISTS}" = "true" ]] && [[ "${APP_HYBRID_MODE_SETTING_EXISTS}" = "false" ]]; then + # If settings.json exists, but there is no hybrid mode setting yet, then this is a pre-1.2.0 version of the app, so we still preserve existing tor-only configuration + export LND_INITIALIZE_WITH_TOR_ONLY="true" + fi + fi +} || true \ No newline at end of file diff --git a/lightning/umbrel-app.yml b/lightning/umbrel-app.yml index 4f69bea3..9b4a9348 100644 --- a/lightning/umbrel-app.yml +++ b/lightning/umbrel-app.yml @@ -2,7 +2,7 @@ manifestVersion: 1.1 id: lightning category: bitcoin name: Lightning Node -version: "v0.16.4-beta" +version: "v0.17.0-beta" tagline: Run your personal Lightning Network node description: >- Run your personal Lightning Network node, and join the future of Bitcoin today. @@ -22,10 +22,16 @@ description: >- An official app from Umbrel. releaseNotes: >- - This release is a minor release to fix a memory leak inadvertently introduced by optimizations to the mempool scanning logic. - - - Read the full release notes for additional information and detailed changes at https://github.com/lightningnetwork/lnd/blob/master/docs/release-notes/release-notes-0.16.4.md + This update brings LND 0.17.0, the option to run your node in hybrid mode or Tor-only mode, along with the ability to open private channels, receive keysend payments, bugfixes, and more! + + + Hybrid mode allows your node to make connections to peers (other nodes) over both Tor and clearnet, enhancing both latency and connection stability. This is enabled by default for new users, while existing users can activate it in Advanced Settings. + + + You can now now choose to open private channels, which offer increased privacy but limited routing capabilities compared to public channels. + + + Discover what's new in LND 0.17.0: https://github.com/lightningnetwork/lnd/blob/master/docs/release-notes/release-notes-0.17.0.md developer: Umbrel website: https://umbrel.com dependencies: