From b32b4a719be629b460d3fe3753ea8a8c1cbbf1f7 Mon Sep 17 00:00:00 2001 From: William Banfield Date: Mon, 14 Feb 2022 17:10:15 -0500 Subject: [PATCH] wip --- internal/consensus/state.go | 2 +- internal/state/execution.go | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/internal/consensus/state.go b/internal/consensus/state.go index eb5fb65f1..b355905aa 100644 --- a/internal/consensus/state.go +++ b/internal/consensus/state.go @@ -1516,7 +1516,7 @@ func (cs *State) defaultDoPrevote(ctx context.Context, height int64, round int32 liveness properties. Please see `PrepareProosal`-`ProcessProposal` coherence and determinism properties in the ABCI++ specification. */ - stateMachineValidBlock, err := cs.blockExec.ProcessProposal(ctx, cs.ProposalBlock) + stateMachineValidBlock, err := cs.blockExec.ProcessProposal(ctx, cs.ProposalBlock, cs.state.InitialHeight) if err != nil { panic(fmt.Sprintf( "state machine returned an error (%v) when calling ProcessProposal", err, diff --git a/internal/state/execution.go b/internal/state/execution.go index 6da7060a8..0b55f6347 100644 --- a/internal/state/execution.go +++ b/internal/state/execution.go @@ -151,10 +151,19 @@ func (blockExec *BlockExecutor) CreateProposalBlock( func (blockExec *BlockExecutor) ProcessProposal( ctx context.Context, block *types.Block, + initialHeight int64, ) (bool, error) { + ep, err := block.Evidence.ToProto() + if err != nil { + return false, err + } + req := abci.RequestProcessProposal{ - Txs: block.Data.Txs.ToSliceOfBytes(), - Header: *block.Header.ToProto(), + Hash: block.Header.Hash(), + Header: *block.Header.ToProto(), + Txs: block.Data.Txs.ToSliceOfBytes(), + LastCommitInfo: getBeginBlockValidatorInfo(block, blockExec.store, initialHeight), + ByzantineValidators: ep.Evidence, } resp, err := blockExec.proxyApp.ProcessProposal(ctx, req)