From 67b8c13c1bccb422952d4619a2de2a13ef80300f Mon Sep 17 00:00:00 2001 From: rockstardev <5191402+rockstardev@users.noreply.github.com> Date: Thu, 9 Jan 2025 15:59:35 -0600 Subject: [PATCH 1/2] Adding Rate limiting section and bumping recommended BTCPay version --- docs/Conference-PoS-guide.md | 20 +++++++++++++++--- .../conference-pos-guide/rate-limiting.png | Bin 0 -> 15660 bytes 2 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 docs/img/conference-pos-guide/rate-limiting.png diff --git a/docs/Conference-PoS-guide.md b/docs/Conference-PoS-guide.md index b609c88ef2..83e28b6f72 100644 --- a/docs/Conference-PoS-guide.md +++ b/docs/Conference-PoS-guide.md @@ -1,6 +1,6 @@ # Setting up BTCPay Server for Conference / Event / Local Community -We will be going through the setup we used at [Bitcoin Atlantis](https://blog.btcpayserver.org/case-study-bitcoin-atlantis/), [Bitcoin Hong Kong](https://bitcoinmagazine.com/business/case-study-enabling-bitcoin-as-a-medium-of-exchange-at-the-bitcoin-asia-conference-in-hong-kong) and other conferences for a great user experience for attendees and merchants. +We will be going through the setup we used at [Bitcoin Atlantis](https://blog.btcpayserver.org/case-study-bitcoin-atlantis/), [Bitcoin Hong Kong](https://bitcoinmagazine.com/business/case-study-enabling-bitcoin-as-a-medium-of-exchange-at-the-bitcoin-asia-conference-in-hong-kong), [Bitcoin Nashville](https://x.com/BtcpayServer/status/1856410949797683379) and other conferences for a great user experience for attendees and merchants. For Point of Sale (PoS) devices we use the [Bitcoinize](https://bitcoinize.com/) devices with receipt printer (but you can use any other Android-based PoS device). @@ -18,7 +18,7 @@ To get an overview of the whole setup and steps you can watch our workshop from [[toc]] ## Initial setup -- Setup BTCPay Server v1.13.2 or later on a VPS (with public IP) +- Setup BTCPay Server v2.0.5 or later on a VPS (with public IP) - Setup a subdomain or use one provided by VPS hosting (e.g. Lunanode) - Register the admin account and create a first test store - Do [FastSync](https://docs.btcpayserver.org/Docker/fastsync/) (optional) @@ -92,7 +92,7 @@ Setup the Lightning wallet to be connected to the merchants' Blink account, foll - Ensure you hear the sound after the payment - Tap on "**View receipt**" button, test printing the receipt by selecting the **POSPrinter** from the dropdown, tap on the "**Print**" button -### 6. Give merchants access to the payment history (optional) +### 6. Give merchants access to the payment history (optional, but recommended) Optionally you can also create a login for each store/merchant on the PoS device so they can access the payment history. This is helpful to double-check what was the last payment or if a payment was already made. You can do so by adding a "Merchant" role with the following permissions: - btcpay.store.canmodifyinvoices @@ -103,6 +103,20 @@ Optionally you can also create a login for each store/merchant on the PoS device After that create a user for each store and assign them to the right store. +### 7. Increase Rate Limits if You Haven't Logged in Merchants on Devices (Optional) + +By default, the `create invoice` endpoint is throttled by IP to 4 requests per minute for public requests. If you are sharing an IP across multiple POS devices, you may encounter issues where more than 4 invoices cannot be created simultaneously during stress testing. + +In a [November 2024 PR](https://github.com/btcpayserver/btcpayserver/pull/6415), we ensured that this throttling does not apply to logged-in users. Therefore, if you completed **Step 6**, this issue won’t affect you. However, if you prefer not to log in users on each device, you can increase the rate limit as follows: + +1. Go to **Manage Plugins** on your BTCPay Server instance and install the **Dynamic Rate Limit** plugin by Kukks. +2. Navigate to `/plugins/dynamicrateslimiter` (**Server Settings -> Dynamic Reports -> Rate Limits**). +3. Click on **Add Rate Limit** and enter the following value: `zone=publicinvoices rate=9999r/m burst=500 nodelay` + +[Rate Limiting configuration setup for zone=publicinvoices](./img/conference-pos-guide/rate-limiting.png) + +This change allows anyone to create up to 9999 invoices per minute from any IP. For this reason, completing **Step 6** (logging in users on devices) is the recommended approach. + ## Setup a Bolt Cards provider We will create a separate store that is serving as a Bolt Cards provider. To find it easier in the list of stores you can append the store name with a "z", e.g. "z - Bolt Cards Provider". diff --git a/docs/img/conference-pos-guide/rate-limiting.png b/docs/img/conference-pos-guide/rate-limiting.png new file mode 100644 index 0000000000000000000000000000000000000000..398316d5f5b9ac9c9bf3752d8fa65b4186734477 GIT binary patch literal 15660 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 Date: Thu, 9 Jan 2025 16:03:33 -0600 Subject: [PATCH 2/2] Fixing markdown so image is displayed --- docs/Conference-PoS-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Conference-PoS-guide.md b/docs/Conference-PoS-guide.md index 83e28b6f72..c4326fb086 100644 --- a/docs/Conference-PoS-guide.md +++ b/docs/Conference-PoS-guide.md @@ -113,7 +113,7 @@ In a [November 2024 PR](https://github.com/btcpayserver/btcpayserver/pull/6415), 2. Navigate to `/plugins/dynamicrateslimiter` (**Server Settings -> Dynamic Reports -> Rate Limits**). 3. Click on **Add Rate Limit** and enter the following value: `zone=publicinvoices rate=9999r/m burst=500 nodelay` -[Rate Limiting configuration setup for zone=publicinvoices](./img/conference-pos-guide/rate-limiting.png) +![Rate Limiting configuration setup for zone=publicinvoices](./img/conference-pos-guide/rate-limiting.png) This change allows anyone to create up to 9999 invoices per minute from any IP. For this reason, completing **Step 6** (logging in users on devices) is the recommended approach.