Repository navigation
feat(powfaucet): make concurrency-limit and recurring-limits matching configurable - #485
Merged
Merged
Conversation
qu0b
force-pushed
the
qu0b/powfaucet-concurrency-config
branch
3 times, most recently
from
July 30, 2026 09:33
ee390fc to
c9fe494
Compare
Collaborator
|
Imo this value should not be set anymore. Only define if you wanna use non default values. |
qu0b
force-pushed
the
qu0b/powfaucet-concurrency-config
branch
2 times, most recently
from
July 30, 2026 09:58
3ad2564 to
e974249
Compare
…ault gas limit - Expose the concurrency-limit module (enabled/limit/byAddrOnly/byIPOnly) and a recurring-limits byAddrOnly toggle as values. Both matter when a trusted proxy fronts the faucet: all traffic shares the proxy IP, so per-IP concurrency collapses to one global session and the per-IP recurring limit becomes a global budget. byAddrOnly scopes both checks to the target address. - faucetTxGasLimit now defaults to 0 = omit the setting, so the faucet's built-in default applies instead of a chart-side hardcode; explicit values remain for networks with different gas rules (e.g. L2s).
qu0b
force-pushed
the
qu0b/powfaucet-concurrency-config
branch
from
July 30, 2026 10:09
e974249 to
41754d7
Compare
barnabasbusa
approved these changes
Jul 30, 2026
| @@ -466,7 +481,9 @@ config: | | |||
|
|
|||
| # transaction gas limit | |||
| # use 21000 to prevent transactions to contracts | |||
Collaborator
There was a problem hiding this comment.
fix comments too pls
Member
Author
There was a problem hiding this comment.
Done in 875a6ab — value is undeclared now (define only to override) and the template comment no longer references the old 21000.
The value is now undeclared — define it only to override the faucet's built-in default. The config comment no longer suggests the old 21000.
Member
Author
|
Dropped the |
barnabasbusa
approved these changes
Jul 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Expose the powfaucet
concurrency-limitmodule's settings and arecurring-limitsmatching toggle as chart values, and stop hardcoding the transaction gas limit:faucetConcurrencyLimitEnabledtruefaucetConcurrencyLimit1faucetConcurrencyByAddrOnlyfalsefaucetConcurrencyByIPOnlyfalsefaucetRecurringLimitsByAddrOnlyfalsefaucetTxGasLimitethTxGasLimitis only rendered when this is set — the faucet's built-in default applies otherwise; define it only for networks with different gas rules (e.g. L2s)Chart
versionbumped1.0.0→1.1.0.Why
byAddrOnly toggles — both modules match sessions by target address or IP. When a trusted proxy fronts the faucet, every request carries the proxy's IP, so:
concurrencyLimit: 1by IP + addr) collapses to a single running session globally — one user mid-claim blocks everyone else'sstartSession.getFinishedSessionsmatchesTargetAddr = ? OR RemoteIP LIKE ?) turns the per-user recurring amount into a global daily budget — once collectively exhausted, every user is blocked for the rest of the window.The
byAddrOnlytoggles keep the still-meaningful per-address protections while dropping the proxy-IP collapse.Gas limit — the chart hardcoded
ethTxGasLimit: 21000, which every consumer has to override the moment gas rules change (a plain transfer creating the recipient account costs ~207k under Amsterdam rules — measured 207,391 viaeth_estimateGas). The app is the right owner of the sane default; the chart now omits the setting unless explicitly overridden. Note: the value must be omitted rather than rendered as0— PoWFaucet usesgasLimit || config.ethTxGasLimit, so a literal 0 would send 0-gas transactions.Compatibility
helm template.faucetTxGasLimitbehavior change: deployments relying on the chart's old21000default now get the app default instead (more gas headroom, same recipient set — the faucet still only sends drops). Anyone who set the value explicitly is unaffected.