Skip to content

Full Node Crashes with Different Proposer Address on Contract Deployment #17

@khalifaT

Description

@khalifaT

Description

When deploying a contract to a full node synced with our sequencer, the node crashes with a panic. While simple transfer transactions work fine, contract deployment fails with an error indicating the validator does not exist for a particular consensus address.
Error Message

goroutine 361 [running]: github.com/rollkit/rollkit/block.(*Manager).trySyncNextBlock(0xc001367800, {0x935a710, 0xc0028a0500}, 0x51c691)
/home/root/go/pkg/mod/github.com/rollkit/[email protected]/block/manager.go:548 +0x81c
ERR Transaction verification failed error="failed to get evm config from context: failed to obtain coinbase address: failed to retrieve validator from block proposer address artvalcons1cmgs93cgwmhpzwdyvw80zm4av20jdrvgh9lz8f: validator does not exist [artela-rollkit/x/evm/keeper/proposer.go:16]" module=server

Investigation
I've added logging to print the proposerAddress inside the EVM config.
The issue appears in:

Key Finding
Most log messages show the correct sequencer address, matching the sequencer logs. However, the last message shows a different validator address, which causes the error.
Hypothesis
The GetProposerAddress function in the code takes a parameter (proposerAddress) but should potentially be retrieving the consensus address . For some reason, during contract deployment, the function is being called with an incorrect validator address that doesn't exist in the registry.

Reproduction Steps

  • Deploy a full node with the sequencer
  • Sync the node (transfer transactions work fine)
  • Attempt to deploy a contract
  • Node crashes with the validator error

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions