From c019c7bc76156512c7bac01f4d3641e9c47de649 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Mon, 9 May 2022 00:47:10 -0400 Subject: [PATCH 1/3] Add faq on address lookups / electrs issues --- frontend/src/app/docs/api-docs/api-docs-data.ts | 8 ++++++++ 1 file changed, 8 insertions(+) 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 badd02619..9b0fe5df7 100644 --- a/frontend/src/app/docs/api-docs/api-docs-data.ts +++ b/frontend/src/app/docs/api-docs/api-docs-data.ts @@ -4583,5 +4583,13 @@ export const faqData = [ fragment: "install-mempool-with-docker", title: "Can I install Mempool using Docker?", answer: "Yes, we publish Docker images (or you can build your own). Check out the documentation for details." + }, + { + type: "endpoint", + category: "advanced", + showConditions: bitcoinNetworks, + fragment: "address-lookup-issues", + title: "Why do I get an error for certain address lookups on my Mempool instance?", + answer: "

Mempool uses an Electrum server to do address lookups. There are several implementations of the Electrum server protocol, and Mempool can use any of them.

But the implementation you use affects performance. romanz/electrs is a common choice for its low resource requirements, and most full-node distros use it. While this implementation works great for basic queries, it will struggle with queries to look up addresses with many transactions—especially when run on low-power hardware like a Raspberry Pi.

To remedy this, you will need to power Mempool with a more powerful Electrum server. Consider Fulcrum. Fulcrum requires more resources than romanz/electrs but can still run on a Raspberry Pi and handles heavy queries much more efficiently.

If you have stronger hardware, consider running blockstream/electrs, which is the backend mempool.space uses.

" } ]; From 48ed9fe82486c698ff0479b5202e646f7ea588e3 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Mon, 9 May 2022 00:49:17 -0400 Subject: [PATCH 2/3] Add faq link to address lookup error --- frontend/src/app/components/address/address.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/components/address/address.component.html b/frontend/src/app/components/address/address.component.html index 0ac64f86d..fa9e14651 100644 --- a/frontend/src/app/components/address/address.component.html +++ b/frontend/src/app/components/address/address.component.html @@ -134,7 +134,7 @@ ({{ error.error }}) - The number of transactions on this address exceeds the Electrum server limit + There many transactions on this address, more than your backend can handle. See more on setting up a stronger backend.

Consider viewing this address on the official Mempool website instead:
From 054826321325df449915e77f5cee478cecb44f84 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Mon, 9 May 2022 13:47:58 -0400 Subject: [PATCH 3/3] Make electrum server faq answer a list --- frontend/src/app/docs/api-docs/api-docs-data.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 9b0fe5df7..b0d4d1c4f 100644 --- a/frontend/src/app/docs/api-docs/api-docs-data.ts +++ b/frontend/src/app/docs/api-docs/api-docs-data.ts @@ -4590,6 +4590,6 @@ export const faqData = [ showConditions: bitcoinNetworks, fragment: "address-lookup-issues", title: "Why do I get an error for certain address lookups on my Mempool instance?", - answer: "

Mempool uses an Electrum server to do address lookups. There are several implementations of the Electrum server protocol, and Mempool can use any of them.

But the implementation you use affects performance. romanz/electrs is a common choice for its low resource requirements, and most full-node distros use it. While this implementation works great for basic queries, it will struggle with queries to look up addresses with many transactions—especially when run on low-power hardware like a Raspberry Pi.

To remedy this, you will need to power Mempool with a more powerful Electrum server. Consider Fulcrum. Fulcrum requires more resources than romanz/electrs but can still run on a Raspberry Pi and handles heavy queries much more efficiently.

If you have stronger hardware, consider running blockstream/electrs, which is the backend mempool.space uses.

" + answer: "

If you're getting errors when doing address lookups, it's probably because of your Electrum server backend.

Mempool uses an Electrum server to do address lookups. There are several implementations of the Electrum server protocol, and Mempool can use any of them, but the implementation you use affects performance:

  1. romanz/electrs. This is a common choice for its low resource requirements, and most full-node distros use it. But while this implementation works great for basic queries, it will struggle with heavier ones (e.g. looking up addresses with many transactions)—especially when running on low-power hardware like a Raspberry Pi.
  2. Fulcrum. Fulcrum requires more resources than romanz/electrs but it can still run on a Raspberry Pi, and it handles heavy queries much more efficiently. If you're having issues with romanz/electrs, Fulcrum is worth a try.
  3. blockstream/electrs. If you have stronger hardware, consider running Blockstream's electrs implementation. It's the backend mempool.space uses, and is also what powers blockstream.info.
" } ];