Merge branch 'master' into nymkappa/feature/automatic-block-reindexing
This commit is contained in:
commit
7ba7440bb6
46
.github/workflows/ci.yml
vendored
46
.github/workflows/ci.yml
vendored
@ -3,90 +3,92 @@ name: CI Pipeline for the Backend and Frontend
|
|||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
types: [opened, review_requested, synchronize]
|
types: [opened, review_requested, synchronize]
|
||||||
env:
|
|
||||||
NODE_VERSION: 16.15.0
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
backend:
|
backend:
|
||||||
if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')"
|
if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')"
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
flavor: ['dev', 'prod']
|
node: ["16.16.0", "18.5.0"]
|
||||||
runs-on: 'ubuntu-latest'
|
flavor: ["dev", "prod"]
|
||||||
|
fail-fast: false
|
||||||
|
runs-on: "ubuntu-latest"
|
||||||
|
|
||||||
name: Backend (${{ matrix.flavor }})
|
name: Backend (${{ matrix.flavor }}) - node ${{ matrix.node }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
path: ${{ matrix.flavor }}
|
path: ${{ matrix.node }}/${{ matrix.flavor }}
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: ${{ env.NODE_VERSION }}
|
node-version: ${{ matrix.node }}
|
||||||
registry-url: 'https://registry.npmjs.org'
|
registry-url: "https://registry.npmjs.org"
|
||||||
|
|
||||||
- name: Install
|
- name: Install
|
||||||
if: ${{ matrix.flavor == 'dev'}}
|
if: ${{ matrix.flavor == 'dev'}}
|
||||||
run: npm ci
|
run: npm ci
|
||||||
working-directory: ${{ matrix.flavor }}/backend
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/backend
|
||||||
|
|
||||||
- name: Install (Prod dependencies only)
|
- name: Install (Prod dependencies only)
|
||||||
if: ${{ matrix.flavor == 'prod'}}
|
if: ${{ matrix.flavor == 'prod'}}
|
||||||
run: npm ci --omit=dev --omit=optional
|
run: npm ci --omit=dev --omit=optional
|
||||||
working-directory: ${{ matrix.flavor }}/backend
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/backend
|
||||||
|
|
||||||
- name: Lint
|
- name: Lint
|
||||||
if: ${{ matrix.flavor == 'dev'}}
|
if: ${{ matrix.flavor == 'dev'}}
|
||||||
run: npm run lint
|
run: npm run lint
|
||||||
working-directory: ${{ matrix.flavor }}/backend
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/backend
|
||||||
|
|
||||||
# - name: Test
|
# - name: Test
|
||||||
# run: npm run test
|
# run: npm run test
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: npm run build
|
run: npm run build
|
||||||
working-directory: ${{ matrix.flavor }}/backend
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/backend
|
||||||
|
|
||||||
frontend:
|
frontend:
|
||||||
if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')"
|
if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')"
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
flavor: ['dev', 'prod']
|
node: ["16.15.0", "18.5.0"]
|
||||||
runs-on: 'ubuntu-latest'
|
flavor: ["dev", "prod"]
|
||||||
|
fail-fast: false
|
||||||
|
runs-on: "ubuntu-latest"
|
||||||
|
|
||||||
name: Frontend (${{ matrix.flavor }})
|
name: Frontend (${{ matrix.flavor }}) - node ${{ matrix.node }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
path: ${{ matrix.flavor }}
|
path: ${{ matrix.node }}/${{ matrix.flavor }}
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: ${{ env.NODE_VERSION }}
|
node-version: ${{ matrix.node }}
|
||||||
registry-url: 'https://registry.npmjs.org'
|
registry-url: "https://registry.npmjs.org"
|
||||||
|
|
||||||
- name: Install (Prod dependencies only)
|
- name: Install (Prod dependencies only)
|
||||||
run: npm ci --omit=dev --omit=optional
|
run: npm ci --omit=dev --omit=optional
|
||||||
if: ${{ matrix.flavor == 'prod'}}
|
if: ${{ matrix.flavor == 'prod'}}
|
||||||
working-directory: ${{ matrix.flavor }}/frontend
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/frontend
|
||||||
|
|
||||||
- name: Install
|
- name: Install
|
||||||
if: ${{ matrix.flavor == 'dev'}}
|
if: ${{ matrix.flavor == 'dev'}}
|
||||||
run: npm ci
|
run: npm ci
|
||||||
working-directory: ${{ matrix.flavor }}/frontend
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/frontend
|
||||||
|
|
||||||
- name: Lint
|
- name: Lint
|
||||||
if: ${{ matrix.flavor == 'dev'}}
|
if: ${{ matrix.flavor == 'dev'}}
|
||||||
run: npm run lint
|
run: npm run lint
|
||||||
working-directory: ${{ matrix.flavor }}/frontend
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/frontend
|
||||||
|
|
||||||
# - name: Test
|
# - name: Test
|
||||||
# run: npm run test
|
# run: npm run test
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: npm run build
|
run: npm run build
|
||||||
working-directory: ${{ matrix.flavor }}/frontend
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/frontend
|
||||||
|
@ -168,7 +168,7 @@ class Blocks {
|
|||||||
blockExtended.extras.avgFeeRate = stats.avgfeerate;
|
blockExtended.extras.avgFeeRate = stats.avgfeerate;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (['mainnet', 'testnet', 'signet', 'regtest'].includes(config.MEMPOOL.NETWORK)) {
|
if (['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK)) {
|
||||||
let pool: PoolTag;
|
let pool: PoolTag;
|
||||||
if (blockExtended.extras?.coinbaseTx !== undefined) {
|
if (blockExtended.extras?.coinbaseTx !== undefined) {
|
||||||
pool = await this.$findBlockMiner(blockExtended.extras?.coinbaseTx);
|
pool = await this.$findBlockMiner(blockExtended.extras?.coinbaseTx);
|
||||||
@ -405,7 +405,7 @@ class Blocks {
|
|||||||
|
|
||||||
if (blockHeightTip >= 2016) {
|
if (blockHeightTip >= 2016) {
|
||||||
const previousPeriodBlockHash = await bitcoinApi.$getBlockHash(blockHeightTip - heightDiff - 2016);
|
const previousPeriodBlockHash = await bitcoinApi.$getBlockHash(blockHeightTip - heightDiff - 2016);
|
||||||
const previousPeriodBlock = await bitcoinApi.$getBlock(previousPeriodBlockHash);
|
const previousPeriodBlock = await bitcoinClient.getBlock(previousPeriodBlockHash)
|
||||||
this.previousDifficultyRetarget = (block.difficulty - previousPeriodBlock.difficulty) / previousPeriodBlock.difficulty * 100;
|
this.previousDifficultyRetarget = (block.difficulty - previousPeriodBlock.difficulty) / previousPeriodBlock.difficulty * 100;
|
||||||
logger.debug(`Initial difficulty adjustment data set.`);
|
logger.debug(`Initial difficulty adjustment data set.`);
|
||||||
}
|
}
|
||||||
@ -527,13 +527,15 @@ class Blocks {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const block = await bitcoinApi.$getBlock(hash);
|
let block = await bitcoinClient.getBlock(hash);
|
||||||
|
|
||||||
// Not Bitcoin network, return the block as it
|
// Not Bitcoin network, return the block as it
|
||||||
if (['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK) === false) {
|
if (['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK) === false) {
|
||||||
return block;
|
return block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
block = prepareBlock(block);
|
||||||
|
|
||||||
// Bitcoin network, add our custom data on top
|
// Bitcoin network, add our custom data on top
|
||||||
const transactions = await this.$getTransactionsExtended(hash, block.height, true);
|
const transactions = await this.$getTransactionsExtended(hash, block.height, true);
|
||||||
const blockExtended = await this.$getBlockExtended(block, transactions);
|
const blockExtended = await this.$getBlockExtended(block, transactions);
|
||||||
@ -577,7 +579,6 @@ class Blocks {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async $getBlocks(fromHeight?: number, limit: number = 15): Promise<BlockExtended[]> {
|
public async $getBlocks(fromHeight?: number, limit: number = 15): Promise<BlockExtended[]> {
|
||||||
try {
|
|
||||||
let currentHeight = fromHeight !== undefined ? fromHeight : this.getCurrentBlockHeight();
|
let currentHeight = fromHeight !== undefined ? fromHeight : this.getCurrentBlockHeight();
|
||||||
const returnBlocks: BlockExtended[] = [];
|
const returnBlocks: BlockExtended[] = [];
|
||||||
|
|
||||||
@ -607,7 +608,7 @@ class Blocks {
|
|||||||
block = await this.$indexBlock(currentHeight);
|
block = await this.$indexBlock(currentHeight);
|
||||||
returnBlocks.push(block);
|
returnBlocks.push(block);
|
||||||
} else if (nextHash != null) {
|
} else if (nextHash != null) {
|
||||||
block = prepareBlock(await bitcoinApi.$getBlock(nextHash));
|
block = prepareBlock(await bitcoinClient.getBlock(nextHash));
|
||||||
nextHash = block.previousblockhash;
|
nextHash = block.previousblockhash;
|
||||||
returnBlocks.push(block);
|
returnBlocks.push(block);
|
||||||
}
|
}
|
||||||
@ -615,9 +616,6 @@ class Blocks {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return returnBlocks;
|
return returnBlocks;
|
||||||
} catch (e) {
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public getLastDifficultyAdjustmentTime(): number {
|
public getLastDifficultyAdjustmentTime(): number {
|
||||||
|
@ -3,14 +3,14 @@ import { BlockExtended } from '../mempool.interfaces';
|
|||||||
export function prepareBlock(block: any): BlockExtended {
|
export function prepareBlock(block: any): BlockExtended {
|
||||||
return <BlockExtended>{
|
return <BlockExtended>{
|
||||||
id: block.id ?? block.hash, // hash for indexed block
|
id: block.id ?? block.hash, // hash for indexed block
|
||||||
timestamp: block.timestamp ?? block.blockTimestamp, // blockTimestamp for indexed block
|
timestamp: block.timestamp ?? block.time ?? block.blockTimestamp, // blockTimestamp for indexed block
|
||||||
height: block.height,
|
height: block.height,
|
||||||
version: block.version,
|
version: block.version,
|
||||||
bits: block.bits,
|
bits: (typeof block.bits === 'string' ? parseInt(block.bits, 16): block.bits),
|
||||||
nonce: block.nonce,
|
nonce: block.nonce,
|
||||||
difficulty: block.difficulty,
|
difficulty: block.difficulty,
|
||||||
merkle_root: block.merkle_root,
|
merkle_root: block.merkle_root ?? block.merkleroot,
|
||||||
tx_count: block.tx_count,
|
tx_count: block.tx_count ?? block.nTx,
|
||||||
size: block.size,
|
size: block.size,
|
||||||
weight: block.weight,
|
weight: block.weight,
|
||||||
previousblockhash: block.previousblockhash,
|
previousblockhash: block.previousblockhash,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
FROM node:16.15.0-buster-slim AS builder
|
FROM node:16.16.0-buster-slim AS builder
|
||||||
|
|
||||||
ARG commitHash
|
ARG commitHash
|
||||||
ENV DOCKER_COMMIT_HASH=${commitHash}
|
ENV DOCKER_COMMIT_HASH=${commitHash}
|
||||||
@ -11,7 +11,7 @@ RUN apt-get install -y build-essential python3 pkg-config
|
|||||||
RUN npm install --omit=dev --omit=optional
|
RUN npm install --omit=dev --omit=optional
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
FROM node:16.15.0-buster-slim
|
FROM node:16.16.0-buster-slim
|
||||||
|
|
||||||
WORKDIR /backend
|
WORKDIR /backend
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
FROM node:16.15.0-buster-slim AS builder
|
FROM node:16.16.0-buster-slim AS builder
|
||||||
|
|
||||||
ARG commitHash
|
ARG commitHash
|
||||||
ENV DOCKER_COMMIT_HASH=${commitHash}
|
ENV DOCKER_COMMIT_HASH=${commitHash}
|
||||||
|
29
frontend/package-lock.json
generated
29
frontend/package-lock.json
generated
@ -11041,6 +11041,12 @@
|
|||||||
"@sideway/pinpoint": "^2.0.0"
|
"@sideway/pinpoint": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/jquery": {
|
||||||
|
"version": "3.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
|
||||||
|
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==",
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"node_modules/js-tokens": {
|
"node_modules/js-tokens": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||||
@ -13791,6 +13797,17 @@
|
|||||||
"node": ">=10.13.0"
|
"node": ">=10.13.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/popper.js": {
|
||||||
|
"version": "1.16.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
|
||||||
|
"integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==",
|
||||||
|
"deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1",
|
||||||
|
"peer": true,
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/popperjs"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/portfinder": {
|
"node_modules/portfinder": {
|
||||||
"version": "1.0.28",
|
"version": "1.0.28",
|
||||||
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
|
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
|
||||||
@ -26069,6 +26086,12 @@
|
|||||||
"@sideway/pinpoint": "^2.0.0"
|
"@sideway/pinpoint": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"jquery": {
|
||||||
|
"version": "3.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
|
||||||
|
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==",
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"js-tokens": {
|
"js-tokens": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||||
@ -28165,6 +28188,12 @@
|
|||||||
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
|
||||||
"integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="
|
"integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="
|
||||||
},
|
},
|
||||||
|
"popper.js": {
|
||||||
|
"version": "1.16.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
|
||||||
|
"integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==",
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"portfinder": {
|
"portfinder": {
|
||||||
"version": "1.0.28",
|
"version": "1.0.28",
|
||||||
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
|
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="td-width" i18n="transaction.value|Transaction value">Value</td>
|
<td class="td-width" i18n="dashboard.latest-transactions.amount">Amount</td>
|
||||||
<td><app-amount [satoshis]="value"></app-amount></td>
|
<td><app-amount [satoshis]="value"></app-amount></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -952,6 +952,10 @@
|
|||||||
<context context-type="sourcefile">src/app/bisq/bisq-transactions/bisq-transactions.component.html</context>
|
<context context-type="sourcefile">src/app/bisq/bisq-transactions/bisq-transactions.component.html</context>
|
||||||
<context context-type="linenumber">20,21</context>
|
<context context-type="linenumber">20,21</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
|
||||||
|
<context context-type="linenumber">18</context>
|
||||||
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
||||||
<context context-type="linenumber">124,125</context>
|
<context context-type="linenumber">124,125</context>
|
||||||
@ -1363,7 +1367,7 @@
|
|||||||
<target>Echange</target>
|
<target>Echange</target>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts</context>
|
<context context-type="sourcefile">src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts</context>
|
||||||
<context context-type="linenumber">90</context>
|
<context context-type="linenumber">99</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="bisq-graph-volume" datatype="html">
|
<trans-unit id="bisq-graph-volume" datatype="html">
|
||||||
@ -1371,7 +1375,7 @@
|
|||||||
<target>Volume</target>
|
<target>Volume</target>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts</context>
|
<context context-type="sourcefile">src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts</context>
|
||||||
<context context-type="linenumber">91</context>
|
<context context-type="linenumber">100</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4b137ec8bf73a47063740b75c0c40d5fd3c48015" datatype="html">
|
<trans-unit id="4b137ec8bf73a47063740b75c0c40d5fd3c48015" datatype="html">
|
||||||
@ -2076,16 +2080,6 @@
|
|||||||
<context context-type="linenumber">264,266</context>
|
<context context-type="linenumber">264,266</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="bc4c61d3713989e3c8c6610fca3ea1ca1cb19edb" datatype="html">
|
|
||||||
<source>Value</source>
|
|
||||||
<target>Valeur</target>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
|
|
||||||
<context context-type="linenumber">18</context>
|
|
||||||
</context-group>
|
|
||||||
<note priority="1" from="description">Transaction value</note>
|
|
||||||
<note priority="1" from="meaning">transaction.value</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="cb1b52c13b95fa29ea4044f2bbe0ac623b890c80" datatype="html">
|
<trans-unit id="cb1b52c13b95fa29ea4044f2bbe0ac623b890c80" datatype="html">
|
||||||
<source>Fee</source>
|
<source>Fee</source>
|
||||||
<target>Frais</target>
|
<target>Frais</target>
|
||||||
|
@ -952,6 +952,10 @@
|
|||||||
<context context-type="sourcefile">src/app/bisq/bisq-transactions/bisq-transactions.component.html</context>
|
<context context-type="sourcefile">src/app/bisq/bisq-transactions/bisq-transactions.component.html</context>
|
||||||
<context context-type="linenumber">20,21</context>
|
<context context-type="linenumber">20,21</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
|
||||||
|
<context context-type="linenumber">18</context>
|
||||||
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
||||||
<context context-type="linenumber">124,125</context>
|
<context context-type="linenumber">124,125</context>
|
||||||
@ -1363,7 +1367,7 @@
|
|||||||
<target>Handler</target>
|
<target>Handler</target>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts</context>
|
<context context-type="sourcefile">src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts</context>
|
||||||
<context context-type="linenumber">90</context>
|
<context context-type="linenumber">99</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="bisq-graph-volume" datatype="html">
|
<trans-unit id="bisq-graph-volume" datatype="html">
|
||||||
@ -1371,7 +1375,7 @@
|
|||||||
<target>Volum</target>
|
<target>Volum</target>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts</context>
|
<context context-type="sourcefile">src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts</context>
|
||||||
<context context-type="linenumber">91</context>
|
<context context-type="linenumber">100</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4b137ec8bf73a47063740b75c0c40d5fd3c48015" datatype="html">
|
<trans-unit id="4b137ec8bf73a47063740b75c0c40d5fd3c48015" datatype="html">
|
||||||
@ -2076,16 +2080,6 @@
|
|||||||
<context context-type="linenumber">264,266</context>
|
<context context-type="linenumber">264,266</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="bc4c61d3713989e3c8c6610fca3ea1ca1cb19edb" datatype="html">
|
|
||||||
<source>Value</source>
|
|
||||||
<target>Verdi</target>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
|
|
||||||
<context context-type="linenumber">18</context>
|
|
||||||
</context-group>
|
|
||||||
<note priority="1" from="description">Transaction value</note>
|
|
||||||
<note priority="1" from="meaning">transaction.value</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="cb1b52c13b95fa29ea4044f2bbe0ac623b890c80" datatype="html">
|
<trans-unit id="cb1b52c13b95fa29ea4044f2bbe0ac623b890c80" datatype="html">
|
||||||
<source>Fee</source>
|
<source>Fee</source>
|
||||||
<target>Avgift</target>
|
<target>Avgift</target>
|
||||||
|
@ -878,6 +878,10 @@
|
|||||||
<context context-type="sourcefile">src/app/bisq/bisq-transactions/bisq-transactions.component.html</context>
|
<context context-type="sourcefile">src/app/bisq/bisq-transactions/bisq-transactions.component.html</context>
|
||||||
<context context-type="linenumber">20,21</context>
|
<context context-type="linenumber">20,21</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
|
||||||
|
<context context-type="linenumber">18</context>
|
||||||
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
||||||
<context context-type="linenumber">124,125</context>
|
<context context-type="linenumber">124,125</context>
|
||||||
@ -1263,14 +1267,14 @@
|
|||||||
<source>Trades</source>
|
<source>Trades</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts</context>
|
<context context-type="sourcefile">src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts</context>
|
||||||
<context context-type="linenumber">90</context>
|
<context context-type="linenumber">99</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="bisq-graph-volume" datatype="html">
|
<trans-unit id="bisq-graph-volume" datatype="html">
|
||||||
<source>Volume</source>
|
<source>Volume</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts</context>
|
<context context-type="sourcefile">src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts</context>
|
||||||
<context context-type="linenumber">91</context>
|
<context context-type="linenumber">100</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4b137ec8bf73a47063740b75c0c40d5fd3c48015" datatype="html">
|
<trans-unit id="4b137ec8bf73a47063740b75c0c40d5fd3c48015" datatype="html">
|
||||||
@ -1918,15 +1922,6 @@
|
|||||||
<context context-type="linenumber">264,266</context>
|
<context context-type="linenumber">264,266</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="bc4c61d3713989e3c8c6610fca3ea1ca1cb19edb" datatype="html">
|
|
||||||
<source>Value</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
|
|
||||||
<context context-type="linenumber">18</context>
|
|
||||||
</context-group>
|
|
||||||
<note priority="1" from="description">Transaction value</note>
|
|
||||||
<note priority="1" from="meaning">transaction.value</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="cb1b52c13b95fa29ea4044f2bbe0ac623b890c80" datatype="html">
|
<trans-unit id="cb1b52c13b95fa29ea4044f2bbe0ac623b890c80" datatype="html">
|
||||||
<source>Fee</source>
|
<source>Fee</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
@ -82,11 +82,11 @@ pkg install -y zsh sudo git screen curl wget neovim rsync nginx openssl openssh-
|
|||||||
|
|
||||||
### Node.js + npm
|
### Node.js + npm
|
||||||
|
|
||||||
Build Node.js v16.15 and npm v8 from source using `nvm`:
|
Build Node.js v16.16.0 and npm v8 from source using `nvm`:
|
||||||
```
|
```
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | zsh
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | zsh
|
||||||
source $HOME/.zshrc
|
source $HOME/.zshrc
|
||||||
nvm install v16.15.0
|
nvm install v16.16.0 --shared-zlib
|
||||||
nvm alias default node
|
nvm alias default node
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -197,6 +197,7 @@ case $OS in
|
|||||||
TOR_USER=debian-tor
|
TOR_USER=debian-tor
|
||||||
TOR_GROUP=debian-tor
|
TOR_GROUP=debian-tor
|
||||||
CERTBOT_PKG=python3-certbot-nginx
|
CERTBOT_PKG=python3-certbot-nginx
|
||||||
|
NGINX_ETC_FOLDER=/etc/nginx
|
||||||
NGINX_CONFIGURATION=/etc/nginx/nginx.conf
|
NGINX_CONFIGURATION=/etc/nginx/nginx.conf
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@ -646,193 +647,193 @@ ext4CreateDir()
|
|||||||
|
|
||||||
# does bitcoin exist?
|
# does bitcoin exist?
|
||||||
|
|
||||||
##########
|
###########
|
||||||
# dialog #
|
## dialog #
|
||||||
##########
|
###########
|
||||||
|
#
|
||||||
: ${DIALOG=dialog}
|
#: ${DIALOG=dialog}
|
||||||
|
#
|
||||||
: ${DIALOG_OK=0}
|
#: ${DIALOG_OK=0}
|
||||||
: ${DIALOG_CANCEL=1}
|
#: ${DIALOG_CANCEL=1}
|
||||||
: ${DIALOG_HELP=2}
|
#: ${DIALOG_HELP=2}
|
||||||
: ${DIALOG_EXTRA=3}
|
#: ${DIALOG_EXTRA=3}
|
||||||
: ${DIALOG_ITEM_HELP=4}
|
#: ${DIALOG_ITEM_HELP=4}
|
||||||
: ${DIALOG_ESC=255}
|
#: ${DIALOG_ESC=255}
|
||||||
|
#
|
||||||
: ${SIG_OFFNE=0}
|
#: ${SIG_OFFNE=0}
|
||||||
: ${SIG_HUP=1}
|
#: ${SIG_HUP=1}
|
||||||
: ${SIG_INT=2}
|
#: ${SIG_INT=2}
|
||||||
: ${SIG_QUIT=3}
|
#: ${SIG_QUIT=3}
|
||||||
: ${SIG_KILL=9}
|
#: ${SIG_KILL=9}
|
||||||
: ${SIG_TERM=15}
|
#: ${SIG_TERM=15}
|
||||||
|
#
|
||||||
input=`tempfile 2>/dev/null` || input=/tmp/input$$
|
#input=`tempfile 2>/dev/null` || input=/tmp/input$$
|
||||||
output=`tempfile 2>/dev/null` || output=/tmp/test$$
|
#output=`tempfile 2>/dev/null` || output=/tmp/test$$
|
||||||
trap "rm -f $input $output" $SIG_OFFNE $SIG_HUP $SIG_INT $SIG_TRAP $SIG_TERM
|
#trap "rm -f $input $output" $SIG_OFFNE $SIG_HUP $SIG_INT $SIG_TRAP $SIG_TERM
|
||||||
|
#
|
||||||
DIALOG_ERROR=254
|
#DIALOG_ERROR=254
|
||||||
export DIALOG_ERROR
|
#export DIALOG_ERROR
|
||||||
|
#
|
||||||
backtitle="Mempool Fullnode Installer"
|
#backtitle="Mempool Fullnode Installer"
|
||||||
title="Mempool Fullnode Installer"
|
#title="Mempool Fullnode Installer"
|
||||||
returncode=0
|
#returncode=0
|
||||||
|
#
|
||||||
#################
|
##################
|
||||||
# dialog part 1 #
|
## dialog part 1 #
|
||||||
#################
|
##################
|
||||||
|
#
|
||||||
$CUT >$input <<-EOF
|
#$CUT >$input <<-EOF
|
||||||
Tor:Enable Tor v3 HS Onion:ON
|
#Tor:Enable Tor v3 HS Onion:ON
|
||||||
Certbot:Enable HTTPS using Certbot:ON
|
#Certbot:Enable HTTPS using Certbot:ON
|
||||||
Mainnet:Enable Bitcoin Mainnet:ON
|
#Mainnet:Enable Bitcoin Mainnet:ON
|
||||||
Mainnet-Minfee:Enable Bitcoin Mainnet Minfee:ON
|
#Mainnet-Minfee:Enable Bitcoin Mainnet Minfee:ON
|
||||||
Testnet:Enable Bitcoin Testnet:ON
|
#Testnet:Enable Bitcoin Testnet:ON
|
||||||
Liquid:Enable Elements Liquid:ON
|
#Liquid:Enable Elements Liquid:ON
|
||||||
Bisq:Enable Bisq:ON
|
#Bisq:Enable Bisq:ON
|
||||||
Lightmode:Enable Electrs Lightmode to save disk space:ON
|
#Lightmode:Enable Electrs Lightmode to save disk space:ON
|
||||||
Smalldisk:Disable Electrs Compaction to save disk space:ON
|
#Smalldisk:Disable Electrs Compaction to save disk space:ON
|
||||||
Firewall:Enable Firewall:ON
|
#Firewall:Enable Firewall:ON
|
||||||
EOF
|
#EOF
|
||||||
|
#
|
||||||
cat $input | sed -e 's/^/"/' -e 's/:/" "/g' -e 's/$/"/' >$output
|
#cat $input | sed -e 's/^/"/' -e 's/:/" "/g' -e 's/$/"/' >$output
|
||||||
cat $output >$input
|
#cat $output >$input
|
||||||
|
#
|
||||||
$DIALOG --backtitle "${backtitle}" \
|
#$DIALOG --backtitle "${backtitle}" \
|
||||||
--title "${title}" "$@" \
|
# --title "${title}" "$@" \
|
||||||
--checklist "Toggle the features below to configure your fullnode:\n" \
|
# --checklist "Toggle the features below to configure your fullnode:\n" \
|
||||||
20 80 10 \
|
# 20 80 10 \
|
||||||
--file $input 2> $output
|
# --file $input 2> $output
|
||||||
|
#
|
||||||
retval=$?
|
#retval=$?
|
||||||
|
#
|
||||||
tempfile=$output
|
#tempfile=$output
|
||||||
if [ $retval != $DIALOG_OK ];then
|
#if [ $retval != $DIALOG_OK ];then
|
||||||
echo "Installation aborted."
|
# echo "Installation aborted."
|
||||||
exit 1
|
# exit 1
|
||||||
fi
|
#fi
|
||||||
|
#
|
||||||
if grep Tor $tempfile >/dev/null 2>&1;then
|
#if grep Tor $tempfile >/dev/null 2>&1;then
|
||||||
TOR_INSTALL=ON
|
# TOR_INSTALL=ON
|
||||||
else
|
#else
|
||||||
TOR_INSTALL=OFF
|
# TOR_INSTALL=OFF
|
||||||
fi
|
#fi
|
||||||
|
#
|
||||||
if grep Certbot $tempfile >/dev/null 2>&1;then
|
#if grep Certbot $tempfile >/dev/null 2>&1;then
|
||||||
CERTBOT_INSTALL=ON
|
# CERTBOT_INSTALL=ON
|
||||||
else
|
#else
|
||||||
CERTBOT_INSTALL=OFF
|
# CERTBOT_INSTALL=OFF
|
||||||
fi
|
#fi
|
||||||
|
#
|
||||||
if grep Mainnet $tempfile >/dev/null 2>&1;then
|
#if grep Mainnet $tempfile >/dev/null 2>&1;then
|
||||||
BITCOIN_MAINNET_ENABLE=ON
|
# BITCOIN_MAINNET_ENABLE=ON
|
||||||
else
|
#else
|
||||||
BITCOIN_MAINNET_ENABLE=OFF
|
# BITCOIN_MAINNET_ENABLE=OFF
|
||||||
fi
|
#fi
|
||||||
|
#
|
||||||
if grep Mainnet-Minfee $tempfile >/dev/null 2>&1;then
|
#if grep Mainnet-Minfee $tempfile >/dev/null 2>&1;then
|
||||||
BITCOIN_MAINNET_MINFEE_ENABLE=ON
|
# BITCOIN_MAINNET_MINFEE_ENABLE=ON
|
||||||
else
|
#else
|
||||||
BITCOIN_MAINNET_MINFEE_ENABLE=OFF
|
# BITCOIN_MAINNET_MINFEE_ENABLE=OFF
|
||||||
fi
|
#fi
|
||||||
|
#
|
||||||
if grep Testnet $tempfile >/dev/null 2>&1;then
|
#if grep Testnet $tempfile >/dev/null 2>&1;then
|
||||||
BITCOIN_TESTNET_ENABLE=ON
|
# BITCOIN_TESTNET_ENABLE=ON
|
||||||
else
|
#else
|
||||||
BITCOIN_TESTNET_ENABLE=OFF
|
# BITCOIN_TESTNET_ENABLE=OFF
|
||||||
fi
|
#fi
|
||||||
|
#
|
||||||
if grep Liquid $tempfile >/dev/null 2>&1;then
|
#if grep Liquid $tempfile >/dev/null 2>&1;then
|
||||||
ELEMENTS_INSTALL=ON
|
# ELEMENTS_INSTALL=ON
|
||||||
ELEMENTS_LIQUID_ENABLE=ON
|
# ELEMENTS_LIQUID_ENABLE=ON
|
||||||
else
|
#else
|
||||||
ELEMENTS_INSTALL=OFF
|
# ELEMENTS_INSTALL=OFF
|
||||||
ELEMENTS_LIQUID_ENABLE=OFF
|
# ELEMENTS_LIQUID_ENABLE=OFF
|
||||||
fi
|
#fi
|
||||||
|
#
|
||||||
if grep Bisq $tempfile >/dev/null 2>&1;then
|
#if grep Bisq $tempfile >/dev/null 2>&1;then
|
||||||
BISQ_INSTALL=ON
|
# BISQ_INSTALL=ON
|
||||||
BISQ_MAINNET_ENABLE=ON
|
# BISQ_MAINNET_ENABLE=ON
|
||||||
else
|
#else
|
||||||
BISQ_INSTALL=OFF
|
# BISQ_INSTALL=OFF
|
||||||
BISQ_MAINNET_ENABLE=OFF
|
# BISQ_MAINNET_ENABLE=OFF
|
||||||
fi
|
#fi
|
||||||
|
#
|
||||||
if grep Lightmode $tempfile >/dev/null 2>&1;then
|
#if grep Lightmode $tempfile >/dev/null 2>&1;then
|
||||||
BITCOIN_ELECTRS_LIGHT_MODE=ON
|
# BITCOIN_ELECTRS_LIGHT_MODE=ON
|
||||||
else
|
#else
|
||||||
BITCOIN_ELECTRS_LIGHT_MODE=OFF
|
# BITCOIN_ELECTRS_LIGHT_MODE=OFF
|
||||||
fi
|
#fi
|
||||||
|
#
|
||||||
if grep Smalldisk $tempfile >/dev/null 2>&1;then
|
#if grep Smalldisk $tempfile >/dev/null 2>&1;then
|
||||||
BITCOIN_ELECTRS_LIGHT_MODE=ON
|
# BITCOIN_ELECTRS_LIGHT_MODE=ON
|
||||||
else
|
#else
|
||||||
BITCOIN_ELECTRS_LIGHT_MODE=OFF
|
# BITCOIN_ELECTRS_LIGHT_MODE=OFF
|
||||||
fi
|
#fi
|
||||||
|
#
|
||||||
#################
|
##################
|
||||||
# dialog part 2 #
|
## dialog part 2 #
|
||||||
#################
|
##################
|
||||||
|
#
|
||||||
$DIALOG --cr-wrap \
|
#$DIALOG --cr-wrap \
|
||||||
--title "INPUT BOX" --clear \
|
# --title "INPUT BOX" --clear \
|
||||||
--inputbox "$@" \
|
# --inputbox "$@" \
|
||||||
"Enter the FQDN hostname for obtaining an SSL certificate using Certbot:" 0 0 "${HOSTNAME}" 2> $tempfile
|
#"Enter the FQDN hostname for obtaining an SSL certificate using Certbot:" 0 0 "${HOSTNAME}" 2> $tempfile
|
||||||
HOSTNAME=$(cat $tempfile)
|
#HOSTNAME=$(cat $tempfile)
|
||||||
|
#
|
||||||
#################
|
##################
|
||||||
# dialog part 3 #
|
## dialog part 3 #
|
||||||
#################
|
##################
|
||||||
|
#
|
||||||
# --form text height width formheight
|
## --form text height width formheight
|
||||||
# [ label y x item y x flen ilen ]
|
## [ label y x item y x flen ilen ]
|
||||||
#"BISQ_BLOCKNOTIFY_HOST" 0 1 "${BISQ_BLOCKNOTIFY_HOST}" 0 30 0 0 \
|
# #"BISQ_BLOCKNOTIFY_HOST" 0 1 "${BISQ_BLOCKNOTIFY_HOST}" 0 30 0 0 \
|
||||||
|
#
|
||||||
$DIALOG --ok-label "Submit" \
|
#$DIALOG --ok-label "Submit" \
|
||||||
--backtitle "$backtitle" "$@" \
|
# --backtitle "$backtitle" "$@" \
|
||||||
--form "Your fullnode will be installed as follows:" 0 0 0 \
|
# --form "Your fullnode will be installed as follows:" 0 0 0 \
|
||||||
"BISQ_LATEST_RELEASE" 1 1 "${BISQ_LATEST_RELEASE}" 1 35 35 0 \
|
# "BISQ_LATEST_RELEASE" 1 1 "${BISQ_LATEST_RELEASE}" 1 35 35 0 \
|
||||||
"BISQ_REPO_BRANCH" 2 1 "${BISQ_REPO_BRANCH}" 2 35 35 0 \
|
# "BISQ_REPO_BRANCH" 2 1 "${BISQ_REPO_BRANCH}" 2 35 35 0 \
|
||||||
"BISQ_REPO_NAME" 3 1 "${BISQ_REPO_NAME}" 3 35 35 0 \
|
# "BISQ_REPO_NAME" 3 1 "${BISQ_REPO_NAME}" 3 35 35 0 \
|
||||||
"BISQ_REPO_URL" 4 1 "${BISQ_REPO_URL}" 4 35 35 0 \
|
# "BISQ_REPO_URL" 4 1 "${BISQ_REPO_URL}" 4 35 35 0 \
|
||||||
"BITCOIN_ELECTRS_LATEST_RELEASE" 5 1 "${BITCOIN_ELECTRS_LATEST_RELEASE}" 5 35 35 0 \
|
# "BITCOIN_ELECTRS_LATEST_RELEASE" 5 1 "${BITCOIN_ELECTRS_LATEST_RELEASE}" 5 35 35 0 \
|
||||||
"BITCOIN_ELECTRS_LIGHT_MODE" 6 1 "${BITCOIN_ELECTRS_LIGHT_MODE}" 6 35 35 0 \
|
# "BITCOIN_ELECTRS_LIGHT_MODE" 6 1 "${BITCOIN_ELECTRS_LIGHT_MODE}" 6 35 35 0 \
|
||||||
"BITCOIN_ELECTRS_REPO_BRANCH" 7 1 "${BITCOIN_ELECTRS_REPO_BRANCH}" 7 35 35 0 \
|
# "BITCOIN_ELECTRS_REPO_BRANCH" 7 1 "${BITCOIN_ELECTRS_REPO_BRANCH}" 7 35 35 0 \
|
||||||
"BITCOIN_ELECTRS_REPO_NAME" 8 1 "${BITCOIN_ELECTRS_REPO_NAME}" 8 35 35 0 \
|
# "BITCOIN_ELECTRS_REPO_NAME" 8 1 "${BITCOIN_ELECTRS_REPO_NAME}" 8 35 35 0 \
|
||||||
"BITCOIN_ELECTRS_REPO_URL" 9 1 "${BITCOIN_ELECTRS_REPO_URL}" 9 35 35 0 \
|
# "BITCOIN_ELECTRS_REPO_URL" 9 1 "${BITCOIN_ELECTRS_REPO_URL}" 9 35 35 0 \
|
||||||
"BITCOIN_LATEST_RELEASE" 10 1 "${BITCOIN_LATEST_RELEASE}" 10 35 35 0 \
|
# "BITCOIN_LATEST_RELEASE" 10 1 "${BITCOIN_LATEST_RELEASE}" 10 35 35 0 \
|
||||||
"BITCOIN_MAINNET_ENABLE" 11 1 "${BITCOIN_MAINNET_ENABLE}" 11 35 35 0 \
|
# "BITCOIN_MAINNET_ENABLE" 11 1 "${BITCOIN_MAINNET_ENABLE}" 11 35 35 0 \
|
||||||
"BITCOIN_REPO_BRANCH" 12 1 "${BITCOIN_REPO_BRANCH}" 12 35 35 0 \
|
# "BITCOIN_REPO_BRANCH" 12 1 "${BITCOIN_REPO_BRANCH}" 12 35 35 0 \
|
||||||
"BITCOIN_REPO_NAME" 13 1 "${BITCOIN_REPO_NAME}" 13 35 35 0 \
|
# "BITCOIN_REPO_NAME" 13 1 "${BITCOIN_REPO_NAME}" 13 35 35 0 \
|
||||||
"BITCOIN_REPO_URL" 14 1 "${BITCOIN_REPO_URL}" 14 35 35 0 \
|
# "BITCOIN_REPO_URL" 14 1 "${BITCOIN_REPO_URL}" 14 35 35 0 \
|
||||||
"BITCOIN_TESTNET_ENABLE" 15 1 "${BITCOIN_TESTNET_ENABLE}" 15 35 35 0 \
|
# "BITCOIN_TESTNET_ENABLE" 15 1 "${BITCOIN_TESTNET_ENABLE}" 15 35 35 0 \
|
||||||
"ELEMENTS_INSTALL" 16 1 "${ELEMENTS_INSTALL}" 16 35 35 0 \
|
# "ELEMENTS_INSTALL" 16 1 "${ELEMENTS_INSTALL}" 16 35 35 0 \
|
||||||
"ELEMENTS_LATEST_RELEASE" 17 1 "${ELEMENTS_LATEST_RELEASE}" 17 35 35 0 \
|
# "ELEMENTS_LATEST_RELEASE" 17 1 "${ELEMENTS_LATEST_RELEASE}" 17 35 35 0 \
|
||||||
"ELEMENTS_LIQUID_ENABLE" 18 1 "${ELEMENTS_LIQUID_ENABLE}" 18 35 35 0 \
|
# "ELEMENTS_LIQUID_ENABLE" 18 1 "${ELEMENTS_LIQUID_ENABLE}" 18 35 35 0 \
|
||||||
"ELEMENTS_REPO_BRANCH" 19 1 "${ELEMENTS_REPO_BRANCH}" 19 35 35 0 \
|
# "ELEMENTS_REPO_BRANCH" 19 1 "${ELEMENTS_REPO_BRANCH}" 19 35 35 0 \
|
||||||
"ELEMENTS_REPO_NAME" 20 1 "${ELEMENTS_REPO_NAME}" 20 35 35 0 \
|
# "ELEMENTS_REPO_NAME" 20 1 "${ELEMENTS_REPO_NAME}" 20 35 35 0 \
|
||||||
"ELEMENTS_REPO_URL" 21 1 "${ELEMENTS_REPO_URL}" 21 35 35 0 \
|
# "ELEMENTS_REPO_URL" 21 1 "${ELEMENTS_REPO_URL}" 21 35 35 0 \
|
||||||
"MEMPOOL_LATEST_RELEASE" 22 1 "${MEMPOOL_LATEST_RELEASE}" 22 35 35 0 \
|
# "MEMPOOL_LATEST_RELEASE" 22 1 "${MEMPOOL_LATEST_RELEASE}" 22 35 35 0 \
|
||||||
"MEMPOOL_LIQUID_HTTP_HOST" 23 1 "${MEMPOOL_LIQUID_HTTP_HOST}" 23 35 35 0 \
|
# "MEMPOOL_LIQUID_HTTP_HOST" 23 1 "${MEMPOOL_LIQUID_HTTP_HOST}" 23 35 35 0 \
|
||||||
"MEMPOOL_LIQUID_HTTP_PORT" 24 1 "${MEMPOOL_LIQUID_HTTP_PORT}" 24 35 35 0 \
|
# "MEMPOOL_LIQUID_HTTP_PORT" 24 1 "${MEMPOOL_LIQUID_HTTP_PORT}" 24 35 35 0 \
|
||||||
"MEMPOOL_MAINNET_HTTP_HOST" 25 1 "${MEMPOOL_MAINNET_HTTP_HOST}" 25 35 35 0 \
|
# "MEMPOOL_MAINNET_HTTP_HOST" 25 1 "${MEMPOOL_MAINNET_HTTP_HOST}" 25 35 35 0 \
|
||||||
"MEMPOOL_MAINNET_HTTP_PORT" 26 1 "${MEMPOOL_MAINNET_HTTP_PORT}" 26 35 35 0 \
|
# "MEMPOOL_MAINNET_HTTP_PORT" 26 1 "${MEMPOOL_MAINNET_HTTP_PORT}" 26 35 35 0 \
|
||||||
"MEMPOOL_REPO_BRANCH" 27 1 "${MEMPOOL_REPO_BRANCH}" 27 35 35 0 \
|
# "MEMPOOL_REPO_BRANCH" 27 1 "${MEMPOOL_REPO_BRANCH}" 27 35 35 0 \
|
||||||
"MEMPOOL_REPO_NAME" 28 1 "${MEMPOOL_REPO_NAME}" 28 35 35 0 \
|
# "MEMPOOL_REPO_NAME" 28 1 "${MEMPOOL_REPO_NAME}" 28 35 35 0 \
|
||||||
"MEMPOOL_REPO_URL" 29 1 "${MEMPOOL_REPO_URL}" 29 35 35 0 \
|
# "MEMPOOL_REPO_URL" 29 1 "${MEMPOOL_REPO_URL}" 29 35 35 0 \
|
||||||
"MEMPOOL_TESTNET_HTTP_HOST" 30 1 "${MEMPOOL_TESTNET_HTTP_HOST}" 30 35 35 0 \
|
# "MEMPOOL_TESTNET_HTTP_HOST" 30 1 "${MEMPOOL_TESTNET_HTTP_HOST}" 30 35 35 0 \
|
||||||
"MEMPOOL_TESTNET_HTTP_PORT" 31 1 "${MEMPOOL_TESTNET_HTTP_PORT}" 31 35 35 0 \
|
# "MEMPOOL_TESTNET_HTTP_PORT" 31 1 "${MEMPOOL_TESTNET_HTTP_PORT}" 31 35 35 0 \
|
||||||
"MEMPOOL_TOR_HS" 32 1 "${MEMPOOL_TOR_HS}" 32 35 35 0 \
|
# "MEMPOOL_TOR_HS" 32 1 "${MEMPOOL_TOR_HS}" 32 35 35 0 \
|
||||||
"HOSTNAME" 33 1 "${HOSTNAME}" 33 35 35 0 \
|
# "HOSTNAME" 33 1 "${HOSTNAME}" 33 35 35 0 \
|
||||||
"TOR_INSTALL" 34 1 "${TOR_INSTALL}" 34 35 35 0 \
|
# "TOR_INSTALL" 34 1 "${TOR_INSTALL}" 34 35 35 0 \
|
||||||
"CERTBOT_INSTALL" 35 1 "${CERTBOT_INSTALL}" 35 35 35 0 \
|
# "CERTBOT_INSTALL" 35 1 "${CERTBOT_INSTALL}" 35 35 35 0 \
|
||||||
2> $tempfile
|
#2> $tempfile
|
||||||
|
#
|
||||||
retval=$?
|
#retval=$?
|
||||||
|
#
|
||||||
if [ $retval != $DIALOG_OK ];then
|
#if [ $retval != $DIALOG_OK ];then
|
||||||
echo "Installation aborted."
|
# echo "Installation aborted."
|
||||||
exit 1
|
# exit 1
|
||||||
fi
|
#fi
|
||||||
|
|
||||||
############################
|
############################
|
||||||
# START DOING ACTUAL STUFF #
|
# START DOING ACTUAL STUFF #
|
||||||
@ -841,8 +842,6 @@ fi
|
|||||||
date
|
date
|
||||||
echo "[*] Mempool installation script for ${OS}"
|
echo "[*] Mempool installation script for ${OS}"
|
||||||
|
|
||||||
set -x
|
|
||||||
|
|
||||||
###################################
|
###################################
|
||||||
# create filesystems if necessary #
|
# create filesystems if necessary #
|
||||||
###################################
|
###################################
|
||||||
@ -906,7 +905,7 @@ echo "[*] Installing nvm.sh from GitHub"
|
|||||||
osSudo "${MEMPOOL_USER}" sh -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | zsh'
|
osSudo "${MEMPOOL_USER}" sh -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | zsh'
|
||||||
|
|
||||||
echo "[*] Building NodeJS via nvm.sh"
|
echo "[*] Building NodeJS via nvm.sh"
|
||||||
osSudo "${MEMPOOL_USER}" zsh -c 'source ~/.zshrc ; nvm install v16.15.0'
|
osSudo "${MEMPOOL_USER}" zsh -c 'source ~/.zshrc ; nvm install v16.16.0 --shared-zlib'
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Tor installation #
|
# Tor installation #
|
||||||
@ -925,6 +924,8 @@ if [ "${TOR_INSTALL}" = ON ];then
|
|||||||
osSudo "${ROOT_USER}" /bin/sh -c "echo HiddenServiceDir ${TOR_RESOURCES}/${MEMPOOL_TOR_HS}/ >> ${TOR_CONFIGURATION}"
|
osSudo "${ROOT_USER}" /bin/sh -c "echo HiddenServiceDir ${TOR_RESOURCES}/${MEMPOOL_TOR_HS}/ >> ${TOR_CONFIGURATION}"
|
||||||
osSudo "${ROOT_USER}" /bin/sh -c "echo HiddenServicePort 80 127.0.0.1:81 >> ${TOR_CONFIGURATION}"
|
osSudo "${ROOT_USER}" /bin/sh -c "echo HiddenServicePort 80 127.0.0.1:81 >> ${TOR_CONFIGURATION}"
|
||||||
osSudo "${ROOT_USER}" /bin/sh -c "echo HiddenServiceVersion 3 >> ${TOR_CONFIGURATION}"
|
osSudo "${ROOT_USER}" /bin/sh -c "echo HiddenServiceVersion 3 >> ${TOR_CONFIGURATION}"
|
||||||
|
else
|
||||||
|
osSudo "${ROOT_USER}" sed -i.orig "s!__TOR_RESOURCES__!${TOR_RESOURCES}!" "${TOR_CONFIGURATION}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case $OS in
|
case $OS in
|
||||||
@ -936,7 +937,7 @@ if [ "${TOR_INSTALL}" = ON ];then
|
|||||||
|
|
||||||
# start tor now so it can bootstrap in time for bitcoin starting a few mins later
|
# start tor now so it can bootstrap in time for bitcoin starting a few mins later
|
||||||
echo "[*] Starting Tor service"
|
echo "[*] Starting Tor service"
|
||||||
osSudo "${ROOT_USER}" service tor start
|
osSudo "${ROOT_USER}" service tor restart
|
||||||
fi
|
fi
|
||||||
|
|
||||||
########################
|
########################
|
||||||
@ -1282,7 +1283,25 @@ if [ "${ELEMENTS_LIQUID_ENABLE}" = ON ];then
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
Debian)
|
Debian)
|
||||||
osSudo "${ROOT_USER}" install -c -o "${ROOT_USER}" -g "${ROOT_GROUP}" -m 644 "${MEMPOOL_HOME}/${MEMPOOL_REPO_NAME}/production/linux/liquid.service" "${DEBIAN_SERVICE_HOME}"
|
osSudo "${ROOT_USER}" install -c -o "${ROOT_USER}" -g "${ROOT_GROUP}" -m 644 "${MEMPOOL_HOME}/${MEMPOOL_REPO_NAME}/production/linux/elements-liquid.service" "${DEBIAN_SERVICE_HOME}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
#######################################
|
||||||
|
# Bitcoin instance for Liquid Testnet #
|
||||||
|
#######################################
|
||||||
|
|
||||||
|
if [ "${ELEMENTS_LIQUID_ENABLE}" = ON ];then
|
||||||
|
echo "[*] Installing Bitcoin Liquid service"
|
||||||
|
case $OS in
|
||||||
|
|
||||||
|
FreeBSD)
|
||||||
|
echo "[*] FIXME: Bitcoin Liquid service must be installed manually on FreeBSD"
|
||||||
|
;;
|
||||||
|
|
||||||
|
Debian)
|
||||||
|
osSudo "${ROOT_USER}" install -c -o "${ROOT_USER}" -g "${ROOT_GROUP}" -m 644 "${MEMPOOL_HOME}/${MEMPOOL_REPO_NAME}/production/linux/elements-liquidtestnet.service" "${DEBIAN_SERVICE_HOME}"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
@ -1340,7 +1359,7 @@ if [ "${ELEMENTS_LIQUID_ENABLE}" = ON ];then
|
|||||||
echo "[*] Installing Elements crontab"
|
echo "[*] Installing Elements crontab"
|
||||||
case $OS in
|
case $OS in
|
||||||
FreeBSD)
|
FreeBSD)
|
||||||
echo [*] FIXME: must only crontab enabled daemons
|
echo "[*] FIXME: must only crontab enabled daemons"
|
||||||
osSudo "${ROOT_USER}" crontab -u "${ELEMENTS_USER}" "${MEMPOOL_HOME}/${MEMPOOL_REPO_NAME}/production/elements.crontab"
|
osSudo "${ROOT_USER}" crontab -u "${ELEMENTS_USER}" "${MEMPOOL_HOME}/${MEMPOOL_REPO_NAME}/production/elements.crontab"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@ -1377,33 +1396,33 @@ fi
|
|||||||
echo "[*] Installing crontabs"
|
echo "[*] Installing crontabs"
|
||||||
case $OS in
|
case $OS in
|
||||||
FreeBSD)
|
FreeBSD)
|
||||||
echo [*] FIXME: must only crontab enabled daemons
|
echo "[*] FIXME: must only crontab enabled daemons"
|
||||||
osSudo "${ROOT_USER}" crontab -u "${BITCOIN_USER}" "${MEMPOOL_HOME}/${MEMPOOL_REPO_NAME}/production/bitcoin.crontab"
|
osSudo "${ROOT_USER}" crontab -u "${BITCOIN_USER}" "${MEMPOOL_HOME}/${MEMPOOL_REPO_NAME}/production/bitcoin.crontab"
|
||||||
osSudo "${ROOT_USER}" crontab -u "${MINFEE_USER}" "${MEMPOOL_HOME}/${MEMPOOL_REPO_NAME}/production/minfee.crontab"
|
osSudo "${ROOT_USER}" crontab -u "${MINFEE_USER}" "${MEMPOOL_HOME}/${MEMPOOL_REPO_NAME}/production/minfee.crontab"
|
||||||
;;
|
;;
|
||||||
Debian)
|
Debian)
|
||||||
crontab_bitcoin=()
|
crontab_bitcoin=()
|
||||||
if [ "${BITCOIN_MAINNET_ENABLE}" = ON ];then
|
if [ "${BITCOIN_MAINNET_ENABLE}" = ON ];then
|
||||||
echo [*] Installing Electrs Mainnet Cronjob
|
echo "[*] Installing Electrs Mainnet Cronjob"
|
||||||
crontab_bitcoin+="@reboot sleep 30 ; screen -dmS mainnet /bitcoin/electrs/electrs-start-mainnet\n"
|
crontab_bitcoin+="@reboot sleep 30 ; screen -dmS mainnet /bitcoin/electrs/electrs-start-mainnet\n"
|
||||||
fi
|
fi
|
||||||
if [ "${BITCOIN_TESTNET_ENABLE}" = ON ];then
|
if [ "${BITCOIN_TESTNET_ENABLE}" = ON ];then
|
||||||
echo [*] Installing Electrs Testnet Cronjob
|
echo "[*] Installing Electrs Testnet Cronjob"
|
||||||
crontab_bitcoin+="@reboot sleep 70 ; screen -dmS testnet /bitcoin/electrs/electrs-start-testnet\n"
|
crontab_bitcoin+="@reboot sleep 70 ; screen -dmS testnet /bitcoin/electrs/electrs-start-testnet\n"
|
||||||
fi
|
fi
|
||||||
if [ "${BITCOIN_SIGNET_ENABLE}" = ON ];then
|
if [ "${BITCOIN_SIGNET_ENABLE}" = ON ];then
|
||||||
echo [*] Installing Electrs Signet Cronjob
|
echo "[*] Installing Electrs Signet Cronjob"
|
||||||
crontab_bitcoin+="@reboot sleep 90 ; screen -dmS signet /bitcoin/electrs/electrs-start-signet\n"
|
crontab_bitcoin+="@reboot sleep 90 ; screen -dmS signet /bitcoin/electrs/electrs-start-signet\n"
|
||||||
fi
|
fi
|
||||||
echo "${crontab_bitcoin}" | crontab -u "${BITCOIN_USER}" -
|
echo "${crontab_bitcoin}" | crontab -u "${BITCOIN_USER}" -
|
||||||
|
|
||||||
crontab_elements=()
|
crontab_elements=()
|
||||||
if [ "${ELEMENTS_LIQUID_ENABLE}" = ON ];then
|
if [ "${ELEMENTS_LIQUID_ENABLE}" = ON ];then
|
||||||
echo [*] Installing Liquid Asset Mainnet Cronjob
|
echo "[*] Installing Liquid Asset Mainnet Cronjob"
|
||||||
crontab_elements+="6 * * * * cd $HOME/asset_registry_db && git pull origin master >/dev/null 2>&1\n"
|
crontab_elements+="6 * * * * cd $HOME/asset_registry_db && git pull origin master >/dev/null 2>&1\n"
|
||||||
fi
|
fi
|
||||||
if [ "${ELEMENTS_LIQUIDTESTNET_ENABLE}" = ON ];then
|
if [ "${ELEMENTS_LIQUIDTESTNET_ENABLE}" = ON ];then
|
||||||
echo [*] Installing Liquid Asset Testnet Cronjob
|
echo "[*] Installing Liquid Asset Testnet Cronjob"
|
||||||
crontab_elements+="6 * * * * cd $HOME/asset_registry_testnet_db && git pull origin master >/dev/null 2>&1\n"
|
crontab_elements+="6 * * * * cd $HOME/asset_registry_testnet_db && git pull origin master >/dev/null 2>&1\n"
|
||||||
fi
|
fi
|
||||||
echo "${crontab_elements}" | crontab -u "${ELEMENTS_USER}" -
|
echo "${crontab_elements}" | crontab -u "${ELEMENTS_USER}" -
|
||||||
@ -1508,6 +1527,12 @@ _EOF_
|
|||||||
|
|
||||||
##### nginx
|
##### nginx
|
||||||
|
|
||||||
|
|
||||||
|
echo "[*] Read tor v3 onion hostnames"
|
||||||
|
NGINX_MEMPOOL_ONION=$(cat "${TOR_RESOURCES}/mempool/hostname")
|
||||||
|
NGINX_BISQ_ONION=$(cat "${TOR_RESOURCES}/bisq/hostname")
|
||||||
|
NGINX_LIQUID_ONION=$(cat "${TOR_RESOURCES}/liquid/hostname")
|
||||||
|
|
||||||
echo "[*] Adding Nginx configuration"
|
echo "[*] Adding Nginx configuration"
|
||||||
case $OS in
|
case $OS in
|
||||||
|
|
||||||
@ -1517,8 +1542,16 @@ case $OS in
|
|||||||
|
|
||||||
Debian)
|
Debian)
|
||||||
osSudo "${ROOT_USER}" install -c -o "${ROOT_USER}" -g "${ROOT_GROUP}" -m 644 "${MEMPOOL_HOME}/${MEMPOOL_REPO_NAME}/production/nginx/nginx.conf" "${NGINX_CONFIGURATION}"
|
osSudo "${ROOT_USER}" install -c -o "${ROOT_USER}" -g "${ROOT_GROUP}" -m 644 "${MEMPOOL_HOME}/${MEMPOOL_REPO_NAME}/production/nginx/nginx.conf" "${NGINX_CONFIGURATION}"
|
||||||
#echo "[*] Restarting Nginx"
|
mkdir -p /var/cache/nginx/services /var/cache/nginx/api
|
||||||
#osSudo "${ROOT_USER}" service nginx restart
|
chown www-data: /var/cache/nginx/services /var/cache/nginx/api
|
||||||
|
ln -s /mempool/mempool /etc/nginx/mempool
|
||||||
|
osSudo "${ROOT_USER}" sed -i.orig "s!__NGINX_USER__!www-data!" "${NGINX_CONFIGURATION}"
|
||||||
|
osSudo "${ROOT_USER}" sed -i.orig "s!__NGINX_ETC_FOLDER__!${NGINX_ETC_FOLDER}!" "${NGINX_CONFIGURATION}"
|
||||||
|
osSudo "${ROOT_USER}" sed -i.orig "s!__NGINX_MEMPOOL_ONION__!${NGINX_MEMPOOL_ONION%.onion}!" "${NGINX_CONFIGURATION}"
|
||||||
|
osSudo "${ROOT_USER}" sed -i.orig "s!__NGINX_BISQ_ONION__!${NGINX_BISQ_ONION%.onion}!" "${NGINX_CONFIGURATION}"
|
||||||
|
osSudo "${ROOT_USER}" sed -i.orig "s!__NGINX_LIQUID_ONION__!${NGINX_LIQUID_ONIONi%.onion}!" "${NGINX_CONFIGURATION}"
|
||||||
|
echo "[*] Restarting Nginx"
|
||||||
|
osSudo "${ROOT_USER}" service nginx restart
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@ -1551,7 +1584,10 @@ case $OS in
|
|||||||
osSudo "${ROOT_USER}" systemctl enable bisq.service
|
osSudo "${ROOT_USER}" systemctl enable bisq.service
|
||||||
fi
|
fi
|
||||||
if [ "${ELEMENTS_LIQUID_ENABLE}" = ON ];then
|
if [ "${ELEMENTS_LIQUID_ENABLE}" = ON ];then
|
||||||
osSudo "${ROOT_USER}" systemctl enable liquid.service
|
osSudo "${ROOT_USER}" systemctl enable elements-liquid.service
|
||||||
|
fi
|
||||||
|
if [ "${ELEMENTS_LIQUIDTESTNET_ENABLE}" = ON ];then
|
||||||
|
osSudo "${ROOT_USER}" systemctl enable elements-liquidtestnet.service
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@ -1575,7 +1611,10 @@ EOF
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
##### Build Mempool
|
||||||
|
|
||||||
|
echo "[*] Build Mempool"
|
||||||
|
osSudo "${MEMPOOL_USER}" sh -c "cd ${MEMPOOL_HOME} && ./upgrade"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1654,8 +1693,21 @@ esac
|
|||||||
|
|
||||||
##### finish
|
##### finish
|
||||||
|
|
||||||
echo 'Please reboot to start all the services.'
|
case $OS in
|
||||||
|
|
||||||
|
FreeBSD)
|
||||||
|
;;
|
||||||
|
|
||||||
|
Debian)
|
||||||
|
echo "This are the generated Tor addresses:"
|
||||||
|
echo "${NGINX_MEMPOOL_ONION}"
|
||||||
|
echo "${NGINX_BISQ_ONION}"
|
||||||
|
echo "${NGINX_LIQUID_ONION}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo 'Please reboot to start all the services.'
|
||||||
echo '[*] Done!'
|
echo '[*] Done!'
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=Elementsd
|
Description=Elementsd-liquid
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/local/bin/elementsd -daemon -printtoconsole -chain=liquidtestnet -pid=/elements/elements-testnet.pid
|
ExecStart=/usr/local/bin/elementsd -daemon -printtoconsole -chain=liquidv1 -pid=/elements/elements-liquid.pid
|
||||||
ExecStop=/usr/local/bin/elements-cli stop
|
ExecStop=/usr/local/bin/elements-cli stop
|
||||||
|
|
||||||
Type=forking
|
Type=forking
|
||||||
PIDFile=/elements/elements-testnet.pid
|
PIDFile=/elements/elements-liquid.pid
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
|
|
||||||
User=elements
|
User=elements
|
@ -1,13 +1,13 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=Elementsd
|
Description=Elementsd-liquidtestnet
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/local/bin/elementsd -daemon -printtoconsole -chain=liquidv1 -pid=/elements/elements.pid
|
ExecStart=/usr/local/bin/elementsd -daemon -printtoconsole -chain=liquidtestnet -pid=/elements/elements-liquidtestnet.pid
|
||||||
ExecStop=/usr/local/bin/elements-cli stop
|
ExecStop=/usr/local/bin/elements-cli stop
|
||||||
|
|
||||||
Type=forking
|
Type=forking
|
||||||
PIDFile=/elements/elements.pid
|
PIDFile=/elements/elements-liquidtestnet.pid
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
|
|
||||||
User=elements
|
User=elements
|
@ -1,4 +1,4 @@
|
|||||||
user nobody;
|
user __NGINX_USER__;
|
||||||
pid /var/run/nginx.pid;
|
pid /var/run/nginx.pid;
|
||||||
|
|
||||||
worker_processes auto;
|
worker_processes auto;
|
||||||
@ -10,11 +10,11 @@ events {
|
|||||||
}
|
}
|
||||||
|
|
||||||
http {
|
http {
|
||||||
# DNS servers for on-demand recursive resolver
|
# DNS servers for on-demand resolution, change if desired
|
||||||
resolver 8.8.8.8;
|
resolver 8.8.8.8;
|
||||||
|
|
||||||
# include default mime types
|
# include default mime types
|
||||||
include /usr/local/etc/nginx/mime.types;
|
include __NGINX_ETC_FOLDER__/mime.types;
|
||||||
default_type application/octet-stream;
|
default_type application/octet-stream;
|
||||||
|
|
||||||
# HTTP basic configuration
|
# HTTP basic configuration
|
||||||
@ -32,9 +32,13 @@ http {
|
|||||||
# MEMPOOL.NINJA
|
# MEMPOOL.NINJA
|
||||||
server {
|
server {
|
||||||
# clearnet v4/v6
|
# clearnet v4/v6
|
||||||
listen 443 ssl http2;
|
#listen 443 ssl http2;
|
||||||
listen [::]:443 ssl http2;
|
#listen [::]:443 ssl http2;
|
||||||
server_name mempool.ninja;
|
server_name _;
|
||||||
|
|
||||||
|
# tor v3
|
||||||
|
listen 127.0.0.1:81;
|
||||||
|
set $onion "__NGINX_MEMPOOL_ONION__";
|
||||||
|
|
||||||
# for services from mempool.space like contributors on about page
|
# for services from mempool.space like contributors on about page
|
||||||
set $mempoolSpaceServices "https://mempool.space";
|
set $mempoolSpaceServices "https://mempool.space";
|
||||||
@ -52,30 +56,24 @@ http {
|
|||||||
set $esploraTestnet "http://esplora-bitcoin-testnet";
|
set $esploraTestnet "http://esplora-bitcoin-testnet";
|
||||||
set $esploraSignet "http://esplora-bitcoin-signet";
|
set $esploraSignet "http://esplora-bitcoin-signet";
|
||||||
|
|
||||||
# tor v3
|
|
||||||
listen 127.0.0.1:81;
|
|
||||||
set $onion "mempoolhqx4isw62xs7abwphsq7ldayuidyx2v2oethdhhj6mlo2r6ad";
|
|
||||||
|
|
||||||
# filesystem paths
|
# filesystem paths
|
||||||
root /mempool/public_html/mainnet/;
|
root /mempool/public_html/mainnet/;
|
||||||
access_log /var/log/nginx/mempool-access.log;
|
access_log /var/log/nginx/mempool-access.log;
|
||||||
error_log /var/log/nginx/mempool-error.log;
|
error_log /var/log/nginx/mempool-error.log;
|
||||||
|
|
||||||
# ssl configuration
|
|
||||||
ssl_certificate /usr/local/etc/letsencrypt/live/mempool.ninja/fullchain.pem;
|
|
||||||
ssl_certificate_key /usr/local/etc/letsencrypt/live/mempool.ninja/privkey.pem;
|
|
||||||
include /usr/local/etc/letsencrypt/options-ssl-nginx.conf;
|
|
||||||
ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem;
|
|
||||||
|
|
||||||
# site configuration
|
# site configuration
|
||||||
include mempool/production/nginx/server-mempool.conf;
|
include mempool/production/nginx/server-mempool.conf;
|
||||||
}
|
}
|
||||||
# BISQ.NINJA
|
# BISQ.NINJA
|
||||||
server {
|
server {
|
||||||
# clearnet v4/v6
|
# clearnet v4/v6
|
||||||
listen 443 ssl http2;
|
#listen 443 ssl http2;
|
||||||
listen [::]:443 ssl http2;
|
#listen [::]:443 ssl http2;
|
||||||
server_name bisq.ninja;
|
server_name _;
|
||||||
|
|
||||||
|
# tor v3
|
||||||
|
listen 127.0.0.1:82;
|
||||||
|
set $onion "__NGINX_BISQ_ONION__";
|
||||||
|
|
||||||
# for services from mempool.space like contributors on about page
|
# for services from mempool.space like contributors on about page
|
||||||
set $mempoolSpaceServices "https://mempool.space";
|
set $mempoolSpaceServices "https://mempool.space";
|
||||||
@ -86,30 +84,24 @@ http {
|
|||||||
# for blockstream/esplora daemon, see upstream-esplora.conf
|
# for blockstream/esplora daemon, see upstream-esplora.conf
|
||||||
set $esploraMainnet "http://esplora-bitcoin-mainnet";
|
set $esploraMainnet "http://esplora-bitcoin-mainnet";
|
||||||
|
|
||||||
# tor v3
|
|
||||||
listen 127.0.0.1:82;
|
|
||||||
set $onion "bisqmktse2cabavbr2xjq7xw3h6g5ottemo5rolfcwt6aly6tp5fdryd";
|
|
||||||
|
|
||||||
# filesystem paths
|
# filesystem paths
|
||||||
root /mempool/public_html/bisq/;
|
root /mempool/public_html/bisq/;
|
||||||
access_log /var/log/nginx/bisq-access.log;
|
access_log /var/log/nginx/bisq-access.log;
|
||||||
error_log /var/log/nginx/bisq-error.log;
|
error_log /var/log/nginx/bisq-error.log;
|
||||||
|
|
||||||
# ssl configuration
|
|
||||||
ssl_certificate /usr/local/etc/letsencrypt/live/bisq.ninja/fullchain.pem;
|
|
||||||
ssl_certificate_key /usr/local/etc/letsencrypt/live/bisq.ninja/privkey.pem;
|
|
||||||
include /usr/local/etc/letsencrypt/options-ssl-nginx.conf;
|
|
||||||
ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem;
|
|
||||||
|
|
||||||
# site configuration
|
# site configuration
|
||||||
include mempool/production/nginx/server-bisq.conf;
|
include mempool/production/nginx/server-bisq.conf;
|
||||||
}
|
}
|
||||||
# LIQUID.PLACE
|
# LIQUID.PLACE
|
||||||
server {
|
server {
|
||||||
# clearnet v4/v6
|
# clearnet v4/v6
|
||||||
listen 443 ssl http2;
|
#listen 443 ssl http2;
|
||||||
listen [::]:443 ssl http2;
|
#listen [::]:443 ssl http2;
|
||||||
server_name liquid.place;
|
server_name _;
|
||||||
|
|
||||||
|
# tor v3
|
||||||
|
listen 127.0.0.1:83;
|
||||||
|
set $onion "__NGINX_LIQUID_ONION__";
|
||||||
|
|
||||||
# for services from mempool.space like contributors on about page
|
# for services from mempool.space like contributors on about page
|
||||||
set $mempoolSpaceServices "https://mempool.space";
|
set $mempoolSpaceServices "https://mempool.space";
|
||||||
@ -122,36 +114,12 @@ http {
|
|||||||
set $esploraMainnet "http://esplora-liquid-mainnet";
|
set $esploraMainnet "http://esplora-liquid-mainnet";
|
||||||
set $esploraTestnet "http://esplora-liquid-testnet";
|
set $esploraTestnet "http://esplora-liquid-testnet";
|
||||||
|
|
||||||
# tor v3
|
|
||||||
listen 127.0.0.1:83;
|
|
||||||
set $onion "liquidmom47f6s3m53ebfxn47p76a6tlnxib3wp6deux7wuzotdr6cyd";
|
|
||||||
|
|
||||||
# filesystem paths
|
# filesystem paths
|
||||||
root /mempool/public_html/liquid/;
|
root /mempool/public_html/liquid/;
|
||||||
access_log /var/log/nginx/liquid-access.log;
|
access_log /var/log/nginx/liquid-access.log;
|
||||||
error_log /var/log/nginx/liquid-error.log;
|
error_log /var/log/nginx/liquid-error.log;
|
||||||
|
|
||||||
# ssl configuration
|
|
||||||
ssl_certificate /usr/local/etc/letsencrypt/live/liquid.place/fullchain.pem;
|
|
||||||
ssl_certificate_key /usr/local/etc/letsencrypt/live/liquid.place/privkey.pem;
|
|
||||||
include /usr/local/etc/letsencrypt/options-ssl-nginx.conf;
|
|
||||||
ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem;
|
|
||||||
|
|
||||||
# site configuration
|
# site configuration
|
||||||
include mempool/production/nginx/server-liquid.conf;
|
include mempool/production/nginx/server-liquid.conf;
|
||||||
}
|
}
|
||||||
# HTTP to HTTPS redirect
|
|
||||||
server {
|
|
||||||
# clearnet v4/v6
|
|
||||||
listen 80;
|
|
||||||
listen [::]:80;
|
|
||||||
server_name _;
|
|
||||||
|
|
||||||
# only redirect for our hosted domains
|
|
||||||
if ($host ~ "^(mempool.ninja|bisq.ninja|liquid.place)$")
|
|
||||||
{
|
|
||||||
return 301 https://$host$request_uri;
|
|
||||||
}
|
|
||||||
return 503;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -3,21 +3,21 @@ SOCKSPort 9050
|
|||||||
ControlPort 9051
|
ControlPort 9051
|
||||||
Log notice syslog
|
Log notice syslog
|
||||||
|
|
||||||
DataDirectory /var/db/tor
|
DataDirectory __TOR_RESOURCES__
|
||||||
DataDirectoryGroupReadable 1
|
DataDirectoryGroupReadable 1
|
||||||
|
|
||||||
CookieAuthentication 1
|
CookieAuthentication 1
|
||||||
CookieAuthFile /var/db/tor/control_auth_cookie
|
CookieAuthFile __TOR_RESOURCES__/control_auth_cookie
|
||||||
CookieAuthFileGroupReadable 1
|
CookieAuthFileGroupReadable 1
|
||||||
|
|
||||||
HiddenServiceDir /var/db/tor/mempool
|
HiddenServiceDir __TOR_RESOURCES__/mempool
|
||||||
HiddenServicePort 80 127.0.0.1:81
|
HiddenServicePort 80 127.0.0.1:81
|
||||||
HiddenServiceVersion 3
|
HiddenServiceVersion 3
|
||||||
|
|
||||||
HiddenServiceDir /var/db/tor/bisq
|
HiddenServiceDir __TOR_RESOURCES__/bisq
|
||||||
HiddenServicePort 80 127.0.0.1:82
|
HiddenServicePort 80 127.0.0.1:82
|
||||||
HiddenServiceVersion 3
|
HiddenServiceVersion 3
|
||||||
|
|
||||||
HiddenServiceDir /var/db/tor/liquid
|
HiddenServiceDir __TOR_RESOURCES__/liquid
|
||||||
HiddenServicePort 80 127.0.0.1:83
|
HiddenServicePort 80 127.0.0.1:83
|
||||||
HiddenServiceVersion 3
|
HiddenServiceVersion 3
|
||||||
|
Loading…
x
Reference in New Issue
Block a user