From dc3327083e83c4a87130ecf8cbe1767a792c9fd4 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Mon, 5 Jul 2021 14:34:43 +0200 Subject: [PATCH] fix errors --- abci/client/mocks/client.go | 2 +- abci/client/socket_client_test.go | 4 +- internal/consensus/replay_stubs.go | 5 - internal/consensus/replay_test.go | 28 +++--- internal/evidence/mocks/block_store.go | 2 +- internal/p2p/mocks/connection.go | 2 +- internal/p2p/mocks/peer.go | 2 +- internal/p2p/mocks/transport.go | 6 +- internal/statesync/mocks/state_provider.go | 6 +- light/rpc/client.go | 2 +- light/rpc/mocks/light_client.go | 2 +- proxy/mocks/app_conn_consensus.go | 2 +- proxy/mocks/app_conn_mempool.go | 2 +- proxy/mocks/app_conn_query.go | 2 +- proxy/mocks/app_conn_snapshot.go | 2 +- rpc/client/mocks/client.go | 2 +- rpc/core/blocks.go | 11 +-- rpc/core/blocks_test.go | 21 ++--- rpc/core/types/responses.go | 3 +- state/execution.go | 29 +++--- state/helpers_test.go | 15 +-- state/mocks/evidence_pool.go | 2 +- state/mocks/store.go | 44 +-------- state/state_test.go | 101 ++++++++++++--------- state/store_test.go | 20 ++-- 25 files changed, 134 insertions(+), 183 deletions(-) diff --git a/abci/client/mocks/client.go b/abci/client/mocks/client.go index ac13cdf8b..6facca875 100644 --- a/abci/client/mocks/client.go +++ b/abci/client/mocks/client.go @@ -1,4 +1,4 @@ -// Code generated by mockery 2.7.5. DO NOT EDIT. +// Code generated by mockery 2.9.0. DO NOT EDIT. package mocks diff --git a/abci/client/socket_client_test.go b/abci/client/socket_client_test.go index 3677f8a6b..98a1edeeb 100644 --- a/abci/client/socket_client_test.go +++ b/abci/client/socket_client_test.go @@ -121,7 +121,7 @@ type slowApp struct { types.BaseApplication } -func (slowApp) BeginBlock(req types.RequestBeginBlock) types.ResponseBeginBlock { +func (slowApp) FinalizeBlock(req types.RequestFinalizeBlock) types.ResponseFinalizeBlock { time.Sleep(200 * time.Millisecond) - return types.ResponseBeginBlock{} + return types.ResponseFinalizeBlock{} } diff --git a/internal/consensus/replay_stubs.go b/internal/consensus/replay_stubs.go index eae5d3b09..4461a0282 100644 --- a/internal/consensus/replay_stubs.go +++ b/internal/consensus/replay_stubs.go @@ -82,11 +82,6 @@ func (mock *mockProxyApp) FinalizeBlock(req abci.RequestFinalizeBlock) abci.Resp return *r } -func (mock *mockProxyApp) EndBlock(req abci.RequestEndBlock) abci.ResponseEndBlock { - mock.txCount = 0 - return *mock.abciResponses.EndBlock -} - func (mock *mockProxyApp) Commit() abci.ResponseCommit { return abci.ResponseCommit{Data: mock.appHash} } diff --git a/internal/consensus/replay_test.go b/internal/consensus/replay_test.go index 7c5ca3e4f..3f1ea6dd4 100644 --- a/internal/consensus/replay_test.go +++ b/internal/consensus/replay_test.go @@ -637,25 +637,27 @@ func TestMockProxyApp(t *testing.T) { abciRes.FinalizeBlock.Txs = make([]*abci.ResponseDeliverTx, len(loadedAbciRes.FinalizeBlock.Txs)) // Execute transactions and get hash. proxyCb := func(req *abci.Request, res *abci.Response) { - if r, ok := res.Value.(*abci.Response_DeliverTx); ok { - // TODO: make use of res.Log - // TODO: make use of this info - // Blocks may include invalid txs. - txRes := r.DeliverTx - if txRes.Code == abci.CodeTypeOK { - validTxs++ - } else { - logger.Debug("Invalid tx", "code", txRes.Code, "log", txRes.Log) - invalidTxs++ + if r, ok := res.Value.(*abci.Response_FinalizeBlock); ok { + for i, tx := range r.FinalizeBlock.Txs { + // TODO: make use of res.Log + // TODO: make use of this info + // Blocks may include invalid txs. + txRes := tx + if txRes.Code == abci.CodeTypeOK { + validTxs++ + } else { + logger.Debug("Invalid tx", "code", txRes.Code, "log", txRes.Log) + invalidTxs++ + } + abciRes.FinalizeBlock.Txs[i] = txRes + txIndex++ } - abciRes.FinalizeBlock.Txs[txIndex] = txRes - txIndex++ } } mock.SetResponseCallback(proxyCb) someTx := []byte("tx") - _, err = mock.FinalizeBlockAsync(context.Background(), abci.RequestFinalizeBlock{Txs: [][]byte{someTx}}) + _, err = mock.FinalizeBlockSync(context.Background(), abci.RequestFinalizeBlock{Txs: [][]byte{someTx}}) assert.NoError(t, err) }) assert.True(t, validTxs == 1) diff --git a/internal/evidence/mocks/block_store.go b/internal/evidence/mocks/block_store.go index bdf95188f..7cda611d1 100644 --- a/internal/evidence/mocks/block_store.go +++ b/internal/evidence/mocks/block_store.go @@ -1,4 +1,4 @@ -// Code generated by mockery 2.7.5. DO NOT EDIT. +// Code generated by mockery 2.9.0. DO NOT EDIT. package mocks diff --git a/internal/p2p/mocks/connection.go b/internal/p2p/mocks/connection.go index ee1f011a0..27b9c24f9 100644 --- a/internal/p2p/mocks/connection.go +++ b/internal/p2p/mocks/connection.go @@ -1,4 +1,4 @@ -// Code generated by mockery 2.7.4. DO NOT EDIT. +// Code generated by mockery 2.9.0. DO NOT EDIT. package mocks diff --git a/internal/p2p/mocks/peer.go b/internal/p2p/mocks/peer.go index e35bce414..80f8e2bf8 100644 --- a/internal/p2p/mocks/peer.go +++ b/internal/p2p/mocks/peer.go @@ -1,4 +1,4 @@ -// Code generated by mockery 2.7.5. DO NOT EDIT. +// Code generated by mockery 2.9.0. DO NOT EDIT. package mocks diff --git a/internal/p2p/mocks/transport.go b/internal/p2p/mocks/transport.go index 08ce19d0e..a96204c0c 100644 --- a/internal/p2p/mocks/transport.go +++ b/internal/p2p/mocks/transport.go @@ -1,8 +1,4 @@ -<<<<<<< HEAD:p2p/mocks/transport.go -// Code generated by mockery 2.7.5. DO NOT EDIT. -======= -// Code generated by mockery 2.7.4. DO NOT EDIT. ->>>>>>> abci++:internal/p2p/mocks/transport.go +// Code generated by mockery 2.9.0. DO NOT EDIT. package mocks diff --git a/internal/statesync/mocks/state_provider.go b/internal/statesync/mocks/state_provider.go index b04fed147..1e1ec240e 100644 --- a/internal/statesync/mocks/state_provider.go +++ b/internal/statesync/mocks/state_provider.go @@ -1,8 +1,4 @@ -<<<<<<< HEAD:statesync/mocks/state_provider.go -// Code generated by mockery 2.7.5. DO NOT EDIT. -======= -// Code generated by mockery v0.0.0-dev. DO NOT EDIT. ->>>>>>> abci++:internal/statesync/mocks/state_provider.go +// Code generated by mockery 2.9.0. DO NOT EDIT. package mocks diff --git a/light/rpc/client.go b/light/rpc/client.go index c5d44251c..5916675bd 100644 --- a/light/rpc/client.go +++ b/light/rpc/client.go @@ -409,7 +409,7 @@ func (c *Client) BlockResults(ctx context.Context, height *int64) (*ctypes.Resul // proto-encode FinalizeBlock events bbeBytes, err := proto.Marshal(&abci.ResponseFinalizeBlock{ - Events: res.BeginBlockEvents, + Events: res.FinalizeBlockEvents, }) if err != nil { return nil, err diff --git a/light/rpc/mocks/light_client.go b/light/rpc/mocks/light_client.go index 7bd0175c5..f4387a9c7 100644 --- a/light/rpc/mocks/light_client.go +++ b/light/rpc/mocks/light_client.go @@ -1,4 +1,4 @@ -// Code generated by mockery v0.0.0-dev. DO NOT EDIT. +// Code generated by mockery 2.9.0. DO NOT EDIT. package mocks diff --git a/proxy/mocks/app_conn_consensus.go b/proxy/mocks/app_conn_consensus.go index e33dffa7a..f83ca8a27 100644 --- a/proxy/mocks/app_conn_consensus.go +++ b/proxy/mocks/app_conn_consensus.go @@ -1,4 +1,4 @@ -// Code generated by mockery v0.0.0-dev. DO NOT EDIT. +// Code generated by mockery 2.9.0. DO NOT EDIT. package mocks diff --git a/proxy/mocks/app_conn_mempool.go b/proxy/mocks/app_conn_mempool.go index 02b8bea8c..445163cfd 100644 --- a/proxy/mocks/app_conn_mempool.go +++ b/proxy/mocks/app_conn_mempool.go @@ -1,4 +1,4 @@ -// Code generated by mockery v0.0.0-dev. DO NOT EDIT. +// Code generated by mockery 2.9.0. DO NOT EDIT. package mocks diff --git a/proxy/mocks/app_conn_query.go b/proxy/mocks/app_conn_query.go index 6af88ad7c..207dd5fcf 100644 --- a/proxy/mocks/app_conn_query.go +++ b/proxy/mocks/app_conn_query.go @@ -1,4 +1,4 @@ -// Code generated by mockery v0.0.0-dev. DO NOT EDIT. +// Code generated by mockery 2.9.0. DO NOT EDIT. package mocks diff --git a/proxy/mocks/app_conn_snapshot.go b/proxy/mocks/app_conn_snapshot.go index 6964a8425..a5413cc6e 100644 --- a/proxy/mocks/app_conn_snapshot.go +++ b/proxy/mocks/app_conn_snapshot.go @@ -1,4 +1,4 @@ -// Code generated by mockery v0.0.0-dev. DO NOT EDIT. +// Code generated by mockery 2.9.0. DO NOT EDIT. package mocks diff --git a/rpc/client/mocks/client.go b/rpc/client/mocks/client.go index fc69b5942..1da390f4b 100644 --- a/rpc/client/mocks/client.go +++ b/rpc/client/mocks/client.go @@ -1,4 +1,4 @@ -// Code generated by mockery 2.7.5. DO NOT EDIT. +// Code generated by mockery 2.9.0. DO NOT EDIT. package mocks diff --git a/rpc/core/blocks.go b/rpc/core/blocks.go index d57f76a99..bff1b8726 100644 --- a/rpc/core/blocks.go +++ b/rpc/core/blocks.go @@ -163,18 +163,17 @@ func (env *Environment) BlockResults(ctx *rpctypes.Context, heightPtr *int64) (* } var totalGasUsed int64 - for _, tx := range results.GetDeliverTxs() { + for _, tx := range results.FinalizeBlock.GetTxs() { totalGasUsed += tx.GetGasUsed() } return &ctypes.ResultBlockResults{ Height: height, - TxsResults: results.DeliverTxs, + TxsResults: results.FinalizeBlock.Txs, TotalGasUsed: totalGasUsed, - BeginBlockEvents: results.BeginBlock.Events, - EndBlockEvents: results.EndBlock.Events, - ValidatorUpdates: results.EndBlock.ValidatorUpdates, - ConsensusParamUpdates: results.EndBlock.ConsensusParamUpdates, + FinalizeBlockEvents: results.FinalizeBlock.Events, + ValidatorUpdates: results.FinalizeBlock.ValidatorUpdates, + ConsensusParamUpdates: results.FinalizeBlock.ConsensusParamUpdates, }, nil } diff --git a/rpc/core/blocks_test.go b/rpc/core/blocks_test.go index 70bd4c723..4e571d419 100644 --- a/rpc/core/blocks_test.go +++ b/rpc/core/blocks_test.go @@ -71,13 +71,13 @@ func TestBlockchainInfo(t *testing.T) { func TestBlockResults(t *testing.T) { results := &tmstate.ABCIResponses{ - DeliverTxs: []*abci.ResponseDeliverTx{ - {Code: 0, Data: []byte{0x01}, Log: "ok", GasUsed: 10}, - {Code: 0, Data: []byte{0x02}, Log: "ok", GasUsed: 5}, - {Code: 1, Log: "not ok", GasUsed: 0}, + FinalizeBlock: &abci.ResponseFinalizeBlock{ + Txs: []*abci.ResponseDeliverTx{ + {Code: 0, Data: []byte{0x01}, Log: "ok", GasUsed: 10}, + {Code: 0, Data: []byte{0x02}, Log: "ok", GasUsed: 5}, + {Code: 1, Log: "not ok", GasUsed: 0}, + }, }, - EndBlock: &abci.ResponseEndBlock{}, - BeginBlock: &abci.ResponseBeginBlock{}, } env := &Environment{} @@ -96,12 +96,11 @@ func TestBlockResults(t *testing.T) { {101, true, nil}, {100, false, &ctypes.ResultBlockResults{ Height: 100, - TxsResults: results.DeliverTxs, + TxsResults: results.FinalizeBlock.Txs, TotalGasUsed: 15, - BeginBlockEvents: results.BeginBlock.Events, - EndBlockEvents: results.EndBlock.Events, - ValidatorUpdates: results.EndBlock.ValidatorUpdates, - ConsensusParamUpdates: results.EndBlock.ConsensusParamUpdates, + FinalizeBlockEvents: results.FinalizeBlock.Events, + ValidatorUpdates: results.FinalizeBlock.ValidatorUpdates, + ConsensusParamUpdates: results.FinalizeBlock.ConsensusParamUpdates, }}, } diff --git a/rpc/core/types/responses.go b/rpc/core/types/responses.go index 7bf5eea09..ab9f35017 100644 --- a/rpc/core/types/responses.go +++ b/rpc/core/types/responses.go @@ -63,8 +63,7 @@ type ResultBlockResults struct { Height int64 `json:"height"` TxsResults []*abci.ResponseDeliverTx `json:"txs_results"` TotalGasUsed int64 `json:"total_gas_used"` - BeginBlockEvents []abci.Event `json:"begin_block_events"` - EndBlockEvents []abci.Event `json:"end_block_events"` + FinalizeBlockEvents []abci.Event `json:"finalize_block_events"` ValidatorUpdates []abci.ValidatorUpdate `json:"validator_updates"` ConsensusParamUpdates *tmproto.ConsensusParams `json:"consensus_param_updates"` } diff --git a/state/execution.go b/state/execution.go index 817ed4b59..afa105982 100644 --- a/state/execution.go +++ b/state/execution.go @@ -299,27 +299,28 @@ func execBlockOnProxyApp( ) (*tmstate.ABCIResponses, error) { var validTxs, invalidTxs = 0, 0 - txIndex := 0 abciResponses := new(tmstate.ABCIResponses) dtxs := make([]*abci.ResponseDeliverTx, len(block.Txs)) abciResponses.FinalizeBlock.Txs = dtxs // Execute transactions and get hash. proxyCb := func(req *abci.Request, res *abci.Response) { - if r, ok := res.Value.(*abci.Response_DeliverTx); ok { - // TODO: make use of res.Log - // TODO: make use of this info - // Blocks may include invalid txs. - txRes := r.DeliverTx - if txRes.Code == abci.CodeTypeOK { - validTxs++ - } else { - logger.Debug("invalid tx", "code", txRes.Code, "log", txRes.Log) - invalidTxs++ - } + if r, ok := res.Value.(*abci.Response_FinalizeBlock); ok { + for i, tx := range r.FinalizeBlock.Txs { - abciResponses.FinalizeBlock.Txs[txIndex] = txRes - txIndex++ + // TODO: make use of res.Log + // TODO: make use of this info + // Blocks may include invalid txs. + txRes := tx + if txRes.Code == abci.CodeTypeOK { + validTxs++ + } else { + logger.Debug("invalid tx", "code", txRes.Code, "log", txRes.Log) + invalidTxs++ + } + + abciResponses.FinalizeBlock.Txs[i] = txRes + } } } proxyAppConn.SetResponseCallback(proxyCb) diff --git a/state/helpers_test.go b/state/helpers_test.go index 970f022ed..2bd073a02 100644 --- a/state/helpers_test.go +++ b/state/helpers_test.go @@ -271,22 +271,15 @@ func (app *testApp) Info(req abci.RequestInfo) (resInfo abci.ResponseInfo) { return abci.ResponseInfo{} } -func (app *testApp) BeginBlock(req abci.RequestBeginBlock) abci.ResponseBeginBlock { +func (app *testApp) FinalizeBlock(req abci.RequestFinalizeBlock) abci.ResponseFinalizeBlock { app.CommitVotes = req.LastCommitInfo.Votes app.ByzantineValidators = req.ByzantineValidators - return abci.ResponseBeginBlock{} -} - -func (app *testApp) EndBlock(req abci.RequestEndBlock) abci.ResponseEndBlock { - return abci.ResponseEndBlock{ + return abci.ResponseFinalizeBlock{ ValidatorUpdates: app.ValidatorUpdates, ConsensusParamUpdates: &tmproto.ConsensusParams{ Version: &tmproto.VersionParams{ - AppVersion: 1}}} -} - -func (app *testApp) DeliverTx(req abci.RequestDeliverTx) abci.ResponseDeliverTx { - return abci.ResponseDeliverTx{Events: []abci.Event{}} + AppVersion: 1}}, + } } func (app *testApp) CheckTx(req abci.RequestCheckTx) abci.ResponseCheckTx { diff --git a/state/mocks/evidence_pool.go b/state/mocks/evidence_pool.go index 9cfc7b40b..9d6091cde 100644 --- a/state/mocks/evidence_pool.go +++ b/state/mocks/evidence_pool.go @@ -1,4 +1,4 @@ -// Code generated by mockery v0.0.0-dev. DO NOT EDIT. +// Code generated by mockery 2.9.0. DO NOT EDIT. package mocks diff --git a/state/mocks/store.go b/state/mocks/store.go index bf70adc86..a901a2ed1 100644 --- a/state/mocks/store.go +++ b/state/mocks/store.go @@ -1,4 +1,4 @@ -// Code generated by mockery v0.0.0-dev. DO NOT EDIT. +// Code generated by mockery 2.9.0. DO NOT EDIT. package mocks @@ -95,48 +95,6 @@ func (_m *Store) LoadConsensusParams(_a0 int64) (types.ConsensusParams, error) { return r0, r1 } -// LoadFromDBOrGenesisDoc provides a mock function with given fields: _a0 -func (_m *Store) LoadFromDBOrGenesisDoc(_a0 *types.GenesisDoc) (state.State, error) { - ret := _m.Called(_a0) - - var r0 state.State - if rf, ok := ret.Get(0).(func(*types.GenesisDoc) state.State); ok { - r0 = rf(_a0) - } else { - r0 = ret.Get(0).(state.State) - } - - var r1 error - if rf, ok := ret.Get(1).(func(*types.GenesisDoc) error); ok { - r1 = rf(_a0) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// LoadFromDBOrGenesisFile provides a mock function with given fields: _a0 -func (_m *Store) LoadFromDBOrGenesisFile(_a0 string) (state.State, error) { - ret := _m.Called(_a0) - - var r0 state.State - if rf, ok := ret.Get(0).(func(string) state.State); ok { - r0 = rf(_a0) - } else { - r0 = ret.Get(0).(state.State) - } - - var r1 error - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(_a0) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - // LoadValidators provides a mock function with given fields: _a0 func (_m *Store) LoadValidators(_a0 int64) (*types.ValidatorSet, error) { ret := _m.Called(_a0) diff --git a/state/state_test.go b/state/state_test.go index 99d45bb62..0380e8b9e 100644 --- a/state/state_test.go +++ b/state/state_test.go @@ -110,13 +110,13 @@ func TestABCIResponsesSaveLoad1(t *testing.T) { abciResponses := new(tmstate.ABCIResponses) dtxs := make([]*abci.ResponseDeliverTx, 2) - abciResponses.DeliverTxs = dtxs + abciResponses.FinalizeBlock.Txs = dtxs - abciResponses.DeliverTxs[0] = &abci.ResponseDeliverTx{Data: []byte("foo"), Events: nil} - abciResponses.DeliverTxs[1] = &abci.ResponseDeliverTx{Data: []byte("bar"), Log: "ok", Events: nil} + abciResponses.FinalizeBlock.Txs[0] = &abci.ResponseDeliverTx{Data: []byte("foo"), Events: nil} + abciResponses.FinalizeBlock.Txs[1] = &abci.ResponseDeliverTx{Data: []byte("bar"), Log: "ok", Events: nil} pbpk, err := cryptoenc.PubKeyToProto(ed25519.GenPrivKey().PubKey()) require.NoError(t, err) - abciResponses.EndBlock = &abci.ResponseEndBlock{ValidatorUpdates: []abci.ValidatorUpdate{{PubKey: pbpk, Power: 10}}} + abciResponses.FinalizeBlock = &abci.ResponseFinalizeBlock{ValidatorUpdates: []abci.ValidatorUpdate{{PubKey: pbpk, Power: 10}}} err = stateStore.SaveABCIResponses(block.Height, abciResponses) require.NoError(t, err) @@ -191,9 +191,9 @@ func TestABCIResponsesSaveLoad2(t *testing.T) { for i, tc := range cases { h := int64(i + 1) // last block height, one below what we save responses := &tmstate.ABCIResponses{ - BeginBlock: &abci.ResponseBeginBlock{}, - DeliverTxs: tc.added, - EndBlock: &abci.ResponseEndBlock{}, + FinalizeBlock: &abci.ResponseFinalizeBlock{ + Txs: tc.added, + }, } err := stateStore.SaveABCIResponses(h, responses) require.NoError(t, err) @@ -206,9 +206,9 @@ func TestABCIResponsesSaveLoad2(t *testing.T) { if assert.NoError(err, "%d", i) { t.Log(res) responses := &tmstate.ABCIResponses{ - BeginBlock: &abci.ResponseBeginBlock{}, - DeliverTxs: tc.expected, - EndBlock: &abci.ResponseEndBlock{}, + FinalizeBlock: &abci.ResponseFinalizeBlock{ + Txs: tc.added, + }, } assert.Equal(sm.ABCIResponsesResultsHash(responses), sm.ABCIResponsesResultsHash(res), "%d", i) } @@ -275,7 +275,7 @@ func TestOneValidatorChangesSaveLoad(t *testing.T) { power++ } header, blockID, responses := makeHeaderPartsResponsesValPowerChange(state, power) - validatorUpdates, err = types.PB2TM.ValidatorUpdates(responses.EndBlock.ValidatorUpdates) + validatorUpdates, err = types.PB2TM.ValidatorUpdates(responses.FinalizeBlock.ValidatorUpdates) require.NoError(t, err) state, err = sm.UpdateState(state, blockID, &header, responses, validatorUpdates) require.NoError(t, err) @@ -451,10 +451,11 @@ func TestProposerPriorityDoesNotGetResetToZero(t *testing.T) { block := sf.MakeBlock(state, state.LastBlockHeight+1, new(types.Commit)) blockID := types.BlockID{Hash: block.Hash(), PartSetHeader: block.MakePartSet(testPartSize).Header()} abciResponses := &tmstate.ABCIResponses{ - BeginBlock: &abci.ResponseBeginBlock{}, - EndBlock: &abci.ResponseEndBlock{ValidatorUpdates: nil}, + FinalizeBlock: &abci.ResponseFinalizeBlock{ + ValidatorUpdates: nil, + }, } - validatorUpdates, err := types.PB2TM.ValidatorUpdates(abciResponses.EndBlock.ValidatorUpdates) + validatorUpdates, err := types.PB2TM.ValidatorUpdates(abciResponses.FinalizeBlock.ValidatorUpdates) require.NoError(t, err) updatedState, err := sm.UpdateState(state, blockID, &block.Header, abciResponses, validatorUpdates) assert.NoError(t, err) @@ -566,10 +567,11 @@ func TestProposerPriorityProposerAlternates(t *testing.T) { blockID := types.BlockID{Hash: block.Hash(), PartSetHeader: block.MakePartSet(testPartSize).Header()} // no updates: abciResponses := &tmstate.ABCIResponses{ - BeginBlock: &abci.ResponseBeginBlock{}, - EndBlock: &abci.ResponseEndBlock{ValidatorUpdates: nil}, + FinalizeBlock: &abci.ResponseFinalizeBlock{ + ValidatorUpdates: nil, + }, } - validatorUpdates, err := types.PB2TM.ValidatorUpdates(abciResponses.EndBlock.ValidatorUpdates) + validatorUpdates, err := types.PB2TM.ValidatorUpdates(abciResponses.FinalizeBlock.ValidatorUpdates) require.NoError(t, err) updatedState, err := sm.UpdateState(state, blockID, &block.Header, abciResponses, validatorUpdates) @@ -629,7 +631,7 @@ func TestProposerPriorityProposerAlternates(t *testing.T) { updatedVal2, ) - validatorUpdates, err = types.PB2TM.ValidatorUpdates(abciResponses.EndBlock.ValidatorUpdates) + validatorUpdates, err = types.PB2TM.ValidatorUpdates(abciResponses.FinalizeBlock.ValidatorUpdates) require.NoError(t, err) updatedState3, err := sm.UpdateState(updatedState2, blockID, &block.Header, abciResponses, validatorUpdates) @@ -669,10 +671,11 @@ func TestProposerPriorityProposerAlternates(t *testing.T) { // -> proposers should alternate: oldState := updatedState3 abciResponses = &tmstate.ABCIResponses{ - BeginBlock: &abci.ResponseBeginBlock{}, - EndBlock: &abci.ResponseEndBlock{ValidatorUpdates: nil}, + FinalizeBlock: &abci.ResponseFinalizeBlock{ + ValidatorUpdates: nil, + }, } - validatorUpdates, err = types.PB2TM.ValidatorUpdates(abciResponses.EndBlock.ValidatorUpdates) + validatorUpdates, err = types.PB2TM.ValidatorUpdates(abciResponses.FinalizeBlock.ValidatorUpdates) require.NoError(t, err) oldState, err = sm.UpdateState(oldState, blockID, &block.Header, abciResponses, validatorUpdates) @@ -685,10 +688,11 @@ func TestProposerPriorityProposerAlternates(t *testing.T) { for i := 0; i < 1000; i++ { // no validator updates: abciResponses := &tmstate.ABCIResponses{ - BeginBlock: &abci.ResponseBeginBlock{}, - EndBlock: &abci.ResponseEndBlock{ValidatorUpdates: nil}, + FinalizeBlock: &abci.ResponseFinalizeBlock{ + ValidatorUpdates: nil, + }, } - validatorUpdates, err = types.PB2TM.ValidatorUpdates(abciResponses.EndBlock.ValidatorUpdates) + validatorUpdates, err = types.PB2TM.ValidatorUpdates(abciResponses.FinalizeBlock.ValidatorUpdates) require.NoError(t, err) updatedState, err := sm.UpdateState(oldState, blockID, &block.Header, abciResponses, validatorUpdates) @@ -743,10 +747,11 @@ func TestLargeGenesisValidator(t *testing.T) { for i := 0; i < 10; i++ { // no updates: abciResponses := &tmstate.ABCIResponses{ - BeginBlock: &abci.ResponseBeginBlock{}, - EndBlock: &abci.ResponseEndBlock{ValidatorUpdates: nil}, + FinalizeBlock: &abci.ResponseFinalizeBlock{ + ValidatorUpdates: nil, + }, } - validatorUpdates, err := types.PB2TM.ValidatorUpdates(abciResponses.EndBlock.ValidatorUpdates) + validatorUpdates, err := types.PB2TM.ValidatorUpdates(abciResponses.FinalizeBlock.ValidatorUpdates) require.NoError(t, err) block := sf.MakeBlock(oldState, oldState.LastBlockHeight+1, new(types.Commit)) @@ -775,8 +780,9 @@ func TestLargeGenesisValidator(t *testing.T) { validatorUpdates, err := types.PB2TM.ValidatorUpdates([]abci.ValidatorUpdate{firstAddedVal}) assert.NoError(t, err) abciResponses := &tmstate.ABCIResponses{ - BeginBlock: &abci.ResponseBeginBlock{}, - EndBlock: &abci.ResponseEndBlock{ValidatorUpdates: []abci.ValidatorUpdate{firstAddedVal}}, + FinalizeBlock: &abci.ResponseFinalizeBlock{ + ValidatorUpdates: []abci.ValidatorUpdate{firstAddedVal}, + }, } block := sf.MakeBlock(oldState, oldState.LastBlockHeight+1, new(types.Commit)) blockID := types.BlockID{Hash: block.Hash(), PartSetHeader: block.MakePartSet(testPartSize).Header()} @@ -787,10 +793,11 @@ func TestLargeGenesisValidator(t *testing.T) { for i := 0; i < 200; i++ { // no updates: abciResponses := &tmstate.ABCIResponses{ - BeginBlock: &abci.ResponseBeginBlock{}, - EndBlock: &abci.ResponseEndBlock{ValidatorUpdates: nil}, + FinalizeBlock: &abci.ResponseFinalizeBlock{ + ValidatorUpdates: nil, + }, } - validatorUpdates, err := types.PB2TM.ValidatorUpdates(abciResponses.EndBlock.ValidatorUpdates) + validatorUpdates, err := types.PB2TM.ValidatorUpdates(abciResponses.FinalizeBlock.ValidatorUpdates) require.NoError(t, err) block := sf.MakeBlock(lastState, lastState.LastBlockHeight+1, new(types.Commit)) @@ -823,8 +830,9 @@ func TestLargeGenesisValidator(t *testing.T) { assert.NoError(t, err) abciResponses := &tmstate.ABCIResponses{ - BeginBlock: &abci.ResponseBeginBlock{}, - EndBlock: &abci.ResponseEndBlock{ValidatorUpdates: []abci.ValidatorUpdate{addedVal}}, + FinalizeBlock: &abci.ResponseFinalizeBlock{ + ValidatorUpdates: []abci.ValidatorUpdate{addedVal}, + }, } block := sf.MakeBlock(oldState, oldState.LastBlockHeight+1, new(types.Commit)) blockID := types.BlockID{Hash: block.Hash(), PartSetHeader: block.MakePartSet(testPartSize).Header()} @@ -838,12 +846,13 @@ func TestLargeGenesisValidator(t *testing.T) { require.NoError(t, err) removeGenesisVal := abci.ValidatorUpdate{PubKey: gp, Power: 0} abciResponses = &tmstate.ABCIResponses{ - BeginBlock: &abci.ResponseBeginBlock{}, - EndBlock: &abci.ResponseEndBlock{ValidatorUpdates: []abci.ValidatorUpdate{removeGenesisVal}}, + FinalizeBlock: &abci.ResponseFinalizeBlock{ + ValidatorUpdates: []abci.ValidatorUpdate{removeGenesisVal}, + }, } block = sf.MakeBlock(oldState, oldState.LastBlockHeight+1, new(types.Commit)) blockID = types.BlockID{Hash: block.Hash(), PartSetHeader: block.MakePartSet(testPartSize).Header()} - validatorUpdates, err = types.PB2TM.ValidatorUpdates(abciResponses.EndBlock.ValidatorUpdates) + validatorUpdates, err = types.PB2TM.ValidatorUpdates(abciResponses.FinalizeBlock.ValidatorUpdates) require.NoError(t, err) updatedState, err = sm.UpdateState(state, blockID, &block.Header, abciResponses, validatorUpdates) require.NoError(t, err) @@ -857,10 +866,11 @@ func TestLargeGenesisValidator(t *testing.T) { isProposerUnchanged := true for isProposerUnchanged { abciResponses := &tmstate.ABCIResponses{ - BeginBlock: &abci.ResponseBeginBlock{}, - EndBlock: &abci.ResponseEndBlock{ValidatorUpdates: nil}, + FinalizeBlock: &abci.ResponseFinalizeBlock{ + ValidatorUpdates: nil, + }, } - validatorUpdates, err = types.PB2TM.ValidatorUpdates(abciResponses.EndBlock.ValidatorUpdates) + validatorUpdates, err = types.PB2TM.ValidatorUpdates(abciResponses.FinalizeBlock.ValidatorUpdates) require.NoError(t, err) block = sf.MakeBlock(curState, curState.LastBlockHeight+1, new(types.Commit)) blockID = types.BlockID{Hash: block.Hash(), PartSetHeader: block.MakePartSet(testPartSize).Header()} @@ -881,10 +891,11 @@ func TestLargeGenesisValidator(t *testing.T) { for i := 0; i < 100; i++ { // no updates: abciResponses := &tmstate.ABCIResponses{ - BeginBlock: &abci.ResponseBeginBlock{}, - EndBlock: &abci.ResponseEndBlock{ValidatorUpdates: nil}, + FinalizeBlock: &abci.ResponseFinalizeBlock{ + ValidatorUpdates: nil, + }, } - validatorUpdates, err := types.PB2TM.ValidatorUpdates(abciResponses.EndBlock.ValidatorUpdates) + validatorUpdates, err := types.PB2TM.ValidatorUpdates(abciResponses.FinalizeBlock.ValidatorUpdates) require.NoError(t, err) block := sf.MakeBlock(updatedState, updatedState.LastBlockHeight+1, new(types.Commit)) @@ -947,7 +958,7 @@ func TestManyValidatorChangesSaveLoad(t *testing.T) { // Save state etc. var validatorUpdates []*types.Validator - validatorUpdates, err = types.PB2TM.ValidatorUpdates(responses.EndBlock.ValidatorUpdates) + validatorUpdates, err = types.PB2TM.ValidatorUpdates(responses.FinalizeBlock.ValidatorUpdates) require.NoError(t, err) state, err = sm.UpdateState(state, blockID, &header, responses, validatorUpdates) require.Nil(t, err) @@ -1024,7 +1035,7 @@ func TestConsensusParamsChangesSaveLoad(t *testing.T) { cp = params[changeIndex] } header, blockID, responses := makeHeaderPartsResponsesParams(state, &cp) - validatorUpdates, err = types.PB2TM.ValidatorUpdates(responses.EndBlock.ValidatorUpdates) + validatorUpdates, err = types.PB2TM.ValidatorUpdates(responses.FinalizeBlock.ValidatorUpdates) require.NoError(t, err) state, err = sm.UpdateState(state, blockID, &header, responses, validatorUpdates) diff --git a/state/store_test.go b/state/store_test.go index 5d32040b5..5fea6e4bb 100644 --- a/state/store_test.go +++ b/state/store_test.go @@ -225,10 +225,12 @@ func TestPruneStates(t *testing.T) { require.NoError(t, err) err = stateStore.SaveABCIResponses(h, &tmstate.ABCIResponses{ - DeliverTxs: []*abci.ResponseDeliverTx{ - {Data: []byte{1}}, - {Data: []byte{2}}, - {Data: []byte{3}}, + FinalizeBlock: &abci.ResponseFinalizeBlock{ + Txs: []*abci.ResponseDeliverTx{ + {Data: []byte{1}}, + {Data: []byte{2}}, + {Data: []byte{3}}, + }, }, }) require.NoError(t, err) @@ -287,17 +289,17 @@ func TestPruneStates(t *testing.T) { func TestABCIResponsesResultsHash(t *testing.T) { responses := &tmstate.ABCIResponses{ - BeginBlock: &abci.ResponseBeginBlock{}, - DeliverTxs: []*abci.ResponseDeliverTx{ - {Code: 32, Data: []byte("Hello"), Log: "Huh?"}, + FinalizeBlock: &abci.ResponseFinalizeBlock{ + Txs: []*abci.ResponseDeliverTx{ + {Code: 32, Data: []byte("Hello"), Log: "Huh?"}, + }, }, - EndBlock: &abci.ResponseEndBlock{}, } root := sm.ABCIResponsesResultsHash(responses) // root should be Merkle tree root of DeliverTxs responses - results := types.NewResults(responses.DeliverTxs) + results := types.NewResults(responses.FinalizeBlock.Txs) assert.Equal(t, root, results.Hash()) // test we can prove first DeliverTx