The two mains shared no history, so this is a per-file three-way merge:
for each file the 65 forge-only commits touched (by patch-id), the base is
the newest version both histories held. 105 files merged or took one side
cleanly, 48 were already identical, and the 45 true conflicts and 31
modify/delete pairs were resolved by what runs on the cluster:
- The forge wins where it is live: explorer 1.5.56 (digest 45db11ff) and
its archive readers, explore-fe-hanzo's ConfigMap env (AI coin,
/v1/indexer/hanzo, /v1/chain/hanzo/rpc), exchange-api reading
luxd-archive, and explore-fe-{lux,zoo}-testnet, pinned to what they run
(v2.8.5-lux / v2.8.4-lux).
- GitHub wins where it is live: explore-fe-lux v2.8.5-lux, explore-fe-zoo
v2.8.4-lux, bankd v1.0.18, lux-build's routes.
- The forge's retirement of workloads that run nowhere stands: lux-mainnet
dex, lux-hb2, lux-market, traffic, wallet-web; the lux-testnet frontends,
indexer, exchange and gateways; lux-operator. deploy/lux-testnet/luxd.yaml
stays, since roll_luxd.sh reads it.
- GitHub's deletions stand: lux-finance and lux-financial (static sites
now), the k8s/ operator manifests, .hanzo/workflows/cicd.yml.
- Paths are /v1/chain/C/rpc where the forge had written /v1/chain/c. All
four spellings answer; this one is the documented form. The forge's
/{network}/v1 doc lines are dropped: a network is a host, and the prefix
404s.
Dry-run against the running objects (server-side, as CD applies), the
merged explorer shows no change where GitHub's showed 152 lines, and no
other live workload moves further from what runs. Every deploy/*/*.yaml
renders with charts/app; price.yaml, which failed on GitHub, now renders.
Claude-Session: https://claude.ai/code/session_01TzirYkGmD88w4GipqivUtV
1490 lines
48 KiB
JSON
1490 lines
48 KiB
JSON
{
|
|
"version": 3,
|
|
"name": "Lux API Gateway",
|
|
"port": 8080,
|
|
"timeout": "30s",
|
|
"cache_ttl": "0s",
|
|
"output_encoding": "no-op",
|
|
"extra_config": {
|
|
"router": {
|
|
"return_error_msg": false
|
|
},
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 5000,
|
|
"client_max_rate": 100,
|
|
"strategy": "ip"
|
|
},
|
|
"qos/ratelimit/service": {
|
|
"max_rate": 5000,
|
|
"capacity": 5000
|
|
},
|
|
"security/cors": {
|
|
"allow_origins": [
|
|
"https://*.lux.network",
|
|
"https://*.lux.exchange",
|
|
"https://lux.network",
|
|
"https://lux.exchange",
|
|
"https://lux.market"
|
|
],
|
|
"allow_methods": [
|
|
"GET",
|
|
"POST",
|
|
"OPTIONS"
|
|
],
|
|
"allow_headers": [
|
|
"Content-Type",
|
|
"Authorization"
|
|
],
|
|
"expose_headers": [
|
|
"Content-Length"
|
|
],
|
|
"max_age": "12h"
|
|
},
|
|
"security/http": {
|
|
"allowed_hosts": [],
|
|
"browser_xss_filter": true,
|
|
"content_type_nosniff": true,
|
|
"custom_frame_options_value": "DENY",
|
|
"force_sts_header": true,
|
|
"sts_include_subdomains": true,
|
|
"sts_seconds": 31536000
|
|
},
|
|
"modifier/response-headers-blacklist": {
|
|
"blacklist": [
|
|
"X-Gateway-Completed",
|
|
"node-id",
|
|
"Node-Id",
|
|
"Server"
|
|
]
|
|
}
|
|
},
|
|
"endpoints": [
|
|
{
|
|
"endpoint": "/v1/chain/c/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/c/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/v1/chain/c/ws",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/c/ws",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 50,
|
|
"client_max_rate": 5,
|
|
"strategy": "ip"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/v1/chain/p",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/p",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/v1/chain/M",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/M",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/v1/chain/K",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/K",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/v1/chain/X",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/x",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/v1/chain/exchange",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/x",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/v1/chain/D/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/D/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/v1/chain/D/ws",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/D/ws",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 50,
|
|
"client_max_rate": 5,
|
|
"strategy": "ip"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/v1/info",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"extra_config": {
|
|
"validation/cel": [
|
|
{
|
|
"check_expr": "!req_body.matches('.*\"info\\\\.peers\".*') && !req_body.matches('.*\"info\\\\.getNodeIP\".*') && !req_body.matches('.*\"info\\\\.getNodeID\".*')",
|
|
"message": "Method not allowed: info.peers, info.getNodeIP, and info.getNodeID are blocked for security reasons"
|
|
}
|
|
],
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 50,
|
|
"client_max_rate": 10,
|
|
"strategy": "ip"
|
|
}
|
|
},
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/info",
|
|
"host": [
|
|
"http://info-filter.lux-mainnet.svc:8080"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/health",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/health",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 30,
|
|
"client_max_rate": 5,
|
|
"strategy": "ip"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/chain/c/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/c/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/chain/c/ws",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/c/ws",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 50,
|
|
"client_max_rate": 5,
|
|
"strategy": "ip"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/chain/p",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/p",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/chain/x",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/x",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/chain/exchange",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/x",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/chain/D/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/D/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/chain/D/ws",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/D/ws",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 50,
|
|
"client_max_rate": 5,
|
|
"strategy": "ip"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/chain/dex/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/D/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/info",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"extra_config": {
|
|
"validation/cel": [
|
|
{
|
|
"check_expr": "!req_body.matches('.*\"info\\\\.peers\".*') && !req_body.matches('.*\"info\\\\.getNodeIP\".*') && !req_body.matches('.*\"info\\\\.getNodeID\".*')",
|
|
"message": "Method not allowed: info.peers, info.getNodeIP, and info.getNodeID are blocked for security reasons"
|
|
}
|
|
],
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 50,
|
|
"client_max_rate": 10,
|
|
"strategy": "ip"
|
|
}
|
|
},
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/info",
|
|
"host": [
|
|
"http://info-filter.lux-mainnet.svc:8080"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/health",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/health",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 30,
|
|
"client_max_rate": 5,
|
|
"strategy": "ip"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/chain/c/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/c/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/chain/c/ws",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/c/ws",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 50,
|
|
"client_max_rate": 5,
|
|
"strategy": "ip"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/chain/p",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/p",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/chain/x",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/x",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/chain/exchange",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/x",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/chain/D/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/D/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/chain/D/ws",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/D/ws",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 50,
|
|
"client_max_rate": 5,
|
|
"strategy": "ip"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/chain/dex/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/D/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/health",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/health",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 30,
|
|
"client_max_rate": 5,
|
|
"strategy": "ip"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/chain/c/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/c/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/chain/c/ws",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/c/ws",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 50,
|
|
"client_max_rate": 5,
|
|
"strategy": "ip"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/chain/p",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/p",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/chain/x",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/x",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/chain/exchange",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/x",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/chain/D/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/D/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/chain/D/ws",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/D/ws",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 50,
|
|
"client_max_rate": 5,
|
|
"strategy": "ip"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/chain/dex/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/D/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/health",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/health",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 30,
|
|
"client_max_rate": 5,
|
|
"strategy": "ip"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/info",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"extra_config": {
|
|
"validation/cel": [
|
|
{
|
|
"check_expr": "!req_body.matches('.*\"info\\\\.peers\".*') && !req_body.matches('.*\"info\\\\.getNodeIP\".*') && !req_body.matches('.*\"info\\\\.getNodeID\".*')",
|
|
"message": "Method not allowed: info.peers, info.getNodeIP, and info.getNodeID are blocked for security reasons"
|
|
}
|
|
],
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 50,
|
|
"client_max_rate": 10,
|
|
"strategy": "ip"
|
|
}
|
|
},
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/info",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/info",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"extra_config": {
|
|
"validation/cel": [
|
|
{
|
|
"check_expr": "!req_body.matches('.*\"info\\\\.peers\".*') && !req_body.matches('.*\"info\\\\.getNodeIP\".*') && !req_body.matches('.*\"info\\\\.getNodeID\".*')",
|
|
"message": "Method not allowed: info.peers, info.getNodeIP, and info.getNodeID are blocked for security reasons"
|
|
}
|
|
],
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 50,
|
|
"client_max_rate": 10,
|
|
"strategy": "ip"
|
|
}
|
|
},
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/info",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/chain/2Y625Kvdd4wZ5LKx9kLSf1jGALyARmXVN1YsTb4F3Hzv4bPDbp/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/2Y625Kvdd4wZ5LKx9kLSf1jGALyARmXVN1YsTb4F3Hzv4bPDbp/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/chain/zoo/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/2Y625Kvdd4wZ5LKx9kLSf1jGALyARmXVN1YsTb4F3Hzv4bPDbp/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/chain/2GiQb73CeJESjc4omFv2YtQHZrRgJf25NXPzAr5J6UNHRcDV2F/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/2GiQb73CeJESjc4omFv2YtQHZrRgJf25NXPzAr5J6UNHRcDV2F/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/chain/hanzo/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/2GiQb73CeJESjc4omFv2YtQHZrRgJf25NXPzAr5J6UNHRcDV2F/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/chain/rtjwvtE1tEvrokmpeYdTq7b2zqZgmybKwR5MLjKMGAR1W78dQ/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/rtjwvtE1tEvrokmpeYdTq7b2zqZgmybKwR5MLjKMGAR1W78dQ/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/chain/spc/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/rtjwvtE1tEvrokmpeYdTq7b2zqZgmybKwR5MLjKMGAR1W78dQ/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/chain/2pUskxqaL5Bpx7uRUGG1fDjPckjxQ4UKX4sLKeaS1NdSVBJd3F/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/2pUskxqaL5Bpx7uRUGG1fDjPckjxQ4UKX4sLKeaS1NdSVBJd3F/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/mainnet/v1/chain/pars/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/2pUskxqaL5Bpx7uRUGG1fDjPckjxQ4UKX4sLKeaS1NdSVBJd3F/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-mainnet.svc.cluster.local:9630"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/chain/2Uw1b5tf63vamHsWVeSW9uHcGBVbF5CYHS9JiLWttusY4Vvjsn/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/2Uw1b5tf63vamHsWVeSW9uHcGBVbF5CYHS9JiLWttusY4Vvjsn/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/chain/zoo/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/2Uw1b5tf63vamHsWVeSW9uHcGBVbF5CYHS9JiLWttusY4Vvjsn/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/chain/2wbYEFh7ELuovqXhyYeCLvweZrcEgNUoZVJUAtw145qTVAUJxE/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/2wbYEFh7ELuovqXhyYeCLvweZrcEgNUoZVJUAtw145qTVAUJxE/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/chain/hanzo/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/2wbYEFh7ELuovqXhyYeCLvweZrcEgNUoZVJUAtw145qTVAUJxE/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/chain/u4pC2tT61o83pbQ8qwAyfXXGF6nyGFNSwCYHEFcUeESGiNKfu/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/u4pC2tT61o83pbQ8qwAyfXXGF6nyGFNSwCYHEFcUeESGiNKfu/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/chain/spc/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/u4pC2tT61o83pbQ8qwAyfXXGF6nyGFNSwCYHEFcUeESGiNKfu/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/chain/is5GUzsKHk3Z4Q5JXTjF4Ld9p4TnEs81tJFdaBiEBJVkaFrrs/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/is5GUzsKHk3Z4Q5JXTjF4Ld9p4TnEs81tJFdaBiEBJVkaFrrs/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/testnet/v1/chain/pars/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/is5GUzsKHk3Z4Q5JXTjF4Ld9p4TnEs81tJFdaBiEBJVkaFrrs/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-testnet.svc.cluster.local:9640"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/chain/2caKCdNop9C4oAPR1kYihN53HeSRDXD3JyMKS7ntfcpQYucmii/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/2caKCdNop9C4oAPR1kYihN53HeSRDXD3JyMKS7ntfcpQYucmii/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/chain/zoo/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/2caKCdNop9C4oAPR1kYihN53HeSRDXD3JyMKS7ntfcpQYucmii/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/chain/tecXMucYDxwN65mebPE6cvQ9GynG6Y5WEvwGFsY3xVDWHxiqT/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/tecXMucYDxwN65mebPE6cvQ9GynG6Y5WEvwGFsY3xVDWHxiqT/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/chain/hanzo/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/tecXMucYDxwN65mebPE6cvQ9GynG6Y5WEvwGFsY3xVDWHxiqT/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/chain/213ZsFLRCBSmrii4huQqa6S3SxYPP8ec6dPEn6ad4CtLk3RdXp/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/213ZsFLRCBSmrii4huQqa6S3SxYPP8ec6dPEn6ad4CtLk3RdXp/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/chain/spc/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/213ZsFLRCBSmrii4huQqa6S3SxYPP8ec6dPEn6ad4CtLk3RdXp/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/chain/MEGAgimfcodi7QaqCruFpTkNM6fqu7ZduLmWJJjGQwUg8uDPJ/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/MEGAgimfcodi7QaqCruFpTkNM6fqu7ZduLmWJJjGQwUg8uDPJ/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/devnet/v1/chain/pars/rpc",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"url_pattern": "/v1/chain/MEGAgimfcodi7QaqCruFpTkNM6fqu7ZduLmWJJjGQwUg8uDPJ/rpc",
|
|
"host": [
|
|
"http://luxd-headless.lux-devnet.svc.cluster.local:9650"
|
|
],
|
|
"encoding": "no-op"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"max_rate": 100,
|
|
"client_max_rate": 20,
|
|
"strategy": "ip",
|
|
"capacity": 200
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|