fix(sim): name the api-interface on each lava-sim policy - #102
Draft
VicSheCodes wants to merge 1 commit into
Draft
fix(sim): name the api-interface on each lava-sim policy#102VicSheCodes wants to merge 1 commit into
VicSheCodes wants to merge 1 commit into
Conversation
A cross-validation policy is found by chain, interface and method together. The chart inherits chain-id from the router but not the interface, so a policy that does not name one is filed under jsonrpc. The lava-sim-rest, lava-sim-tm and lava-sim-grpc routers serve rest, tendermintrpc and grpc, so their policies were filed under an interface no request on them ever uses. Nothing matched and nothing complained. Confirmed on the deployed cluster: before this change REST and Tendermint replies carried lava-provider-address, which the router only sends when cross-validation did not run. After it they carry lava-cross-validation-status: success with agreeing providers drawn from both voting groups. Refs MAG-2791.
VicSheCodes
marked this pull request as draft
August 24, 2026 09:57
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.
#Closes MAG-2791
Why
A cross-validation policy is found by three things together: chain, interface and method. The chart
inherits
chain-idfrom the router, but not the interface:So a policy that does not name an interface is filed under
jsonrpc. Thelava-sim-rest,lava-sim-tmandlava-sim-grpcrouters serverest,tendermintrpcandgrpc, so theirpolicies sat under an interface no request on them ever uses. Nothing matched, the routers started
clean, and every request was served by a single provider.
Verified on the deployed cluster
Before: both REST and Tendermint replies carried
lava-provider-address, which the router onlysends when cross-validation did not run.
After: they carry the cross-validation headers, and the agreeing providers span both groups.
primaryprovider2is invoting-group-1andprimaryprovider3invoting-group-2, which is theacceptance criterion for this ticket.
What changed
One line per policy:
api_interface: "rest"/"tendermintrpc"/"grpc".The local k3d chart uses
$router.interfaceinstead of the default, so the same values behavedifferently there than in production. That difference is what hid this.
Not covered
gRPC could not be probed. That router refuses plain
grpc://upstreams withoutallow-insecure,which appears nowhere in the values and predates this change.