Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consensus failure when using Stride and interchaintest #1056

Closed
rootulp opened this issue Apr 8, 2024 · 4 comments
Closed

Consensus failure when using Stride and interchaintest #1056

rootulp opened this issue Apr 8, 2024 · 4 comments

Comments

@rootulp
Copy link
Contributor

rootulp commented Apr 8, 2024

Context

I'm trying to test ICA on Celestia via interchaintest. The counterparty chain I'm using is Stride with the config:

var Stride = &interchaintest.ChainSpec{
	Name: "stride",
	ChainConfig: ibc.ChainConfig{
		Type:    "cosmos",
		Name:    "stride",
		ChainID: "stride-1",
		Images: []ibc.DockerImage{{
			Repository: "ghcr.io/strangelove-ventures/heighliner/stride",
			Version:    "v21.0.0",
			UidGid:     "1025:1025",
		}},
		Bin:            "strided",
		Bech32Prefix:   "stride",
		Denom:          "ustrd",
		GasPrices:      "0.0ustrd",
		GasAdjustment:  1.1,
	},
	NumFullNodes:  numFullNodes(),
	NumValidators: numValidators(),
}

When I start the chain, I observe this error in Docker logs on the Stride container:

2024-04-07 22:03:02 2:03AM ERR CONSENSUS FAILURE!!! err="Expected signing info for validator stridevalcons1k852h4kc9n4yghjrx5kvpr40aw9zalcdl8ksz7 but not found" module=consensus stack="goroutine 41 [running]:\nruntime/debug.Stack()\n\truntime/debug/stack.go:24 +0x64\ngithub.com/cometbft/cometbft/consensus.(*State).receiveRoutine.func2()\n\tgithub.com/cometbft/cometbft@v0.37.4/consensus/state.go:736 +0x44\npanic({0x2db8de0?, 0x4001783e40?})\n\truntime/panic.go:914 +0x218\ngithub.com/cosmos/cosmos-sdk/x/slashing/keeper.Keeper.HandleValidatorSignature({{_, _}, {_, _}, _, {_, _}, {_, _}}, {{0x534c750, ...}, ...}, ...)\n\tgithub.com/cosmos/cosmos-sdk@v0.47.10/x/slashing/keeper/infractions.go:28 +0x1920\ngithub.com/cosmos/cosmos-sdk/x/slashing.BeginBlocker({{0x534c750, 0x6f38a60}, {0x5364230, 0x40034a4000}, {{0xb, 0x0}, {0x4000cc86f0, 0x8}, 0x2, {0x2f2d89f8, ...}, ...}, ...}, ...)\n\tgithub.com/cosmos/cosmos-sdk@v0.47.10/x/slashing/abci.go:23 +0x120\ngithub.com/cosmos/cosmos-sdk/x/slashing.AppModule.BeginBlock(...)\n\tgithub.com/cosmos/cosmos-sdk@v0.47.10/x/slashing/module.go:174\ngithub.com/cosmos/cosmos-sdk/types/module.(*Manager).BeginBlock(_, {{0x534c750, 0x6f38a60}, {0x5364230, 0x40034a4000}, {{0xb, 0x0}, {0x4000cc86f0, 0x8}, 0x2, ...}, ...}, ...)\n\tgithub.com/cosmos/cosmos-sdk@v0.47.10/types/module/module.go:562 +0x134\ngithub.com/Stride-Labs/stride/v21/app.(*StrideApp).BeginBlocker(...)\n\tgithub.com/Stride-Labs/stride/v21/app/app.go:1119\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).BeginBlock(_, {{0x400348cb00, 0x20, 0x20}, {{0xb, 0x0}, {0x4000cc86f0, 0x8}, 0x2, {0x2f2d89f8, ...}, ...}, ...})\n\tgithub.com/cosmos/cosmos-sdk@v0.47.10/baseapp/abci.go:196 +0x658\ngithub.com/cometbft/cometbft/abci/client.(*localClient).BeginBlockSync(_, {{0x400348cb00, 0x20, 0x20}, {{0xb, 0x0}, {0x4000cc86f0, 0x8}, 0x2, {0x2f2d89f8, ...}, ...}, ...})\n\tgithub.com/cometbft/cometbft@v0.37.4/abci/client/local_client.go:283 +0x104\ngithub.com/cometbft/cometbft/proxy.(*appConnConsensus).BeginBlockSync(_, {{0x400348cb00, 0x20, 0x20}, {{0xb, 0x0}, {0x4000cc86f0, 0x8}, 0x2, {0x2f2d89f8, ...}, ...}, ...})\n\tgithub.com/cometbft/cometbft@v0.37.4/proxy/app_conn.go:101 +0x138\ngithub.com/cometbft/cometbft/state.execBlockOnProxyApp({0x534c788?, 0x4000a00f20}, {0x53605a0, 0x4000d270b0}, 0x40005d12c0, {0x5364be8, 0x40013a4258}, 0x1?)\n\tgithub.com/cometbft/cometbft@v0.37.4/state/execution.go:363 +0x3d8\ngithub.com/cometbft/cometbft/state.(*BlockExecutor).ApplyBlock(_, {{{0xb, 0x0}, {0x400076fc0a, 0x6}}, {0x400076fc40, 0x8}, 0x1, 0x1, {{0x4001093700, ...}, ...}, ...}, ...)\n\tgithub.com/cometbft/cometbft@v0.37.4/state/execution.go:197 +0xfc\ngithub.com/cometbft/cometbft/consensus.(*State).finalizeCommit(0x400079e000, 0x2)\n\tgithub.com/cometbft/cometbft@v0.37.4/consensus/state.go:1710 +0x8d8\ngithub.com/cometbft/cometbft/consensus.(*State).tryFinalizeCommit(0x400079e000, 0x2)\n\tgithub.com/cometbft/cometbft@v0.37.4/consensus/state.go:1619 +0x26c\ngithub.com/cometbft/cometbft/consensus.(*State).enterCommit.func1()\n\tgithub.com/cometbft/cometbft@v0.37.4/consensus/state.go:1554 +0x8c\ngithub.com/cometbft/cometbft/consensus.(*State).enterCommit(0x400079e000, 0x2, 0x0)\n\tgithub.com/cometbft/cometbft@v0.37.4/consensus/state.go:1592 +0xaf4\ngithub.com/cometbft/cometbft/consensus.(*State).addVote(0x400079e000, 0x40017950e0, {0x0, 0x0})\n\tgithub.com/cometbft/cometbft@v0.37.4/consensus/state.go:2223 +0x159c\ngithub.com/cometbft/cometbft/consensus.(*State).tryAddVote(0x400079e000, 0x40017950e0, {0x0?, 0x54ac00?})\n\tgithub.com/cometbft/cometbft@v0.37.4/consensus/state.go:2012 +0x28\ngithub.com/cometbft/cometbft/consensus.(*State).handleMsg(0x400079e000, {{0x5321400, 0x40000169b8}, {0x0, 0x0}})\n\tgithub.com/cometbft/cometbft@v0.37.4/consensus/state.go:865 +0x32c\ngithub.com/cometbft/cometbft/consensus.(*State).receiveRoutine(0x400079e000, 0x0)\n\tgithub.com/cometbft/cometbft@v0.37.4/consensus/state.go:792 +0x348\ncreated by github.com/cometbft/cometbft/consensus.(*State).OnStart in goroutine 50\n\tgithub.com/cometbft/cometbft@v0.37.4/consensus/state.go:383 +0xf0\n"

Question

Do I need to perform some additional step prior to launching the Stride container?

@jtieri
Copy link
Member

jtieri commented Apr 9, 2024

hey @rootulp the error looks to be related to interchain security. Stride will need to be spun up with the provider chain, you can find an example of what that looks like here

@rootulp
Copy link
Contributor Author

rootulp commented Apr 9, 2024

Celestia is on ibc-go v6 so we're using v6 of interchaintest. It looks like AddProviderConsumerLink doesn't exist on v6. Can #385 be backported to v6 or is strictly a v7+ feature?

@rootulp
Copy link
Contributor Author

rootulp commented Apr 9, 2024

Hmm I think I can circumvent using interchain security via: strided add-consumer-section (example). I'll try that 🤞

@jtieri
Copy link
Member

jtieri commented Apr 9, 2024

Celestia is on ibc-go v6 so we're using v6 of interchaintest. It looks like AddProviderConsumerLink doesn't exist on v6. Can #385 be backported to v6 or is strictly a v7+ feature?

If i had to guess i would say there was probably a dependency blocker on introducing interchain security to the v6 branch and then by the time there was a new release of interchain security with compatible dependencies we may have already deprecated the branch. We only promise support for the current main branch and the previous version.

If you wanted to backport the changes necessary to use interchain security on the v6 branch i would gladly review a PR!

@rootulp rootulp closed this as not planned Won't fix, can't repro, duplicate, stale Apr 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants