Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion charts/powfaucet/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ home: https://github.com/pk910/PoWFaucet
sources:
- https://github.com/pk910/PoWFaucet
type: application
version: 1.0.0
version: 1.1.0
appVersion: "2.5.0"
maintainers:
- name: pk910
Expand Down
9 changes: 7 additions & 2 deletions charts/powfaucet/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

# powfaucet

![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
![Version: 1.1.0](https://img.shields.io/badge/Version-1.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)

PoW Faucet for EVM chains

Expand Down Expand Up @@ -57,6 +57,10 @@ faucetPowRewardPerHash: 500000000000000000 # 0.5 ETH
| faucetCaptchaProvider | string | `"hcaptcha"` | Captcha module: provider (hcaptcha / recaptcha) |
| faucetCaptchaSecret | string | `"0xCensoredHCaptchaSecretKey"` | Captcha module: provider secret |
| faucetCaptchaSitekey | string | `"00000000-0000-0000-0000-000000000000"` | Captcha module: provider site key |
| faucetConcurrencyByAddrOnly | bool | `false` | Concurrency module: only check concurrency by target address (set true when a trusted proxy fronts the faucet, so all traffic shares one IP) |
| faucetConcurrencyByIPOnly | bool | `false` | Concurrency module: only check concurrency by IP address (setting both ByAddrOnly and ByIPOnly skips both checks, disabling the module) |
| faucetConcurrencyLimit | int | `1` | Concurrency module: max sessions in 'running' state at the same time for the same IP / target address |
| faucetConcurrencyLimitEnabled | bool | `true` | Enable concurrency-limit module (cap simultaneously running sessions) |
| faucetEnsEnabled | bool | `true` | Enable ENS module |
| faucetEnsRequired | bool | `false` | ENS module: enforce ens name to use the faucet |
| faucetEnsRpcUrl | string | `"https://rpc.flashbots.net/"` | ENS module: rpc url (mainnet) |
Expand Down Expand Up @@ -94,6 +98,7 @@ faucetPowRewardPerHash: 500000000000000000 # 0.5 ETH
| faucetPowRewardPerHash | int | `500000000000000000` | PoW module: drop amount per eligible hash |
| faucetPrivkey | string | `"feedbeef12340000feedbeef12340000feedbeef12340000feedbeef12340000"` | Faucet wallet private key |
| faucetRecurringLimitsAmountWei | float | `100000000000000000000` | Recurring module: max amount a recurring user is allowed to request in total |
| faucetRecurringLimitsByAddrOnly | bool | `false` | Recurring module: only match previous sessions by target address, not by IP (set true when a trusted proxy fronts the faucet, so all traffic shares one IP and a per-IP match becomes a global budget) |
| faucetRecurringLimitsDuration | int | `86400` | Recurring module: aggregation duration for the max request amount check |
| faucetRecurringLimitsEnabled | bool | `true` | Enable recurring module (enforce limits for recurring users) |
| faucetRpcEndpoints | list | `[]` | Faucet el node rpc endpoints (multi-RPC mode). When non-empty, replaces faucetRpcUrl. Each entry supports: url (string, required; may include user:pass@), name (optional display label), priority (higher = preferred, default 1), metered (bool, throttles monitoring requests, default false). |
Expand All @@ -103,7 +108,7 @@ faucetPowRewardPerHash: 500000000000000000 # 0.5 ETH
| faucetRpcUrl | string | `"http://your-el-node:8545"` | Faucet el node rpc (single endpoint legacy mode; ignored when faucetRpcEndpoints is set) |
| faucetTitle | string | `"PoW Faucet"` | Faucet title |
| faucetTxBroadcastCount | int | `2` | Number of highest-priority ready endpoints to broadcast each transaction to in parallel. At least one successful submission is required; other endpoints' errors (e.g. "already known") are ignored. |
| faucetTxGasLimit | int | `21000` | Transaction gas limit |
| faucetTxGasLimit | string | `nil` | Transaction gas limit (unset omits the setting so the faucet's built-in default applies; set explicitly only for networks with different gas rules, e.g. L2s) |
| faucetTxMaxFee | int | `100000000000` | Max transaction gas fee (in wei) |
| faucetTxMaxPrioFee | int | `2000000000` | Max transaction priority fee (in wei) |
| fullnameOverride | string | `""` | Overrides the chart's computed fullname |
Expand Down
32 changes: 26 additions & 6 deletions charts/powfaucet/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -210,8 +210,8 @@ faucetExplorerLink: "https://your-el-block-explorer.com/tx/{txid}"
# -- Additional html to show on the faucet page
faucetHomeHtml: ""

# -- Transaction gas limit
faucetTxGasLimit: 21000
# -- Transaction gas limit (unset omits the setting so the faucet's built-in default applies; set explicitly only for networks with different gas rules, e.g. L2s)
faucetTxGasLimit: null

# -- Max transaction gas fee (in wei)
faucetTxMaxFee: 100000000000
Expand Down Expand Up @@ -366,6 +366,21 @@ faucetRecurringLimitsAmountWei: 100000000000000000000 # 100 ETH
# -- Recurring module: aggregation duration for the max request amount check
faucetRecurringLimitsDuration: 86400 # 1 day

# -- Recurring module: only match previous sessions by target address, not by IP (set true when a trusted proxy fronts the faucet, so all traffic shares one IP and a per-IP match becomes a global budget)
faucetRecurringLimitsByAddrOnly: false

# -- Enable concurrency-limit module (cap simultaneously running sessions)
faucetConcurrencyLimitEnabled: true

# -- Concurrency module: max sessions in 'running' state at the same time for the same IP / target address
faucetConcurrencyLimit: 1

# -- Concurrency module: only check concurrency by target address (set true when a trusted proxy fronts the faucet, so all traffic shares one IP)
faucetConcurrencyByAddrOnly: false

# -- Concurrency module: only check concurrency by IP address (setting both ByAddrOnly and ByIPOnly skips both checks, disabling the module)
faucetConcurrencyByIPOnly: false

# -- Enable PoW module (require mining)
faucetPowEnabled: false

Expand Down Expand Up @@ -466,7 +481,9 @@ config: |

# transaction gas limit
# use 21000 to prevent transactions to contracts

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fix comments too pls

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in 875a6ab — value is undeclared now (define only to override) and the template comment no longer references the old 21000.

{{- if .Values.faucetTxGasLimit }}
ethTxGasLimit: {{ .Values.faucetTxGasLimit }}
{{- end }}

# use legacy (non-eip1559) transaction type
# true: Type 0 (Legacy Transactions), false: Type 2 (EIP1559 Transactions)
Expand Down Expand Up @@ -682,15 +699,18 @@ config: |
limits: # array of individual limits, which all need to be passed
- limitAmount: {{ .Values.faucetRecurringLimitsAmountWei }}
duration: {{ .Values.faucetRecurringLimitsDuration }}
{{- if .Values.faucetRecurringLimitsByAddrOnly }}
byAddrOnly: true # only match previous sessions by target address (trusted proxy shares one IP)
{{- end }}

## Concurrency Limit module
concurrency-limit:
# enable / disable concurrency limit
enabled: true
enabled: {{ .Values.faucetConcurrencyLimitEnabled }}

concurrencyLimit: 1 # only allow 1 concurrent session (sessions in 'running' state at the same time for the same ip / target addr)
byAddrOnly: false # only check concurrency by target address
byIPOnly: false # only check concurrency by IP address
concurrencyLimit: {{ .Values.faucetConcurrencyLimit }} # only allow N concurrent sessions (sessions in 'running' state at the same time for the same ip / target addr)
byAddrOnly: {{ .Values.faucetConcurrencyByAddrOnly }} # only check concurrency by target address
byIPOnly: {{ .Values.faucetConcurrencyByIPOnly }} # only check concurrency by IP address
#messageByAddr: "" # custom error message when limit is exceeded by same target address
#messageByIP: "" # custom error message when limit is exceeded by same IP address

Expand Down