Browse Source

Expose electrum hidden service URL (#49)

fix-trailing-whitespace
Luke Childs 4 years ago
committed by GitHub
parent
commit
667bf20ca4
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      README.md
  2. 5
      logic/disk.js
  3. 12
      logic/system.js
  4. 6
      routes/v1/system.js
  5. 2
      utils/const.js

2
README.md

@ -47,6 +47,8 @@ Set the following environment variables directly or by placing them in `.env` fi
| `DOCKER_COMPOSE_DIRECTORY` | Path to directory containing `docker-compose.yml` | `/docker-compose` |
| `UMBREL_SEED_FILE` | Path to the seed used to deterministically generate entropy | `'/db/umbrel-seed/seed'` |
| `UMBREL_DASHBOARD_HIDDEN_SERVICE_FILE` | Path to Tor hostname of [`umbrel-dashboard`](https://github.com/getumbrel/umbrel-dashboard) | `/var/lib/tor/dashboard/hostname` |
| `ELECTRUM_HIDDEN_SERVICE_FILE` | Path to Electrum hidden service hostname | `/var/lib/tor/electrum/hostname` |
| `ELECTRUM_PORT` | Port the Electrum server is listening on | `50001` |
| `BITCOIN_P2P_HIDDEN_SERVICE_FILE` | Path to P2P hidden service hostname of `bitcoin` | `/var/lib/tor/bitcoin-p2p/hostname` |
| `BITCOIN_P2P_PORT` | P2P port of `bitcoin` | `8333` |
| `GITHUB_REPO` | GitHub repository of Umbrel | `getumbrel/umbrel` |

5
logic/disk.js

@ -94,6 +94,10 @@ function readHiddenService() {
return diskService.readUtf8File(constants.UMBREL_DASHBOARD_HIDDEN_SERVICE_FILE);
}
function readElectrumHiddenService() {
return diskService.readUtf8File(constants.ELECTRUM_HIDDEN_SERVICE_FILE);
}
function readBitcoinP2PHiddenService() {
return diskService.readUtf8File(constants.BITCOIN_P2P_HIDDEN_SERVICE_FILE);
}
@ -221,6 +225,7 @@ module.exports = {
hiddenServiceFileExists,
readAppVersionFile,
readHiddenService,
readElectrumHiddenService,
readBitcoinP2PHiddenService,
readLndRestHiddenService,
readLndGrpcHiddenService,

12
logic/system.js

@ -26,6 +26,15 @@ async function getHiddenServiceUrl() {
}
};
async function getElectrumHiddenServiceUrl() {
try {
const url = await diskLogic.readElectrumHiddenService();
return `${url}:${constants.ELECTRUM_PORT}:t`;
} catch (error) {
throw new NodeError('Unable to get Electrum hidden service url');
}
};
async function getBitcoinP2PHiddenServiceUrl() {
try {
const url = await diskLogic.readBitcoinP2PHiddenService();
@ -64,7 +73,7 @@ async function getAvailableUpdate() {
// satisfies the 'requires' condition of the new version
isCompatibleWithCurrentVersion = semverSatisfies(currentVersion, requiresVersionRange);
// Calculate the minimum required version
// Calculate the minimum required version
let minimumVersionRequired = `v${semverMinVersion(requiresVersionRange)}`;
// If the minimum required version is what we just checked for, exit
@ -234,6 +243,7 @@ async function requestReboot() {
module.exports = {
getInfo,
getHiddenServiceUrl,
getElectrumHiddenServiceUrl,
getBitcoinP2PHiddenServiceUrl,
getAvailableUpdate,
getUpdateStatus,

6
routes/v1/system.js

@ -20,6 +20,12 @@ router.get('/dashboard-hidden-service', auth.jwt, safeHandler(async (req, res) =
return res.status(constants.STATUS_CODES.OK).json(url);
}));
router.get('/electrum-hidden-service', auth.jwt, safeHandler(async (req, res) => {
const url = await systemLogic.getElectrumHiddenServiceUrl();
return res.status(constants.STATUS_CODES.OK).json(url);
}));
router.get('/bitcoin-p2p-hidden-service', auth.jwt, safeHandler(async (req, res) => {
const url = await systemLogic.getBitcoinP2PHiddenServiceUrl();

2
utils/const.js

@ -11,6 +11,8 @@ module.exports = {
DOCKER_COMPOSE_DIRECTORY: process.env.DOCKER_COMPOSE_DIRECTORY || '/docker-compose',
UMBREL_SEED_FILE: process.env.UMBREL_SEED_FILE || '/db/umbrel-seed/seed',
UMBREL_DASHBOARD_HIDDEN_SERVICE_FILE: process.env.UMBREL_DASHBOARD_HIDDEN_SERVICE_FILE || '/var/lib/tor/web/hostname',
ELECTRUM_HIDDEN_SERVICE_FILE: process.env.ELECTRUM_HIDDEN_SERVICE_FILE || '/var/lib/tor/electrum/hostname',
ELECTRUM_PORT: process.env.ELECTRUM_PORT || 50001,
BITCOIN_P2P_HIDDEN_SERVICE_FILE: process.env.BITCOIN_P2P_HIDDEN_SERVICE_FILE || '/var/lib/tor/bitcoin-p2p/hostname',
BITCOIN_P2P_PORT: process.env.BITCOIN_P2P_PORT || 8333,
LND_REST_HIDDEN_SERVICE_FILE: process.env.LND_REST_HIDDEN_SERVICE_FILE || '/var/lib/tor/lnd-rest/hostname',

Loading…
Cancel
Save