Skip to content

Commit 1526ab9

Browse files
committed
deps
1 parent 82d7143 commit 1526ab9

File tree

5 files changed

+37
-177
lines changed

5 files changed

+37
-177
lines changed

app/app.go

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,15 @@ import (
3434
"github.com/cosmos/cosmos-sdk/server"
3535
sigtypes "github.com/cosmos/cosmos-sdk/types/tx/signing"
3636
"github.com/cosmos/gogoproto/proto"
37+
blockstm "github.com/crypto-org-chain/go-block-stm"
3738

3839
"github.com/gorilla/mux"
3940
"github.com/spf13/cast"
4041

4142
"cosmossdk.io/log"
4243
abci "github.com/cometbft/cometbft/abci/types"
4344
tmos "github.com/cometbft/cometbft/libs/os"
45+
cmtproto "github.com/cometbft/cometbft/proto/tendermint/types"
4446
dbm "github.com/cosmos/cosmos-db"
4547

4648
"github.com/cosmos/cosmos-sdk/baseapp"
@@ -816,7 +818,24 @@ func NewEthermintApp(
816818
sdk.SetAddrCacheEnabled(false)
817819
workers := cast.ToInt(appOpts.Get(server.FlagBlockSTMWorkers))
818820
preEstimate := cast.ToBool(appOpts.Get(server.FlagBlockSTMPreEstimate))
819-
app.SetTxExecutor(STMTxExecutor(app.GetStoreKeys(), workers, preEstimate, app.EvmKeeper, txConfig.TxDecoder()))
821+
txDecoder := txConfig.TxDecoder()
822+
stores := app.GetStoreKeys()
823+
app.SetTxExecutor(baseapp.STMTxExecutor(stores, workers, preEstimate, txDecoder,
824+
func(txs [][]byte, workers int, txDecoder sdk.TxDecoder, ms storetypes.MultiStore) ([]sdk.Tx, []blockstm.MultiLocations) {
825+
var authStore, bankStore int
826+
index := make(map[storetypes.StoreKey]int, len(stores))
827+
for i, k := range stores {
828+
switch k.Name() {
829+
case authtypes.StoreKey:
830+
authStore = i
831+
case banktypes.StoreKey:
832+
bankStore = i
833+
}
834+
index[k] = i
835+
}
836+
evmDenom := app.EvmKeeper.GetParams(sdk.NewContext(ms, cmtproto.Header{}, false, log.NewNopLogger())).EvmDenom
837+
return preEstimates(txs, workers, authStore, bankStore, evmDenom, txDecoder)
838+
}))
820839
case "", config.BlockExecutorSequential:
821840
app.SetTxExecutor(baseapp.DefaultTxExecutor)
822841
default:

app/executor.go

Lines changed: 0 additions & 159 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,13 @@
11
package app
22

33
import (
4-
"context"
5-
"io"
64
"sync"
7-
"sync/atomic"
85

96
"cosmossdk.io/collections"
10-
"cosmossdk.io/log"
11-
"cosmossdk.io/store/cachemulti"
12-
storetypes "cosmossdk.io/store/types"
13-
abci "github.com/cometbft/cometbft/abci/types"
14-
cmtproto "github.com/cometbft/cometbft/proto/tendermint/types"
157
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
168
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
179
evmtypes "github.com/evmos/ethermint/x/evm/types"
1810

19-
"github.com/cosmos/cosmos-sdk/baseapp"
2011
sdk "github.com/cosmos/cosmos-sdk/types"
2112

2213
blockstm "github.com/crypto-org-chain/go-block-stm"
@@ -26,156 +17,6 @@ type evmKeeper interface {
2617
GetParams(ctx sdk.Context) evmtypes.Params
2718
}
2819

29-
func STMTxExecutor(
30-
stores []storetypes.StoreKey,
31-
workers int,
32-
estimate bool,
33-
evmKeeper evmKeeper,
34-
txDecoder sdk.TxDecoder,
35-
) baseapp.TxExecutor {
36-
var authStore, bankStore int
37-
index := make(map[storetypes.StoreKey]int, len(stores))
38-
for i, k := range stores {
39-
switch k.Name() {
40-
case authtypes.StoreKey:
41-
authStore = i
42-
case banktypes.StoreKey:
43-
bankStore = i
44-
}
45-
index[k] = i
46-
}
47-
return func(
48-
ctx context.Context,
49-
txs [][]byte,
50-
ms storetypes.MultiStore,
51-
deliverTxWithMultiStore func(int, sdk.Tx, storetypes.MultiStore, map[string]any) *abci.ExecTxResult,
52-
patcher baseapp.TxResponsePatcher,
53-
) ([]*abci.ExecTxResult, error) {
54-
blockSize := len(txs)
55-
if blockSize == 0 {
56-
return nil, nil
57-
}
58-
results := make([]*abci.ExecTxResult, blockSize)
59-
incarnationCache := make([]atomic.Pointer[map[string]any], blockSize)
60-
for i := 0; i < blockSize; i++ {
61-
m := make(map[string]any)
62-
incarnationCache[i].Store(&m)
63-
}
64-
65-
var (
66-
estimates []blockstm.MultiLocations
67-
memTxs []sdk.Tx
68-
)
69-
if estimate {
70-
// pre-estimation
71-
evmDenom := evmKeeper.GetParams(sdk.NewContext(ms, cmtproto.Header{}, false, log.NewNopLogger())).EvmDenom
72-
memTxs, estimates = preEstimates(txs, workers, authStore, bankStore, evmDenom, txDecoder)
73-
}
74-
75-
if err := blockstm.ExecuteBlockWithEstimates(
76-
ctx,
77-
blockSize,
78-
index,
79-
stmMultiStoreWrapper{ms},
80-
workers,
81-
estimates,
82-
func(txn blockstm.TxnIndex, ms blockstm.MultiStore) {
83-
var cache map[string]any
84-
85-
// only one of the concurrent incarnations gets the cache if there are any, otherwise execute without
86-
// cache, concurrent incarnations should be rare.
87-
v := incarnationCache[txn].Swap(nil)
88-
if v != nil {
89-
cache = *v
90-
}
91-
92-
var memTx sdk.Tx
93-
if memTxs != nil {
94-
memTx = memTxs[txn]
95-
}
96-
results[txn] = deliverTxWithMultiStore(int(txn), memTx, msWrapper{ms}, cache)
97-
98-
if v != nil {
99-
incarnationCache[txn].Store(v)
100-
}
101-
},
102-
); err != nil {
103-
return nil, err
104-
}
105-
106-
return patcher.Patch(results), nil
107-
}
108-
}
109-
110-
type msWrapper struct {
111-
blockstm.MultiStore
112-
}
113-
114-
var _ storetypes.MultiStore = msWrapper{}
115-
116-
func (ms msWrapper) getCacheWrapper(key storetypes.StoreKey) storetypes.CacheWrapper {
117-
return ms.GetStore(key)
118-
}
119-
120-
func (ms msWrapper) GetStore(key storetypes.StoreKey) storetypes.Store {
121-
return ms.MultiStore.GetStore(key)
122-
}
123-
124-
func (ms msWrapper) GetKVStore(key storetypes.StoreKey) storetypes.KVStore {
125-
return ms.MultiStore.GetKVStore(key)
126-
}
127-
128-
func (ms msWrapper) GetObjKVStore(key storetypes.StoreKey) storetypes.ObjKVStore {
129-
return ms.MultiStore.GetObjKVStore(key)
130-
}
131-
132-
func (ms msWrapper) CacheMultiStore() storetypes.CacheMultiStore {
133-
return cachemulti.NewFromParent(ms.getCacheWrapper, nil, nil)
134-
}
135-
136-
// Implements CacheWrapper.
137-
func (ms msWrapper) CacheWrap() storetypes.CacheWrap {
138-
return ms.CacheMultiStore().(storetypes.CacheWrap)
139-
}
140-
141-
// GetStoreType returns the type of the store.
142-
func (ms msWrapper) GetStoreType() storetypes.StoreType {
143-
return storetypes.StoreTypeMulti
144-
}
145-
146-
// Implements interface MultiStore
147-
func (ms msWrapper) SetTracer(io.Writer) storetypes.MultiStore {
148-
return nil
149-
}
150-
151-
// Implements interface MultiStore
152-
func (ms msWrapper) SetTracingContext(storetypes.TraceContext) storetypes.MultiStore {
153-
return nil
154-
}
155-
156-
// Implements interface MultiStore
157-
func (ms msWrapper) TracingEnabled() bool {
158-
return false
159-
}
160-
161-
type stmMultiStoreWrapper struct {
162-
storetypes.MultiStore
163-
}
164-
165-
var _ blockstm.MultiStore = stmMultiStoreWrapper{}
166-
167-
func (ms stmMultiStoreWrapper) GetStore(key storetypes.StoreKey) storetypes.Store {
168-
return ms.MultiStore.GetStore(key)
169-
}
170-
171-
func (ms stmMultiStoreWrapper) GetKVStore(key storetypes.StoreKey) storetypes.KVStore {
172-
return ms.MultiStore.GetKVStore(key)
173-
}
174-
175-
func (ms stmMultiStoreWrapper) GetObjKVStore(key storetypes.StoreKey) storetypes.ObjKVStore {
176-
return ms.MultiStore.GetObjKVStore(key)
177-
}
178-
17920
// preEstimates returns a static estimation of the written keys for each transaction.
18021
// NOTE: make sure it sync with the latest sdk logic when sdk upgrade.
18122
func preEstimates(txs [][]byte, workers, authStore, bankStore int, evmDenom string, txDecoder sdk.TxDecoder) ([]sdk.Tx, []blockstm.MultiLocations) {

go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,9 +242,9 @@ require (
242242

243243
replace (
244244
// release/v0.50.x
245-
cosmossdk.io/store => github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20241205052910-142c0afa4948
246-
cosmossdk.io/x/tx => github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20241205052910-142c0afa4948
247-
github.com/cosmos/cosmos-sdk => github.com/crypto-org-chain/cosmos-sdk v0.43.0-beta1.0.20241205052910-142c0afa4948
245+
cosmossdk.io/store => github.com/mmsqe/cosmos-sdk/store v0.0.0-20241211071648-a1364555c691
246+
cosmossdk.io/x/tx => github.com/mmsqe/cosmos-sdk/x/tx v0.0.0-20241211071648-a1364555c691
247+
github.com/cosmos/cosmos-sdk => github.com/mmsqe/cosmos-sdk v0.46.0-beta2.0.20241211071648-a1364555c691
248248
)
249249

250250
replace (

go.sum

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -410,12 +410,6 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do
410410
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
411411
github.com/crypto-org-chain/btree v0.0.0-20240406140148-2687063b042c h1:MOgfS4+FBB8cMkDE2j2VBVsbY+HCkPIu0YsJ/9bbGeQ=
412412
github.com/crypto-org-chain/btree v0.0.0-20240406140148-2687063b042c/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY=
413-
github.com/crypto-org-chain/cosmos-sdk v0.43.0-beta1.0.20241205052910-142c0afa4948 h1:hX86EeDInLGJnWIR3PZ5ymp6/xaHtk+8E5pA9ZuwEfs=
414-
github.com/crypto-org-chain/cosmos-sdk v0.43.0-beta1.0.20241205052910-142c0afa4948/go.mod h1:JwwsMeZldLN20b72mmbWPY0EV9rs+v/12hRu1JFttvY=
415-
github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20241205052910-142c0afa4948 h1:3GPO2XItxofWxxj2exoaz9Ki+cixakumachnqHvmLHQ=
416-
github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20241205052910-142c0afa4948/go.mod h1:8DwVTz83/2PSI366FERGbWSH7hL6sB7HbYp8bqksNwM=
417-
github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20241205052910-142c0afa4948 h1:lb8Mztnt2bpCowKbZMHosyQtXN0QtX/MITH9y5DVNkU=
418-
github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20241205052910-142c0afa4948/go.mod h1:V6DImnwJMTq5qFjeGWpXNiT/fjgE4HtmclRmTqRVM3w=
419413
github.com/crypto-org-chain/go-block-stm v0.0.0-20240919080136-6c49aef68716 h1:OvD5Rm0B6LHUJk6z858UgwdP72jU2DuUdXeclRyKpDI=
420414
github.com/crypto-org-chain/go-block-stm v0.0.0-20240919080136-6c49aef68716/go.mod h1:iwQTX9xMX8NV9k3o2BiWXA0SswpsZrDk5q3gA7nWYiE=
421415
github.com/crypto-org-chain/go-ethereum v1.10.20-0.20241030073450-b9cc632bc183 h1:JDBTqDkd9X9oBF2C4FKOpn0GVDQDzVkHzeS8eDWNl6A=
@@ -873,6 +867,12 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua
873867
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
874868
github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A=
875869
github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4=
870+
github.com/mmsqe/cosmos-sdk v0.46.0-beta2.0.20241211071648-a1364555c691 h1:dsHxkRgPYkpvULAmatJuZestt/AR6g3B9MMnlgJfbG0=
871+
github.com/mmsqe/cosmos-sdk v0.46.0-beta2.0.20241211071648-a1364555c691/go.mod h1:u+LHV+8Y4uVyVbAGNxWjLYuP3vYXVqTJCk0dx3uC0pM=
872+
github.com/mmsqe/cosmos-sdk/store v0.0.0-20241211071648-a1364555c691 h1:b2RwVoB5zHr+GqrPGiVe3mVxFwEaOPwUIVIxb8DAL+w=
873+
github.com/mmsqe/cosmos-sdk/store v0.0.0-20241211071648-a1364555c691/go.mod h1:8DwVTz83/2PSI366FERGbWSH7hL6sB7HbYp8bqksNwM=
874+
github.com/mmsqe/cosmos-sdk/x/tx v0.0.0-20241211071648-a1364555c691 h1:iMghgVFWtj/BgTluwUcN9sHXxnbPsktiWVM5Wl8ImWk=
875+
github.com/mmsqe/cosmos-sdk/x/tx v0.0.0-20241211071648-a1364555c691/go.mod h1:V6DImnwJMTq5qFjeGWpXNiT/fjgE4HtmclRmTqRVM3w=
876876
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
877877
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
878878
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=

gomod2nix.toml

Lines changed: 8 additions & 8 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)