From 2abb09a99179d38d5f9bff380a642714aa03c8de Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Thu, 2 Mar 2023 02:39:59 -0500 Subject: [PATCH 01/12] Specify manual deployment support for enterprise sponsors [faq] --- frontend/src/app/docs/api-docs/api-docs.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/docs/api-docs/api-docs.component.html b/frontend/src/app/docs/api-docs/api-docs.component.html index 8c8d6ac36..2e9a12687 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -267,7 +267,7 @@ - You can manually install Mempool on your own Linux server, but this requires advanced sysadmin skills since you will be manually configuring everything. We do not provide support for manual deployments. + You can manually install Mempool on your own Linux server, but this requires advanced sysadmin skills since you will be manually configuring everything. We only provide support for manual deployments to enterprise sponsors. From 7fd9627635e91374774c9364d3c100efb0c8124a Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Thu, 2 Mar 2023 03:12:56 -0500 Subject: [PATCH 02/12] Specify manual deployment support for enterprise sponsors [readme] --- backend/README.md | 2 +- production/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/README.md b/backend/README.md index be85d25af..ee934a14f 100644 --- a/backend/README.md +++ b/backend/README.md @@ -2,7 +2,7 @@ These instructions are mostly intended for developers. -If you choose to use these instructions for a production setup, be aware that you will still probably need to do additional configuration for your specific OS, environment, use-case, etc. We do our best here to provide a good starting point, but only proceed if you know what you're doing. Mempool does not provide support for custom setups. +If you choose to use these instructions for a production setup, be aware that you will still probably need to do additional configuration for your specific OS, environment, use-case, etc. We do our best here to provide a good starting point, but only proceed if you know what you're doing. Mempool only provides support for custom setups to [enterprise sponsors](https://mempool.space/enterprise). See other ways to set up Mempool on [the main README](/../../#installation-methods). diff --git a/production/README.md b/production/README.md index 91b087ffa..87b8bb0a1 100644 --- a/production/README.md +++ b/production/README.md @@ -2,7 +2,7 @@ These instructions are for setting up a serious production Mempool website for Bitcoin (mainnet, testnet, signet), Liquid (mainnet, testnet), and Bisq. -Again, this setup is no joke—home users should use [one of the other installation methods](../#installation-methods). +Again, this setup is no joke—home users should use [one of the other installation methods](../#installation-methods). Support is only provided to [enterprise sponsors](https://mempool.space/enterprise). ### Server Hardware From 73f9a9a8d5eacbcd56a2c12aedc204e999efde49 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Sat, 4 Mar 2023 04:07:23 -0500 Subject: [PATCH 03/12] Generalize faq from linux to any server --- frontend/src/app/docs/api-docs/api-docs-data.ts | 4 ++-- frontend/src/app/docs/api-docs/api-docs.component.html | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/docs/api-docs/api-docs-data.ts b/frontend/src/app/docs/api-docs/api-docs-data.ts index 62d031613..9c5502bf1 100644 --- a/frontend/src/app/docs/api-docs/api-docs-data.ts +++ b/frontend/src/app/docs/api-docs/api-docs-data.ts @@ -8921,8 +8921,8 @@ export const faqData = [ type: "endpoint", category: "self-hosting", showConditions: bitcoinNetworks, - fragment: "host-my-own-instance-linux-server", - title: "How can I host my own instance on a Linux server?", + fragment: "host-my-own-instance-server", + title: "How can I host a Mempool instance on my own server?", }, { type: "endpoint", diff --git a/frontend/src/app/docs/api-docs/api-docs.component.html b/frontend/src/app/docs/api-docs/api-docs.component.html index 2e9a12687..313ff0b52 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -266,8 +266,9 @@ We support one-click installation on a number of Raspberry Pi full-node distros including Umbrel, RaspiBlitz, MyNode, RoninDojo, and Start9's Embassy. - - You can manually install Mempool on your own Linux server, but this requires advanced sysadmin skills since you will be manually configuring everything. We only provide support for manual deployments to enterprise sponsors. + +

You can manually install Mempool on your own server, but this requires advanced sysadmin skills since you will be manually configuring everything. You could also use our Docker images.

In any case, we only provide support for manual deployments to enterprise sponsors.

+

For casual users, we strongly suggest installing Mempool using one of the 1-click install methods.

From 8f10243ac9b796909ab4d0ca9d88355eae907e8d Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Sun, 12 Mar 2023 04:13:20 -0400 Subject: [PATCH 04/12] Use href for enterprise links --- frontend/src/app/docs/api-docs/api-docs.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/docs/api-docs/api-docs.component.html b/frontend/src/app/docs/api-docs/api-docs.component.html index e7e9a5403..7ef56ffaf 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -40,7 +40,7 @@

Below is a reference for the {{ network.val === '' ? 'Bitcoin' : network.val.charAt(0).toUpperCase() + network.val.slice(1) }} REST API service.

-

Note that we enforce rate limits. If you exceed these limits, you will get an HTTP 429 error. If you repeatedly exceed the limits, you may be banned from accessing the service altogether. Consider an enterprise sponsorship if you need higher API limits.

+

Note that we enforce rate limits. If you exceed these limits, you will get an HTTP 429 error. If you repeatedly exceed the limits, you may be banned from accessing the service altogether. Consider an enterprise sponsorship if you need higher API limits.

{{ item.title }}

@@ -268,7 +268,7 @@ -

You can manually install Mempool on your own server, but this requires advanced sysadmin skills since you will be manually configuring everything. You could also use our Docker images.

In any case, we only provide support for manual deployments to enterprise sponsors.

+

You can manually install Mempool on your own server, but this requires advanced sysadmin skills since you will be manually configuring everything. You could also use our Docker images.

In any case, we only provide support for manual deployments to enterprise sponsors.

For casual users, we strongly suggest installing Mempool using one of the 1-click install methods.

From 04e9c41c1acc139081a03ac2285b27db6f0f6403 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Wed, 29 Mar 2023 15:09:38 +0900 Subject: [PATCH 05/12] Clip overflowing labels in pool component on mobile --- .../app/components/pool/pool.component.html | 48 +++++++++---------- .../app/components/pool/pool.component.scss | 10 +++- 2 files changed, 33 insertions(+), 25 deletions(-) diff --git a/frontend/src/app/components/pool/pool.component.html b/frontend/src/app/components/pool/pool.component.html index 898e50fc2..e1806086e 100644 --- a/frontend/src/app/components/pool/pool.component.html +++ b/frontend/src/app/components/pool/pool.component.html @@ -92,9 +92,9 @@ - - - + + + @@ -117,9 +117,9 @@
RewardHashrate (24h)Avg HealthRewardHashrate (24h)Avg Health
- - - + + + @@ -143,9 +143,9 @@
RewardHashrate (24h)Avg HealthRewardHashrate (24h)Avg Health
- - - + + + @@ -165,9 +165,9 @@
Blocks 24h1wAllBlocks 24h1wAll
- - - + + + @@ -382,9 +382,9 @@
Blocks 24h1wAllBlocks 24h1wAll
- - - + + + @@ -407,9 +407,9 @@
RewardHashrate (24h)Avg HealthRewardHashrate (24h)Avg Health
- - - + + + @@ -433,9 +433,9 @@
RewardHashrate (24h)Avg HealthRewardHashrate (24h)Avg Health
- - - + + + @@ -458,9 +458,9 @@
Blocks 24h1wAllBlocks 24h1wAll
- - - + + + diff --git a/frontend/src/app/components/pool/pool.component.scss b/frontend/src/app/components/pool/pool.component.scss index 21468773f..92fdc2ef3 100644 --- a/frontend/src/app/components/pool/pool.component.scss +++ b/frontend/src/app/components/pool/pool.component.scss @@ -188,11 +188,19 @@ div.scrollable { } } -.block-count-title { +.data-title { color: #4a68b9; font-size: 14px; } +.clip { + @media (max-width: 576px) { + max-width: 85px; + overflow: hidden; + text-overflow: ellipsis; + } +} + .table-data tr { background-color: transparent; } From 6d6266c28a71d582538aa983eb93595dbf24af45 Mon Sep 17 00:00:00 2001 From: junderw Date: Sat, 8 Jul 2023 23:02:46 -0700 Subject: [PATCH 06/12] Fix backend docker build for armv7 --- backend/.dockerignore | 1 + docker/backend/Dockerfile | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 backend/.dockerignore diff --git a/backend/.dockerignore b/backend/.dockerignore new file mode 100644 index 000000000..94143827e --- /dev/null +++ b/backend/.dockerignore @@ -0,0 +1 @@ +Dockerfile diff --git a/docker/backend/Dockerfile b/docker/backend/Dockerfile index 386e0d59d..bbe4df3d2 100644 --- a/docker/backend/Dockerfile +++ b/docker/backend/Dockerfile @@ -7,9 +7,10 @@ WORKDIR /build COPY . . RUN apt-get update -RUN apt-get install -y build-essential python3 pkg-config curl +RUN apt-get install -y build-essential python3 pkg-config curl ca-certificates # Install Rust via rustup +RUN CPU_ARCH=$(uname -m); if [ "$CPU_ARCH" = "armv7l" ]; then c_rehash; fi RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable ENV PATH="/root/.cargo/bin:$PATH" From 43e1ad1a586cd5248cfbfa54e709825e5f27512c Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn <100320+knorrium@users.noreply.github.com> Date: Tue, 11 Jul 2023 00:21:00 -0700 Subject: [PATCH 07/12] Add node v20 to the test matrix --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b3c072689..e6bd3941d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ jobs: if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')" strategy: matrix: - node: ["16", "17", "18"] + node: ["16", "17", "18", "20"] flavor: ["dev", "prod"] fail-fast: false runs-on: "ubuntu-latest" @@ -60,7 +60,7 @@ jobs: if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')" strategy: matrix: - node: ["16", "17", "18"] + node: ["16", "17", "18", "20"] flavor: ["dev", "prod"] fail-fast: false runs-on: "ubuntu-latest" From 8df46c7a1f3140e19c2d2d90bc49f44a492153bb Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Tue, 18 Jul 2023 15:01:30 +0900 Subject: [PATCH 08/12] [search bar] fix alignment issue --- .../app/components/search-form/search-form.component.scss | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/components/search-form/search-form.component.scss b/frontend/src/app/components/search-form/search-form.component.scss index f3d2ee234..534bf0698 100644 --- a/frontend/src/app/components/search-form/search-form.component.scss +++ b/frontend/src/app/components/search-form/search-form.component.scss @@ -18,9 +18,10 @@ form { margin-top: 5px; - @media (min-width: 576px) { + @media (min-width: 564px) { margin-top: 0px; - margin-left: 8px; + margin-left: 5px; + margin-right: -5px; } @media (min-width: 992px) { width: 100%; From 60f566c8cda772c727e2d151213b393f99d04d1a Mon Sep 17 00:00:00 2001 From: Mononaut Date: Wed, 19 Jul 2023 12:09:46 +0900 Subject: [PATCH 09/12] restore latest blocks on liquid --- .../app/dashboard/dashboard.component.html | 42 ++++++++++++++++++- .../app/dashboard/dashboard.component.scss | 37 ++++++++++++++++ .../src/app/dashboard/dashboard.component.ts | 20 ++++++++- 3 files changed, 97 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/dashboard/dashboard.component.html b/frontend/src/app/dashboard/dashboard.component.html index 7175f767a..a9f6e3994 100644 --- a/frontend/src/app/dashboard/dashboard.component.html +++ b/frontend/src/app/dashboard/dashboard.component.html @@ -73,7 +73,7 @@
Blocks 24h1wAllBlocks 24h1wAll
+ +
+
+ +
Latest blocks
+   + +
+ + + + + + + + + + + + + + + + + +
HeightMinedPoolTXsSize
{{ block.height }} + + + {{ block.extras.pool.name }} + + {{ block.tx_count | number }} +
+
 
+
+
+
+
+
+
diff --git a/frontend/src/app/dashboard/dashboard.component.scss b/frontend/src/app/dashboard/dashboard.component.scss index f1e835d9c..884ba1027 100644 --- a/frontend/src/app/dashboard/dashboard.component.scss +++ b/frontend/src/app/dashboard/dashboard.component.scss @@ -175,6 +175,43 @@ height: 18px; } +.lastest-blocks-table { + width: 100%; + text-align: left; + tr, td, th { + border: 0px; + padding-top: 0.65rem !important; + padding-bottom: 0.7rem !important; + } + .table-cell-height { + width: 15%; + } + .table-cell-mined { + width: 35%; + text-align: left; + } + .table-cell-transaction-count { + display: none; + text-align: right; + width: 20%; + display: table-cell; + } + .table-cell-size { + display: none; + text-align: center; + width: 30%; + @media (min-width: 485px) { + display: table-cell; + } + @media (min-width: 768px) { + display: none; + } + @media (min-width: 992px) { + display: table-cell; + } + } +} + .lastest-replacements-table { width: 100%; text-align: left; diff --git a/frontend/src/app/dashboard/dashboard.component.ts b/frontend/src/app/dashboard/dashboard.component.ts index bf9816a69..aca3593d7 100644 --- a/frontend/src/app/dashboard/dashboard.component.ts +++ b/frontend/src/app/dashboard/dashboard.component.ts @@ -1,6 +1,6 @@ import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core'; import { combineLatest, merge, Observable, of, Subscription } from 'rxjs'; -import { filter, map, scan, share, switchMap } from 'rxjs/operators'; +import { filter, map, scan, share, switchMap, tap } from 'rxjs/operators'; import { BlockExtended, OptimizedMempoolStats, RbfTree } from '../interfaces/node-api.interface'; import { MempoolInfo, TransactionStripped, ReplacementInfo } from '../interfaces/websocket.interface'; import { ApiService } from '../services/api.service'; @@ -39,6 +39,7 @@ export class DashboardComponent implements OnInit, OnDestroy { mempoolLoadingStatus$: Observable; vBytesPerSecondLimit = 1667; transactions$: Observable; + blocks$: Observable; replacements$: Observable; latestBlockHeight: number; mempoolTransactionsWeightPerSecondData: any; @@ -144,6 +145,23 @@ export class DashboardComponent implements OnInit, OnDestroy { }, []), ); + this.blocks$ = this.stateService.blocks$ + .pipe( + tap((blocks) => { + this.latestBlockHeight = blocks[0].height; + }), + switchMap((blocks) => { + if (this.stateService.env.MINING_DASHBOARD === true) { + for (const block of blocks) { + // @ts-ignore: Need to add an extra field for the template + block.extras.pool.logo = `/resources/mining-pools/` + + block.extras.pool.name.toLowerCase().replace(' ', '').replace('.', '') + '.svg'; + } + } + return of(blocks.slice(0, 6)); + }) + ); + this.replacements$ = this.stateService.rbfLatestSummary$; this.mempoolStats$ = this.stateService.connectionState$ From 659e98a2721e7bf2ae8e3bdecca56b510f9d6136 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Thu, 20 Jul 2023 09:56:52 +0900 Subject: [PATCH 10/12] [search bar] chrome - fix flex-auto --- .../src/app/components/master-page/master-page.component.scss | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/components/master-page/master-page.component.scss b/frontend/src/app/components/master-page/master-page.component.scss index fc8b4eb5a..95b9474b9 100644 --- a/frontend/src/app/components/master-page/master-page.component.scss +++ b/frontend/src/app/components/master-page/master-page.component.scss @@ -64,7 +64,9 @@ li.nav-item { .navbar-collapse { - flex-basis: auto; + @media (min-width: 564px) { + flex-basis: auto; + } justify-content: flex-end; } From a218833a237f2b2faae4d49437598abfbd4d2a3d Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Thu, 20 Jul 2023 10:36:26 +0900 Subject: [PATCH 11/12] [mining] add missing empty col at the bottom of pool ranking --- .../src/app/components/pool-ranking/pool-ranking.component.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/frontend/src/app/components/pool-ranking/pool-ranking.component.html b/frontend/src/app/components/pool-ranking/pool-ranking.component.html index 6ffcbf485..d5cf08aa5 100644 --- a/frontend/src/app/components/pool-ranking/pool-ranking.component.html +++ b/frontend/src/app/components/pool-ranking/pool-ranking.component.html @@ -139,6 +139,8 @@ {{ miningStats.lastEstimatedHashrate}} {{ miningStats.miningUnits.hashrateUnit }} {{ miningStats.blockCount }} + + {{ miningStats.totalEmptyBlock }} ({{ miningStats.totalEmptyBlockRatio }}%) From bc5dcfc2270a0f7b705e9c380595bb8fc3c83d2f Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn <100320+knorrium@users.noreply.github.com> Date: Thu, 20 Jul 2023 18:09:36 -0700 Subject: [PATCH 12/12] Tweak dependabot settings --- .github/dependabot.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 9f7f6caeb..e0aee68c5 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -7,7 +7,8 @@ updates: open-pull-requests-limit: 10 ignore: - dependency-name: "*" - update-types: ["version-update:semver-major"] + update-types: + ["version-update:semver-major", "version-update:semver-patch"] allow: - dependency-type: "production" @@ -18,7 +19,8 @@ updates: open-pull-requests-limit: 10 ignore: - dependency-name: "*" - update-types: ["version-update:semver-major"] + update-types: + ["version-update:semver-major", "version-update:semver-patch"] allow: - dependency-type: "production" @@ -28,7 +30,8 @@ updates: interval: weekly ignore: - dependency-name: "*" - update-types: ["version-update:semver-major"] + update-types: + ["version-update:semver-major", "version-update:semver-patch"] - package-ecosystem: docker directory: "/docker/frontend" @@ -36,7 +39,8 @@ updates: interval: weekly ignore: - dependency-name: "*" - update-types: ["version-update:semver-major"] + update-types: + ["version-update:semver-major", "version-update:semver-patch"] - package-ecosystem: "github-actions" directory: "/" @@ -44,4 +48,5 @@ updates: interval: weekly ignore: - dependency-name: "*" - update-types: ["version-update:semver-major"] + update-types: + ["version-update:semver-major", "version-update:semver-patch"]