api.lux.network answers from the node that holds the real chain
Both lux-api rules now send to luxd-rpc, the Service that selects the sync node, and not to lux-chain, whose hand-made EndpointSlice named the five docker validators on evo. Those five were a fork of mainnet -- same genesis, a different block 1, real transactions on both sides -- and they are stopped. Serving a partially imported real chain beats serving a complete wrong one. bc-path rewrites /v1/chain/c/... to /v1/bc/C/... because the sync node is on luxd v1.36.148, which serves the EVM at the old path, while every caller of api.lux.network speaks the /v1/chain path that v1.36.181 serves. It is the one thing to delete when the node moves to .181. Recorded here and applied live by hand: lux-mainnet-luxd has never been synced, and syncing it now would stand a second luxd beside the hand-applied sync StatefulSet. When that app is adopted, it carries this route. Co-authored-by: Hanzo Dev <[email protected]>
This commit is contained in:
@@ -803,3 +803,48 @@ workload:
|
||||
# moved to the chart (pods now say `Helm`), so it matched ZERO pods and reported
|
||||
# expectedPods=0 for 162 days. Corrected 2026-08-06 to
|
||||
# {name: luxd, component: validator} — verified selecting exactly 5.
|
||||
|
||||
# api.lux.network. Both rules send to luxd-rpc, the Service that selects the
|
||||
# sync node -- the one holding the real chain -- and not to `lux-chain`, a
|
||||
# selector-less Service whose hand-made EndpointSlice named the five docker
|
||||
# validators on evo. Those five were a fork: same genesis, different block 1,
|
||||
# real transactions on both sides; the divergence only shows above block 0.
|
||||
# They are stopped and stay stopped.
|
||||
#
|
||||
# bc-path exists because this node is on luxd v1.36.148, which serves the EVM
|
||||
# at /v1/bc/C/rpc, while everything that calls api.lux.network -- the gateway's
|
||||
# route table, the explorer, the traffic sender -- speaks /v1/chain/c/rpc, the
|
||||
# path v1.36.181 serves. The rewrite holds the public contract steady until the
|
||||
# node moves to .181; delete bc-path on that day and nothing else changes.
|
||||
middlewares:
|
||||
- name: bc-path
|
||||
spec:
|
||||
replacePathRegex:
|
||||
regex: "^/v1/chain/[cC](/.*)?$"
|
||||
replacement: "/v1/bc/C$1"
|
||||
- name: c-chain
|
||||
spec:
|
||||
replacePath:
|
||||
path: /v1/bc/C/rpc
|
||||
routes:
|
||||
- name: lux-api
|
||||
spec:
|
||||
entryPoints: [websecure]
|
||||
routes:
|
||||
- match: (Host(`api.lux.network`) || Host(`api.lux.cloud`)) && PathPrefix(`/v1/chain`)
|
||||
kind: Rule
|
||||
priority: 300
|
||||
middlewares:
|
||||
- name: bc-path
|
||||
services:
|
||||
- name: luxd-rpc
|
||||
port: 9630
|
||||
- match: (Host(`api.lux.network`) || Host(`api.lux.cloud`)) && Path(`/`)
|
||||
kind: Rule
|
||||
priority: 310
|
||||
middlewares:
|
||||
- name: c-chain
|
||||
services:
|
||||
- name: luxd-rpc
|
||||
port: 9630
|
||||
tls: {}
|
||||
|
||||
Reference in New Issue
Block a user