From 8cff79943b4ba72bf2c4399d62aca0898adfe83b Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Mon, 17 Oct 2022 10:41:39 -0400 Subject: [PATCH 01/25] Add AnteHandler access ops --- aclmapping/utils/identifier_templates.go | 4 +++- aclmapping/wasm/mappings.go | 4 +--- app/abci.go | 10 ++++---- app/ante.go | 4 ++-- app/antedecorators/gasless.go | 27 ++++++++++++++++++++++ app/app.go | 12 +++++++++- go.mod | 6 ++--- go.sum | 11 +++++---- x/oracle/ante.go | 29 +++++++++++++++++++++++- 9 files changed, 86 insertions(+), 21 deletions(-) diff --git a/aclmapping/utils/identifier_templates.go b/aclmapping/utils/identifier_templates.go index 64685af380..1dd5ffdca9 100644 --- a/aclmapping/utils/identifier_templates.go +++ b/aclmapping/utils/identifier_templates.go @@ -1,6 +1,8 @@ package util -import "fmt" +import ( + "fmt" +) const ( ACCOUNT = "acc" diff --git a/aclmapping/wasm/mappings.go b/aclmapping/wasm/mappings.go index 4dc3d1d1e2..44cc78465b 100644 --- a/aclmapping/wasm/mappings.go +++ b/aclmapping/wasm/mappings.go @@ -47,8 +47,6 @@ func (wasmDepGen WasmDependencyGenerator) WasmExecuteContractGenerator(keeper ac if err != nil { return []sdkacltypes.AccessOperation{}, err } - contractInfo := wasmDepGen.WasmKeeper.GetContractInfo(ctx, contractAddr) - codeID := contractInfo.CodeID jsonObj := make(map[string]interface{}) jsonErr := json.Unmarshal(executeContractMsg.Msg, &jsonObj) @@ -68,7 +66,7 @@ func (wasmDepGen WasmDependencyGenerator) WasmExecuteContractGenerator(keeper ac wasmFunction = fieldName } } - wasmDependencyMapping, err := keeper.GetWasmFunctionDependencyMapping(ctx, codeID, wasmFunction) + wasmDependencyMapping, err := keeper.GetWasmDependencyMapping(ctx, contractAddr) if err != nil { return []sdkacltypes.AccessOperation{}, err } diff --git a/app/abci.go b/app/abci.go index 10a841bd1e..bcaf0de3d6 100644 --- a/app/abci.go +++ b/app/abci.go @@ -34,11 +34,11 @@ func (app *App) CheckTx(ctx context.Context, req *abci.RequestCheckTx) (*abci.Re func (app *App) DeliverTx(ctx sdk.Context, req abci.RequestDeliverTx) abci.ResponseDeliverTx { defer metrics.MeasureDeliverTxDuration(time.Now()) - // tracectx, span := (*app.tracingInfo.Tracer).Start(app.tracingInfo.TracerContext, "DeliverTx") - // oldCtx := app.tracingInfo.TracerContext - // app.tracingInfo.TracerContext = tracectx - // defer span.End() - // defer func() { app.tracingInfo.TracerContext = oldCtx }() + tracectx, span := (*app.tracingInfo.Tracer).Start(app.tracingInfo.TracerContext, "DeliverTx") + oldCtx := app.tracingInfo.TracerContext + app.tracingInfo.TracerContext = tracectx + defer span.End() + defer func() { app.tracingInfo.TracerContext = oldCtx }() return app.BaseApp.DeliverTx(ctx, req) } diff --git a/app/ante.go b/app/ante.go index 6761c0b2da..e93a5068a1 100644 --- a/app/ante.go +++ b/app/ante.go @@ -73,8 +73,8 @@ func NewAnteHandlerAndDepGenerator(options HandlerOptions) (sdk.AnteHandler, sdk sdk.DefaultWrappedAnteDecorator(ante.NewValidateBasicDecorator()), sdk.DefaultWrappedAnteDecorator(ante.NewTxTimeoutHeightDecorator()), sdk.DefaultWrappedAnteDecorator(ante.NewValidateMemoDecorator(options.AccountKeeper)), - sdk.CustomDepWrappedAnteDecorator(ante.NewConsumeGasForTxSizeDecorator(options.AccountKeeper), depdecorators.SignerDepDecorator{ReadOnly: true}), - sdk.DefaultWrappedAnteDecorator(ante.NewDeductFeeDecorator(options.AccountKeeper, options.BankKeeper, options.FeegrantKeeper, options.TxFeeChecker)), + ante.NewConsumeGasForTxSizeDecorator(options.AccountKeeper), + ante.NewDeductFeeDecorator(options.AccountKeeper, options.BankKeeper, options.FeegrantKeeper, options.TxFeeChecker), // PriorityDecorator must be called after DeductFeeDecorator which sets tx priority based on tx fees sdk.DefaultWrappedAnteDecorator(antedecorators.NewPriorityDecorator()), // SetPubKeyDecorator must be called before all signature verification decorators diff --git a/app/antedecorators/gasless.go b/app/antedecorators/gasless.go index fb413ec158..5b299b3b91 100644 --- a/app/antedecorators/gasless.go +++ b/app/antedecorators/gasless.go @@ -4,6 +4,8 @@ import ( "bytes" sdk "github.com/cosmos/cosmos-sdk/types" + sdkacltypes "github.com/cosmos/cosmos-sdk/types/accesscontrol" + aclutils "github.com/sei-protocol/sei-chain/aclmapping/utils" dextypes "github.com/sei-protocol/sei-chain/x/dex/types" oraclekeeper "github.com/sei-protocol/sei-chain/x/oracle/keeper" oracletypes "github.com/sei-protocol/sei-chain/x/oracle/types" @@ -38,6 +40,31 @@ func (gd GaslessDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, return next(ctx.WithGasMeter(gaslessMeter), tx, simulate) } +func (gd GaslessDecorator) AnteDeps(txDeps []sdkacltypes.AccessOperation, tx sdk.Tx, next sdk.AnteDepGenerator) (newTxDeps []sdkacltypes.AccessOperation, err error) { + deps := []sdkacltypes.AccessOperation{} + for _, msg := range tx.GetMsgs() { + // Error checking will be handled in AnteHandler + switch m := msg.(type) { + case *oracletypes.MsgAggregateExchangeRatePrevote: + feederAddr, _ := sdk.AccAddressFromBech32(m.Feeder) + valAddr, _ := sdk.ValAddressFromBech32(m.Validator) + deps = append(deps, aclutils.GetOracleReadAccessOpsForValAndFeeder(feederAddr, valAddr)...) + case *oracletypes.MsgAggregateExchangeRateVote: + feederAddr, _ := sdk.AccAddressFromBech32(m.Feeder) + valAddr, _ := sdk.ValAddressFromBech32(m.Validator) + deps = append(deps, aclutils.GetOracleReadAccessOpsForValAndFeeder(feederAddr, valAddr)...) + case *oracletypes.MsgAggregateExchangeRateCombinedVote: + feederAddr, _ := sdk.AccAddressFromBech32(m.Feeder) + valAddr, _ := sdk.ValAddressFromBech32(m.Validator) + deps = append(deps, aclutils.GetOracleReadAccessOpsForValAndFeeder(feederAddr, valAddr)...) + default: + continue + } + } + + return next(append(txDeps, deps...), tx) +} + func isTxGasless(tx sdk.Tx, ctx sdk.Context, oracleKeeper oraclekeeper.Keeper) bool { if len(tx.GetMsgs()) == 0 { // empty TX shouldn't be gasless diff --git a/app/app.go b/app/app.go index 7f9937622c..6e264b3a99 100644 --- a/app/app.go +++ b/app/app.go @@ -986,7 +986,9 @@ func (app *App) ProcessTxConcurrent( ctx = ctx.WithTxCompletionChannels(getChannelsFromSignalMapping(txCompletionSignalingMap)) // Deliver the transaction and store the result in the channel + resultChan <- ChannelResult{txIndex, app.DeliverTxWithResult(ctx, txBytes)} + ctx.Logger().Info(fmt.Sprintf("Processed TxIndex=%d", txIndex)) metrics.IncrTxProcessTypeCounter(metrics.CONCURRENT) } @@ -1007,6 +1009,7 @@ func (app *App) ProcessBlockConcurrent( return txResults } + ctx.Logger().Info(fmt.Sprintf("Processing Tx Count=%d", len(txs))) // For each transaction, start goroutine and deliver TX for txIndex, txBytes := range txs { waitGroup.Add(1) @@ -1032,6 +1035,7 @@ func (app *App) ProcessBlockConcurrent( // Gather Results and store it based on txIndex and read results from channel // Concurrent results may be in different order than the original txIndex txResultsMap := map[int]*abci.ExecTxResult{} + ctx.Logger().Info("Waiting for TXs to return") for result := range resultChan { txResultsMap[result.txIndex] = result.result } @@ -1086,6 +1090,7 @@ func (app *App) ProcessBlock(ctx sdk.Context, txs [][]byte, req BlockProcessRequ // app.batchVerifier.VerifyTxs(ctx, typedTxs) dependencyDag, err := app.AccessControlKeeper.BuildDependencyDag(ctx, app.txDecoder, app.GetAnteDepGenerator(), txs) + var txResults []*abci.ExecTxResult switch err { @@ -1097,8 +1102,8 @@ func (app *App) ProcessBlock(ctx sdk.Context, txs [][]byte, req BlockProcessRequ // deterministic ordering between validators in the case of concurrent deliverTXs processBlockCtx, processBlockCache := app.CacheContext(ctx) txResults = app.ProcessBlockConcurrent(processBlockCtx, txs, dependencyDag.CompletionSignalingMap, dependencyDag.BlockingSignalsMap) + // Finalize all Bank Module Transfers here so that events are included // Write the results back to the concurrent contexts - ctx.Logger().Info("ProcessBlock:Writing processBlockCtx") processBlockCache.Write() case acltypes.ErrGovMsgInBlock: ctx.Logger().Info(fmt.Sprintf("Gov msg found while building DAG, processing synchronously: %s", err)) @@ -1110,9 +1115,14 @@ func (app *App) ProcessBlock(ctx sdk.Context, txs [][]byte, req BlockProcessRequ metrics.IncrDagBuildErrorCounter(metrics.FailedToBuild) } + lazyWriteEvents := app.BankKeeper.WriteLazyDepositsToModuleAccounts(ctx) + + events = append(events, lazyWriteEvents...) + endBlockResp := app.EndBlock(ctx, abci.RequestEndBlock{ Height: req.GetHeight(), }) + events = append(events, endBlockResp.Events...) return events, txResults, endBlockResp, nil diff --git a/go.mod b/go.mod index 2a4dbda7a0..beceb029c6 100644 --- a/go.mod +++ b/go.mod @@ -88,7 +88,7 @@ require ( github.com/lib/pq v1.10.6 // indirect github.com/libp2p/go-buffer-pool v0.0.2 // indirect github.com/magiconair/properties v1.8.6 // indirect - github.com/mattn/go-isatty v0.0.14 // indirect + github.com/mattn/go-isatty v0.0.16 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect @@ -122,7 +122,7 @@ require ( golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 // indirect golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e // indirect golang.org/x/sync v0.0.0-20220513210516-0976fa681c29 // indirect - golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d // indirect + golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab // indirect golang.org/x/term v0.0.0-20220411215600-e5f449aeb171 // indirect golang.org/x/text v0.3.7 // indirect gopkg.in/ini.v1 v1.66.4 // indirect @@ -131,7 +131,7 @@ require ( ) replace ( - github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.114 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.160 github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/keybase/go-keychain => github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 github.com/tendermint/tendermint => github.com/sei-protocol/sei-tendermint v0.1.59 diff --git a/go.sum b/go.sum index 855691039a..4518cdd4f0 100644 --- a/go.sum +++ b/go.sum @@ -809,8 +809,9 @@ github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= @@ -1097,8 +1098,8 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/securego/gosec/v2 v2.11.0/go.mod h1:SX8bptShuG8reGC0XS09+a4H2BoWSJi+fscA+Pulbpo= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= -github.com/sei-protocol/sei-cosmos v0.1.114 h1:Cy5MnBdvql5VJw5pC104DsivQxPg0xkvVOuq6VwDiRk= -github.com/sei-protocol/sei-cosmos v0.1.114/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= +github.com/sei-protocol/sei-cosmos v0.1.160 h1:xyEAM2EiszLas1gSUB5jpj/R8zrHFV5hVMQtayZHcBU= +github.com/sei-protocol/sei-cosmos v0.1.160/go.mod h1:Xl+SxpPz/vprq7RQpRYLup1/lePi269T/s/m4rfTwgs= github.com/sei-protocol/sei-tendermint v0.1.59 h1:POGL60PumMQHF4EzAHzvkGfDnodQJLHpl65LuiwSO/Y= github.com/sei-protocol/sei-tendermint v0.1.59/go.mod h1:Olwbjyagrpoxj5DAUhHxMTWDVEfQ3FYdpypaJ3+6Hs8= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= @@ -1631,8 +1632,8 @@ golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d h1:Zu/JngovGLVi6t2J3nmAf3AoTDwuzw85YZ3b9o4yU7s= -golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab h1:2QkjZIsXupsJbJIdSjjUOgWK3aEtzyuh2mPt3l/CkeU= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= diff --git a/x/oracle/ante.go b/x/oracle/ante.go index 37fcf2feb8..2515ef11f2 100644 --- a/x/oracle/ante.go +++ b/x/oracle/ante.go @@ -4,8 +4,10 @@ import ( "sync" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + sdkacltypes "github.com/cosmos/cosmos-sdk/types/accesscontrol" + aclutils "github.com/sei-protocol/sei-chain/aclmapping/utils" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/sei-protocol/sei-chain/x/oracle/keeper" "github.com/sei-protocol/sei-chain/x/oracle/types" ) @@ -47,6 +49,31 @@ func (spd SpammingPreventionDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, si return next(ctx, tx, simulate) } +func (spd SpammingPreventionDecorator) AnteDeps(txDeps []sdkacltypes.AccessOperation, tx sdk.Tx, next sdk.AnteDepGenerator) (newTxDeps []sdkacltypes.AccessOperation, err error) { + deps := []sdkacltypes.AccessOperation{} + for _, msg := range tx.GetMsgs() { + // Error checking will be handled in AnteHandler + switch m := msg.(type) { + case *types.MsgAggregateExchangeRatePrevote: + feederAddr, _ := sdk.AccAddressFromBech32(m.Feeder) + valAddr, _ := sdk.ValAddressFromBech32(m.Validator) + deps = append(deps, aclutils.GetOracleReadAccessOpsForValAndFeeder(feederAddr, valAddr)...) + case *types.MsgAggregateExchangeRateVote: + feederAddr, _ := sdk.AccAddressFromBech32(m.Feeder) + valAddr, _ := sdk.ValAddressFromBech32(m.Validator) + deps = append(deps, aclutils.GetOracleReadAccessOpsForValAndFeeder(feederAddr, valAddr)...) + case *types.MsgAggregateExchangeRateCombinedVote: + feederAddr, _ := sdk.AccAddressFromBech32(m.Feeder) + valAddr, _ := sdk.ValAddressFromBech32(m.Validator) + deps = append(deps, aclutils.GetOracleReadAccessOpsForValAndFeeder(feederAddr, valAddr)...) + default: + continue + } + } + + return next(append(txDeps, deps...), tx) +} + // CheckOracleSpamming check whether the msgs are spamming purpose or not func (spd SpammingPreventionDecorator) CheckOracleSpamming(ctx sdk.Context, msgs []sdk.Msg) error { spd.mu.Lock() From de1ba806e0a306d132344094fa318f418cf7796f Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Tue, 18 Oct 2022 00:31:00 -0400 Subject: [PATCH 02/25] move to endblocker --- app/app.go | 3 +-- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/app.go b/app/app.go index 6e264b3a99..f056c4ac72 100644 --- a/app/app.go +++ b/app/app.go @@ -1115,8 +1115,7 @@ func (app *App) ProcessBlock(ctx sdk.Context, txs [][]byte, req BlockProcessRequ metrics.IncrDagBuildErrorCounter(metrics.FailedToBuild) } - lazyWriteEvents := app.BankKeeper.WriteLazyDepositsToModuleAccounts(ctx) - + lazyWriteEvents := app.BankKeeper.WriteDeferredDepositsToModuleAccounts(ctx) events = append(events, lazyWriteEvents...) endBlockResp := app.EndBlock(ctx, abci.RequestEndBlock{ diff --git a/go.mod b/go.mod index beceb029c6..d0ba0618a5 100644 --- a/go.mod +++ b/go.mod @@ -131,7 +131,7 @@ require ( ) replace ( - github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.160 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.163 github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/keybase/go-keychain => github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 github.com/tendermint/tendermint => github.com/sei-protocol/sei-tendermint v0.1.59 diff --git a/go.sum b/go.sum index 4518cdd4f0..f87902f524 100644 --- a/go.sum +++ b/go.sum @@ -1098,8 +1098,8 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/securego/gosec/v2 v2.11.0/go.mod h1:SX8bptShuG8reGC0XS09+a4H2BoWSJi+fscA+Pulbpo= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= -github.com/sei-protocol/sei-cosmos v0.1.160 h1:xyEAM2EiszLas1gSUB5jpj/R8zrHFV5hVMQtayZHcBU= -github.com/sei-protocol/sei-cosmos v0.1.160/go.mod h1:Xl+SxpPz/vprq7RQpRYLup1/lePi269T/s/m4rfTwgs= +github.com/sei-protocol/sei-cosmos v0.1.163 h1:JfdCRk99e4PG6fcvhOQxf7/gfHxDij9+e8ZNJC1FsQ0= +github.com/sei-protocol/sei-cosmos v0.1.163/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= github.com/sei-protocol/sei-tendermint v0.1.59 h1:POGL60PumMQHF4EzAHzvkGfDnodQJLHpl65LuiwSO/Y= github.com/sei-protocol/sei-tendermint v0.1.59/go.mod h1:Olwbjyagrpoxj5DAUhHxMTWDVEfQ3FYdpypaJ3+6Hs8= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= From 79fc209cffc489f85f83147153f01657b1501436 Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Tue, 18 Oct 2022 02:59:02 -0400 Subject: [PATCH 03/25] Remove --- app/app.go | 1 - 1 file changed, 1 deletion(-) diff --git a/app/app.go b/app/app.go index f056c4ac72..2f86f1220e 100644 --- a/app/app.go +++ b/app/app.go @@ -988,7 +988,6 @@ func (app *App) ProcessTxConcurrent( // Deliver the transaction and store the result in the channel resultChan <- ChannelResult{txIndex, app.DeliverTxWithResult(ctx, txBytes)} - ctx.Logger().Info(fmt.Sprintf("Processed TxIndex=%d", txIndex)) metrics.IncrTxProcessTypeCounter(metrics.CONCURRENT) } From 5fc8b7ad8671c6b8db28f81f478c4c7b665f806e Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Tue, 18 Oct 2022 04:13:29 -0400 Subject: [PATCH 04/25] deterministic sorting --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d0ba0618a5..e6dc2f4936 100644 --- a/go.mod +++ b/go.mod @@ -131,7 +131,7 @@ require ( ) replace ( - github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.163 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.164 github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/keybase/go-keychain => github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 github.com/tendermint/tendermint => github.com/sei-protocol/sei-tendermint v0.1.59 diff --git a/go.sum b/go.sum index f87902f524..80d03b5753 100644 --- a/go.sum +++ b/go.sum @@ -1098,8 +1098,8 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/securego/gosec/v2 v2.11.0/go.mod h1:SX8bptShuG8reGC0XS09+a4H2BoWSJi+fscA+Pulbpo= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= -github.com/sei-protocol/sei-cosmos v0.1.163 h1:JfdCRk99e4PG6fcvhOQxf7/gfHxDij9+e8ZNJC1FsQ0= -github.com/sei-protocol/sei-cosmos v0.1.163/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= +github.com/sei-protocol/sei-cosmos v0.1.164 h1:sn2lgUK+qfpeeE6PuF9/W9ksCOoRv8L+fMGhIygpPoQ= +github.com/sei-protocol/sei-cosmos v0.1.164/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= github.com/sei-protocol/sei-tendermint v0.1.59 h1:POGL60PumMQHF4EzAHzvkGfDnodQJLHpl65LuiwSO/Y= github.com/sei-protocol/sei-tendermint v0.1.59/go.mod h1:Olwbjyagrpoxj5DAUhHxMTWDVEfQ3FYdpypaJ3+6Hs8= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= From ccfb249cbd2568ee5bd50a1788e044060282fc93 Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Tue, 18 Oct 2022 09:36:47 -0400 Subject: [PATCH 05/25] bump version --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e6dc2f4936..500b14f0b0 100644 --- a/go.mod +++ b/go.mod @@ -131,7 +131,7 @@ require ( ) replace ( - github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.164 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.165 github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/keybase/go-keychain => github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 github.com/tendermint/tendermint => github.com/sei-protocol/sei-tendermint v0.1.59 diff --git a/go.sum b/go.sum index 80d03b5753..2c0ce127b5 100644 --- a/go.sum +++ b/go.sum @@ -1098,8 +1098,8 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/securego/gosec/v2 v2.11.0/go.mod h1:SX8bptShuG8reGC0XS09+a4H2BoWSJi+fscA+Pulbpo= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= -github.com/sei-protocol/sei-cosmos v0.1.164 h1:sn2lgUK+qfpeeE6PuF9/W9ksCOoRv8L+fMGhIygpPoQ= -github.com/sei-protocol/sei-cosmos v0.1.164/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= +github.com/sei-protocol/sei-cosmos v0.1.165 h1:zTRcGjIrRahcim1paB1upG0m/2IBr+4CHo75eWOmZjA= +github.com/sei-protocol/sei-cosmos v0.1.165/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= github.com/sei-protocol/sei-tendermint v0.1.59 h1:POGL60PumMQHF4EzAHzvkGfDnodQJLHpl65LuiwSO/Y= github.com/sei-protocol/sei-tendermint v0.1.59/go.mod h1:Olwbjyagrpoxj5DAUhHxMTWDVEfQ3FYdpypaJ3+6Hs8= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= From 831b0df10e9279587ba86c0ae638d14294a8836b Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Tue, 18 Oct 2022 09:58:51 -0400 Subject: [PATCH 06/25] enable --- app/app.go | 2 +- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/app.go b/app/app.go index 2f86f1220e..aa19e1cded 100644 --- a/app/app.go +++ b/app/app.go @@ -1101,7 +1101,6 @@ func (app *App) ProcessBlock(ctx sdk.Context, txs [][]byte, req BlockProcessRequ // deterministic ordering between validators in the case of concurrent deliverTXs processBlockCtx, processBlockCache := app.CacheContext(ctx) txResults = app.ProcessBlockConcurrent(processBlockCtx, txs, dependencyDag.CompletionSignalingMap, dependencyDag.BlockingSignalsMap) - // Finalize all Bank Module Transfers here so that events are included // Write the results back to the concurrent contexts processBlockCache.Write() case acltypes.ErrGovMsgInBlock: @@ -1114,6 +1113,7 @@ func (app *App) ProcessBlock(ctx sdk.Context, txs [][]byte, req BlockProcessRequ metrics.IncrDagBuildErrorCounter(metrics.FailedToBuild) } + // Finalize all Bank Module Transfers here so that events are included lazyWriteEvents := app.BankKeeper.WriteDeferredDepositsToModuleAccounts(ctx) events = append(events, lazyWriteEvents...) diff --git a/go.mod b/go.mod index 500b14f0b0..ed3d94c8c4 100644 --- a/go.mod +++ b/go.mod @@ -131,7 +131,7 @@ require ( ) replace ( - github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.165 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.166 github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/keybase/go-keychain => github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 github.com/tendermint/tendermint => github.com/sei-protocol/sei-tendermint v0.1.59 diff --git a/go.sum b/go.sum index 2c0ce127b5..608da4ac2a 100644 --- a/go.sum +++ b/go.sum @@ -1098,8 +1098,8 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/securego/gosec/v2 v2.11.0/go.mod h1:SX8bptShuG8reGC0XS09+a4H2BoWSJi+fscA+Pulbpo= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= -github.com/sei-protocol/sei-cosmos v0.1.165 h1:zTRcGjIrRahcim1paB1upG0m/2IBr+4CHo75eWOmZjA= -github.com/sei-protocol/sei-cosmos v0.1.165/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= +github.com/sei-protocol/sei-cosmos v0.1.166 h1:Uorwkgk/urrGcOFzZw8rwtbJ0pFdKeU3PyiQsyio12w= +github.com/sei-protocol/sei-cosmos v0.1.166/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= github.com/sei-protocol/sei-tendermint v0.1.59 h1:POGL60PumMQHF4EzAHzvkGfDnodQJLHpl65LuiwSO/Y= github.com/sei-protocol/sei-tendermint v0.1.59/go.mod h1:Olwbjyagrpoxj5DAUhHxMTWDVEfQ3FYdpypaJ3+6Hs8= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= From 7abd84d461d19de82beaffc3dc2d273edff66119 Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Tue, 18 Oct 2022 10:10:25 -0400 Subject: [PATCH 07/25] logging --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ed3d94c8c4..39eb33b994 100644 --- a/go.mod +++ b/go.mod @@ -131,7 +131,7 @@ require ( ) replace ( - github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.166 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.167 github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/keybase/go-keychain => github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 github.com/tendermint/tendermint => github.com/sei-protocol/sei-tendermint v0.1.59 diff --git a/go.sum b/go.sum index 608da4ac2a..a48690aed5 100644 --- a/go.sum +++ b/go.sum @@ -1098,8 +1098,8 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/securego/gosec/v2 v2.11.0/go.mod h1:SX8bptShuG8reGC0XS09+a4H2BoWSJi+fscA+Pulbpo= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= -github.com/sei-protocol/sei-cosmos v0.1.166 h1:Uorwkgk/urrGcOFzZw8rwtbJ0pFdKeU3PyiQsyio12w= -github.com/sei-protocol/sei-cosmos v0.1.166/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= +github.com/sei-protocol/sei-cosmos v0.1.167 h1:dR5yBbKcTMWSFY17c+D6AmgyqlUF4EH+6k+iQuHjkMc= +github.com/sei-protocol/sei-cosmos v0.1.167/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= github.com/sei-protocol/sei-tendermint v0.1.59 h1:POGL60PumMQHF4EzAHzvkGfDnodQJLHpl65LuiwSO/Y= github.com/sei-protocol/sei-tendermint v0.1.59/go.mod h1:Olwbjyagrpoxj5DAUhHxMTWDVEfQ3FYdpypaJ3+6Hs8= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= From 3ddba90cb6621bd884a3e9195a6548217d9aaa73 Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Tue, 18 Oct 2022 10:35:20 -0400 Subject: [PATCH 08/25] try 1.160 again --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 39eb33b994..beceb029c6 100644 --- a/go.mod +++ b/go.mod @@ -131,7 +131,7 @@ require ( ) replace ( - github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.167 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.160 github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/keybase/go-keychain => github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 github.com/tendermint/tendermint => github.com/sei-protocol/sei-tendermint v0.1.59 diff --git a/go.sum b/go.sum index a48690aed5..4518cdd4f0 100644 --- a/go.sum +++ b/go.sum @@ -1098,8 +1098,8 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/securego/gosec/v2 v2.11.0/go.mod h1:SX8bptShuG8reGC0XS09+a4H2BoWSJi+fscA+Pulbpo= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= -github.com/sei-protocol/sei-cosmos v0.1.167 h1:dR5yBbKcTMWSFY17c+D6AmgyqlUF4EH+6k+iQuHjkMc= -github.com/sei-protocol/sei-cosmos v0.1.167/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= +github.com/sei-protocol/sei-cosmos v0.1.160 h1:xyEAM2EiszLas1gSUB5jpj/R8zrHFV5hVMQtayZHcBU= +github.com/sei-protocol/sei-cosmos v0.1.160/go.mod h1:Xl+SxpPz/vprq7RQpRYLup1/lePi269T/s/m4rfTwgs= github.com/sei-protocol/sei-tendermint v0.1.59 h1:POGL60PumMQHF4EzAHzvkGfDnodQJLHpl65LuiwSO/Y= github.com/sei-protocol/sei-tendermint v0.1.59/go.mod h1:Olwbjyagrpoxj5DAUhHxMTWDVEfQ3FYdpypaJ3+6Hs8= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= From caee5ecafdd41f76cfbcf7e94dd5ebccbb3e935e Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Tue, 18 Oct 2022 10:39:34 -0400 Subject: [PATCH 09/25] buiil --- app/app.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/app.go b/app/app.go index aa19e1cded..9b9dd77e3b 100644 --- a/app/app.go +++ b/app/app.go @@ -1114,7 +1114,7 @@ func (app *App) ProcessBlock(ctx sdk.Context, txs [][]byte, req BlockProcessRequ } // Finalize all Bank Module Transfers here so that events are included - lazyWriteEvents := app.BankKeeper.WriteDeferredDepositsToModuleAccounts(ctx) + lazyWriteEvents := app.BankKeeper.WriteLazyDepositsToModuleAccounts(ctx) events = append(events, lazyWriteEvents...) endBlockResp := app.EndBlock(ctx, abci.RequestEndBlock{ From 7e68f7f3ca3621ae8d895f293a5d32f5023db160 Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Tue, 18 Oct 2022 11:04:53 -0400 Subject: [PATCH 10/25] new version --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index beceb029c6..61c9be5449 100644 --- a/go.mod +++ b/go.mod @@ -131,7 +131,7 @@ require ( ) replace ( - github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.160 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.169 github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/keybase/go-keychain => github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 github.com/tendermint/tendermint => github.com/sei-protocol/sei-tendermint v0.1.59 diff --git a/go.sum b/go.sum index 4518cdd4f0..3a1adc90bb 100644 --- a/go.sum +++ b/go.sum @@ -1098,8 +1098,8 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/securego/gosec/v2 v2.11.0/go.mod h1:SX8bptShuG8reGC0XS09+a4H2BoWSJi+fscA+Pulbpo= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= -github.com/sei-protocol/sei-cosmos v0.1.160 h1:xyEAM2EiszLas1gSUB5jpj/R8zrHFV5hVMQtayZHcBU= -github.com/sei-protocol/sei-cosmos v0.1.160/go.mod h1:Xl+SxpPz/vprq7RQpRYLup1/lePi269T/s/m4rfTwgs= +github.com/sei-protocol/sei-cosmos v0.1.169 h1:udDYTXfypA7FoSlioS0PFrzdtVKVbyltj/mxMpkU9sA= +github.com/sei-protocol/sei-cosmos v0.1.169/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= github.com/sei-protocol/sei-tendermint v0.1.59 h1:POGL60PumMQHF4EzAHzvkGfDnodQJLHpl65LuiwSO/Y= github.com/sei-protocol/sei-tendermint v0.1.59/go.mod h1:Olwbjyagrpoxj5DAUhHxMTWDVEfQ3FYdpypaJ3+6Hs8= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= From bc491a2ef06944af08318713a417ea1ba7c22a4f Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Tue, 18 Oct 2022 11:11:01 -0400 Subject: [PATCH 11/25] oops --- app/app.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/app.go b/app/app.go index 9b9dd77e3b..aa19e1cded 100644 --- a/app/app.go +++ b/app/app.go @@ -1114,7 +1114,7 @@ func (app *App) ProcessBlock(ctx sdk.Context, txs [][]byte, req BlockProcessRequ } // Finalize all Bank Module Transfers here so that events are included - lazyWriteEvents := app.BankKeeper.WriteLazyDepositsToModuleAccounts(ctx) + lazyWriteEvents := app.BankKeeper.WriteDeferredDepositsToModuleAccounts(ctx) events = append(events, lazyWriteEvents...) endBlockResp := app.EndBlock(ctx, abci.RequestEndBlock{ From d1b7ac7b118097acfce2dd5c3e07704d33675097 Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Tue, 18 Oct 2022 11:57:36 -0400 Subject: [PATCH 12/25] disable optimistic processing --- app/app.go | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/app/app.go b/app/app.go index aa19e1cded..9e2f2d6891 100644 --- a/app/app.go +++ b/app/app.go @@ -863,24 +863,24 @@ func (app *App) PrepareProposalHandler(ctx sdk.Context, req *abci.RequestPrepare } func (app *App) ProcessProposalHandler(ctx sdk.Context, req *abci.RequestProcessProposal) (*abci.ResponseProcessProposal, error) { - if app.optimisticProcessingInfo == nil { - completionSignal := make(chan struct{}, 1) - optimisticProcessingInfo := &OptimisticProcessingInfo{ - Height: req.Height, - Hash: req.Hash, - Completion: completionSignal, - } - app.optimisticProcessingInfo = optimisticProcessingInfo - go func() { - events, txResults, endBlockResp, _ := app.ProcessBlock(ctx, req.Txs, req, req.ProposedLastCommit) - optimisticProcessingInfo.Events = events - optimisticProcessingInfo.TxRes = txResults - optimisticProcessingInfo.EndBlockResp = endBlockResp - optimisticProcessingInfo.Completion <- struct{}{} - }() - } else if !bytes.Equal(app.optimisticProcessingInfo.Hash, req.Hash) { - app.optimisticProcessingInfo.Aborted = true - } + // if app.optimisticProcessingInfo == nil { + // completionSignal := make(chan struct{}, 1) + // optimisticProcessingInfo := &OptimisticProcessingInfo{ + // Height: req.Height, + // Hash: req.Hash, + // Completion: completionSignal, + // } + // app.optimisticProcessingInfo = optimisticProcessingInfo + // go func() { + // events, txResults, endBlockResp, _ := app.ProcessBlock(ctx, req.Txs, req, req.ProposedLastCommit) + // optimisticProcessingInfo.Events = events + // optimisticProcessingInfo.TxRes = txResults + // optimisticProcessingInfo.EndBlockResp = endBlockResp + // optimisticProcessingInfo.Completion <- struct{}{} + // }() + // } else if !bytes.Equal(app.optimisticProcessingInfo.Hash, req.Hash) { + // app.optimisticProcessingInfo.Aborted = true + // } return &abci.ResponseProcessProposal{ Status: abci.ResponseProcessProposal_ACCEPT, }, nil From bc3580c5e4d36357f10dc268b6b08990659d8624 Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Tue, 18 Oct 2022 12:25:19 -0400 Subject: [PATCH 13/25] re-enable optimistic processing --- app/app.go | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/app/app.go b/app/app.go index 9e2f2d6891..aa19e1cded 100644 --- a/app/app.go +++ b/app/app.go @@ -863,24 +863,24 @@ func (app *App) PrepareProposalHandler(ctx sdk.Context, req *abci.RequestPrepare } func (app *App) ProcessProposalHandler(ctx sdk.Context, req *abci.RequestProcessProposal) (*abci.ResponseProcessProposal, error) { - // if app.optimisticProcessingInfo == nil { - // completionSignal := make(chan struct{}, 1) - // optimisticProcessingInfo := &OptimisticProcessingInfo{ - // Height: req.Height, - // Hash: req.Hash, - // Completion: completionSignal, - // } - // app.optimisticProcessingInfo = optimisticProcessingInfo - // go func() { - // events, txResults, endBlockResp, _ := app.ProcessBlock(ctx, req.Txs, req, req.ProposedLastCommit) - // optimisticProcessingInfo.Events = events - // optimisticProcessingInfo.TxRes = txResults - // optimisticProcessingInfo.EndBlockResp = endBlockResp - // optimisticProcessingInfo.Completion <- struct{}{} - // }() - // } else if !bytes.Equal(app.optimisticProcessingInfo.Hash, req.Hash) { - // app.optimisticProcessingInfo.Aborted = true - // } + if app.optimisticProcessingInfo == nil { + completionSignal := make(chan struct{}, 1) + optimisticProcessingInfo := &OptimisticProcessingInfo{ + Height: req.Height, + Hash: req.Hash, + Completion: completionSignal, + } + app.optimisticProcessingInfo = optimisticProcessingInfo + go func() { + events, txResults, endBlockResp, _ := app.ProcessBlock(ctx, req.Txs, req, req.ProposedLastCommit) + optimisticProcessingInfo.Events = events + optimisticProcessingInfo.TxRes = txResults + optimisticProcessingInfo.EndBlockResp = endBlockResp + optimisticProcessingInfo.Completion <- struct{}{} + }() + } else if !bytes.Equal(app.optimisticProcessingInfo.Hash, req.Hash) { + app.optimisticProcessingInfo.Aborted = true + } return &abci.ResponseProcessProposal{ Status: abci.ResponseProcessProposal_ACCEPT, }, nil From 7359347625ea50b387afe46c72ab85fe147f4f6a Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Tue, 18 Oct 2022 12:40:35 -0400 Subject: [PATCH 14/25] disable optimistic processing --- app/app.go | 37 ++++++++++---------- scripts/old_initialize_local.sh | 60 ++++++++++++++------------------- 2 files changed, 45 insertions(+), 52 deletions(-) mode change 100644 => 100755 scripts/old_initialize_local.sh diff --git a/app/app.go b/app/app.go index aa19e1cded..afb05496b2 100644 --- a/app/app.go +++ b/app/app.go @@ -863,24 +863,27 @@ func (app *App) PrepareProposalHandler(ctx sdk.Context, req *abci.RequestPrepare } func (app *App) ProcessProposalHandler(ctx sdk.Context, req *abci.RequestProcessProposal) (*abci.ResponseProcessProposal, error) { - if app.optimisticProcessingInfo == nil { - completionSignal := make(chan struct{}, 1) - optimisticProcessingInfo := &OptimisticProcessingInfo{ - Height: req.Height, - Hash: req.Hash, - Completion: completionSignal, - } - app.optimisticProcessingInfo = optimisticProcessingInfo - go func() { - events, txResults, endBlockResp, _ := app.ProcessBlock(ctx, req.Txs, req, req.ProposedLastCommit) - optimisticProcessingInfo.Events = events - optimisticProcessingInfo.TxRes = txResults - optimisticProcessingInfo.EndBlockResp = endBlockResp - optimisticProcessingInfo.Completion <- struct{}{} - }() - } else if !bytes.Equal(app.optimisticProcessingInfo.Hash, req.Hash) { - app.optimisticProcessingInfo.Aborted = true + completionSignal := make(chan struct{}, 1) + optimisticProcessingInfo := &OptimisticProcessingInfo{ + Height: req.Height, + Hash: req.Hash, + Completion: completionSignal, } + app.optimisticProcessingInfo = optimisticProcessingInfo + // if app.optimisticProcessingInfo == nil { + // completionSignal := make(chan struct{}, 1) + + // app.optimisticProcessingInfo = optimisticProcessingInfo + // go func() { + // events, txResults, endBlockResp, _ := app.ProcessBlock(ctx, req.Txs, req, req.ProposedLastCommit) + // optimisticProcessingInfo.Events = events + // optimisticProcessingInfo.TxRes = txResults + // optimisticProcessingInfo.EndBlockResp = endBlockResp + // optimisticProcessingInfo.Completion <- struct{}{} + // }() + // } else if !bytes.Equal(app.optimisticProcessingInfo.Hash, req.Hash) { + app.optimisticProcessingInfo.Aborted = true + // } return &abci.ResponseProcessProposal{ Status: abci.ResponseProcessProposal_ACCEPT, }, nil diff --git a/scripts/old_initialize_local.sh b/scripts/old_initialize_local.sh old mode 100644 new mode 100755 index ea0167b0cb..92d5e2b8fd --- a/scripts/old_initialize_local.sh +++ b/scripts/old_initialize_local.sh @@ -1,43 +1,33 @@ #!/bin/bash -echo -n OS Password: -read -s password -echo -echo -n Key Name: -read keyname -echo -echo -n Number of Test Accounts: -read numtestaccount -echo - -docker stop jaeger -docker rm jaeger -docker run -d --name jaeger \ - -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \ - -p 5775:5775/udp \ - -p 6831:6831/udp \ - -p 6832:6832/udp \ - -p 5778:5778 \ - -p 16686:16686 \ - -p 14250:14250 \ - -p 14268:14268 \ - -p 14269:14269 \ - -p 9411:9411 \ - jaegertracing/all-in-one:1.33 +keyname=brando +#docker stop jaeger +#docker rm jaeger +#docker run -d --name jaeger \ +# -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \ +# -p 5775:5775/udp \ +# -p 6831:6831/udp \ +# -p 6832:6832/udp \ +# -p 5778:5778 \ +# -p 16686:16686 \ +# -p 14250:14250 \ +# -p 14268:14268 \ +# -p 14269:14269 \ +# -p 9411:9411 \ +# jaegertracing/all-in-one:1.33 +rm -rf ~/.sei echo "Building..." make install -echo $password | sudo -S rm -r ~/.sei/ -echo $password | sudo -S rm -r ~/test_accounts/ +#echo $password | sudo -S rm -r ~/.sei/ +#echo $password | sudo -S rm -r ~/test_accounts/ ~/go/bin/seid init demo --chain-id sei-chain -yes | ~/go/bin/seid keys add $keyname -yes | ~/go/bin/seid keys add faucet -printf '12345678\n' | ~/go/bin/seid add-genesis-account $(~/go/bin/seid keys show $keyname -a) 100000000000000000000usei,100000000000000000000uusdc,100000000000000000000uatom -printf '12345678\n' | ~/go/bin/seid add-genesis-account $(~/go/bin/seid keys show faucet -a) 100000000000000000000usei,100000000000000000000uusdc,100000000000000000000uatom -python3 ./loadtest/scripts/populate_genesis_accounts.py $numtestaccount loc -printf '12345678\n' | ~/go/bin/seid gentx $keyname 70000000000000000000usei --chain-id sei-chain -sed -i 's/mode = "full"/mode = "validator"/g' $HOME/.sei/config/config.toml -sed -i 's/indexer = \["null"\]/indexer = \["kv"\]/g' $HOME/.sei/config/config.toml +~/go/bin/seid keys add $keyname --keyring-backend test +#yes | ~/go/bin/seid keys add faucet +~/go/bin/seid add-genesis-account $(~/go/bin/seid keys show $keyname -a --keyring-backend test) 100000000000000000000usei,100000000000000000000uusdc,100000000000000000000uatom +~/go/bin/seid gentx $keyname 70000000000000000000usei --chain-id sei-chain --keyring-backend test +sed -i '' 's/mode = "full"/mode = "validator"/g' $HOME/.sei/config/config.toml +sed -i '' 's/indexer = \["null"\]/indexer = \["kv"\]/g' $HOME/.sei/config/config.toml KEY=$(jq '.pub_key' ~/.sei/config/priv_validator_key.json -c) jq '.validators = [{}]' ~/.sei/config/genesis.json > ~/.sei/config/tmp_genesis.json jq '.validators[0] += {"power":"70000000000000"}' ~/.sei/config/tmp_genesis.json > ~/.sei/config/tmp_genesis_2.json @@ -80,4 +70,4 @@ else fi # start the chain with log tracing -GORACE="log_path=/tmp/race/seid_race" ~/go/bin/seid start --trace --chain-id sei-chain \ No newline at end of file +GORACE="log_path=/tmp/race/seid_race" ~/go/bin/seid start --trace --chain-id sei-chain From 3e3c19363fc66aee845493432d210eb1ffe358ed Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Tue, 18 Oct 2022 14:03:48 -0400 Subject: [PATCH 15/25] asd --- app/app.go | 7 +++++++ go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/app.go b/app/app.go index afb05496b2..6a0ae3799f 100644 --- a/app/app.go +++ b/app/app.go @@ -50,6 +50,7 @@ import ( "github.com/cosmos/cosmos-sdk/x/auth/vesting" vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" "github.com/cosmos/cosmos-sdk/x/bank" + bankcache "github.com/cosmos/cosmos-sdk/x/bank/cache" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" "github.com/cosmos/cosmos-sdk/x/capability" @@ -1052,6 +1053,8 @@ func (app *App) ProcessBlockConcurrent( func (app *App) ProcessBlock(ctx sdk.Context, txs [][]byte, req BlockProcessRequest, lastCommit abci.CommitInfo) ([]abci.Event, []*abci.ExecTxResult, abci.ResponseEndBlock, error) { goCtx := app.decorateContextWithDexMemState(ctx.Context()) + goCtx = app.decorateContextWithBankMemState(ctx.Context()) + ctx = ctx.WithContext(goCtx) events := []abci.Event{} @@ -1304,6 +1307,10 @@ func (app *App) decorateContextWithDexMemState(base context.Context) context.Con return context.WithValue(base, dexutils.DexMemStateContextKey, dexcache.NewMemState()) } +func (app *App) decorateContextWithBankMemState(base context.Context) context.Context { + return context.WithValue(base, bankcache.BankMemStateKeyKey, bankcache.NewMemState()) +} + func init() { // override max wasm size to 1MB wasmtypes.MaxWasmSize = 1024 * 1024 diff --git a/go.mod b/go.mod index 61c9be5449..711d71ebb3 100644 --- a/go.mod +++ b/go.mod @@ -131,7 +131,7 @@ require ( ) replace ( - github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.169 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.172 github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/keybase/go-keychain => github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 github.com/tendermint/tendermint => github.com/sei-protocol/sei-tendermint v0.1.59 diff --git a/go.sum b/go.sum index 3a1adc90bb..fe24547cf2 100644 --- a/go.sum +++ b/go.sum @@ -1098,8 +1098,8 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/securego/gosec/v2 v2.11.0/go.mod h1:SX8bptShuG8reGC0XS09+a4H2BoWSJi+fscA+Pulbpo= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= -github.com/sei-protocol/sei-cosmos v0.1.169 h1:udDYTXfypA7FoSlioS0PFrzdtVKVbyltj/mxMpkU9sA= -github.com/sei-protocol/sei-cosmos v0.1.169/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= +github.com/sei-protocol/sei-cosmos v0.1.172 h1:EKlyt1wjgMEt9mPpjxrDFscwZOrF2DHyZD2zN9JZvTI= +github.com/sei-protocol/sei-cosmos v0.1.172/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= github.com/sei-protocol/sei-tendermint v0.1.59 h1:POGL60PumMQHF4EzAHzvkGfDnodQJLHpl65LuiwSO/Y= github.com/sei-protocol/sei-tendermint v0.1.59/go.mod h1:Olwbjyagrpoxj5DAUhHxMTWDVEfQ3FYdpypaJ3+6Hs8= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= From 92196145fef68dc75ee7b54432ec7dc3109ed76e Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Tue, 18 Oct 2022 15:48:48 -0400 Subject: [PATCH 16/25] context cache --- app/app.go | 46 ++++++++++++++++++---------------------------- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 21 insertions(+), 31 deletions(-) diff --git a/app/app.go b/app/app.go index 6a0ae3799f..1892f1f661 100644 --- a/app/app.go +++ b/app/app.go @@ -50,7 +50,6 @@ import ( "github.com/cosmos/cosmos-sdk/x/auth/vesting" vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" "github.com/cosmos/cosmos-sdk/x/bank" - bankcache "github.com/cosmos/cosmos-sdk/x/bank/cache" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" "github.com/cosmos/cosmos-sdk/x/capability" @@ -864,27 +863,24 @@ func (app *App) PrepareProposalHandler(ctx sdk.Context, req *abci.RequestPrepare } func (app *App) ProcessProposalHandler(ctx sdk.Context, req *abci.RequestProcessProposal) (*abci.ResponseProcessProposal, error) { - completionSignal := make(chan struct{}, 1) - optimisticProcessingInfo := &OptimisticProcessingInfo{ - Height: req.Height, - Hash: req.Hash, - Completion: completionSignal, + if app.optimisticProcessingInfo == nil { + completionSignal := make(chan struct{}, 1) + optimisticProcessingInfo := &OptimisticProcessingInfo{ + Height: req.Height, + Hash: req.Hash, + Completion: completionSignal, + } + app.optimisticProcessingInfo = optimisticProcessingInfo + go func() { + events, txResults, endBlockResp, _ := app.ProcessBlock(ctx, req.Txs, req, req.ProposedLastCommit) + optimisticProcessingInfo.Events = events + optimisticProcessingInfo.TxRes = txResults + optimisticProcessingInfo.EndBlockResp = endBlockResp + optimisticProcessingInfo.Completion <- struct{}{} + }() + } else if !bytes.Equal(app.optimisticProcessingInfo.Hash, req.Hash) { + app.optimisticProcessingInfo.Aborted = true } - app.optimisticProcessingInfo = optimisticProcessingInfo - // if app.optimisticProcessingInfo == nil { - // completionSignal := make(chan struct{}, 1) - - // app.optimisticProcessingInfo = optimisticProcessingInfo - // go func() { - // events, txResults, endBlockResp, _ := app.ProcessBlock(ctx, req.Txs, req, req.ProposedLastCommit) - // optimisticProcessingInfo.Events = events - // optimisticProcessingInfo.TxRes = txResults - // optimisticProcessingInfo.EndBlockResp = endBlockResp - // optimisticProcessingInfo.Completion <- struct{}{} - // }() - // } else if !bytes.Equal(app.optimisticProcessingInfo.Hash, req.Hash) { - app.optimisticProcessingInfo.Aborted = true - // } return &abci.ResponseProcessProposal{ Status: abci.ResponseProcessProposal_ACCEPT, }, nil @@ -1053,9 +1049,7 @@ func (app *App) ProcessBlockConcurrent( func (app *App) ProcessBlock(ctx sdk.Context, txs [][]byte, req BlockProcessRequest, lastCommit abci.CommitInfo) ([]abci.Event, []*abci.ExecTxResult, abci.ResponseEndBlock, error) { goCtx := app.decorateContextWithDexMemState(ctx.Context()) - goCtx = app.decorateContextWithBankMemState(ctx.Context()) - - ctx = ctx.WithContext(goCtx) + ctx = ctx.WithContext(goCtx).WithContextMemCache(sdk.NewContextMemCache()) events := []abci.Event{} beginBlockReq := abci.RequestBeginBlock{ @@ -1307,10 +1301,6 @@ func (app *App) decorateContextWithDexMemState(base context.Context) context.Con return context.WithValue(base, dexutils.DexMemStateContextKey, dexcache.NewMemState()) } -func (app *App) decorateContextWithBankMemState(base context.Context) context.Context { - return context.WithValue(base, bankcache.BankMemStateKeyKey, bankcache.NewMemState()) -} - func init() { // override max wasm size to 1MB wasmtypes.MaxWasmSize = 1024 * 1024 diff --git a/go.mod b/go.mod index 711d71ebb3..a0158e0ff6 100644 --- a/go.mod +++ b/go.mod @@ -131,7 +131,7 @@ require ( ) replace ( - github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.172 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.174 github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/keybase/go-keychain => github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 github.com/tendermint/tendermint => github.com/sei-protocol/sei-tendermint v0.1.59 diff --git a/go.sum b/go.sum index fe24547cf2..560a9cc632 100644 --- a/go.sum +++ b/go.sum @@ -1098,8 +1098,8 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/securego/gosec/v2 v2.11.0/go.mod h1:SX8bptShuG8reGC0XS09+a4H2BoWSJi+fscA+Pulbpo= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= -github.com/sei-protocol/sei-cosmos v0.1.172 h1:EKlyt1wjgMEt9mPpjxrDFscwZOrF2DHyZD2zN9JZvTI= -github.com/sei-protocol/sei-cosmos v0.1.172/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= +github.com/sei-protocol/sei-cosmos v0.1.174 h1:9Vo8+CZA75LcIGKMQzh8OB4AFsWZpZv4JRZ+j0gbB0w= +github.com/sei-protocol/sei-cosmos v0.1.174/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= github.com/sei-protocol/sei-tendermint v0.1.59 h1:POGL60PumMQHF4EzAHzvkGfDnodQJLHpl65LuiwSO/Y= github.com/sei-protocol/sei-tendermint v0.1.59/go.mod h1:Olwbjyagrpoxj5DAUhHxMTWDVEfQ3FYdpypaJ3+6Hs8= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= From 09f18d7d6b48500e8b8c72f7a807535818366808 Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Tue, 18 Oct 2022 19:24:10 -0400 Subject: [PATCH 17/25] done --- aclmapping/utils/identifier_templates.go | 18 +++++++ app/app.go | 2 - scripts/old_initialize_local.sh | 60 ++++++++++++++---------- x/oracle/simulation/operations.go | 6 +-- 4 files changed, 56 insertions(+), 30 deletions(-) mode change 100755 => 100644 scripts/old_initialize_local.sh diff --git a/aclmapping/utils/identifier_templates.go b/aclmapping/utils/identifier_templates.go index 1dd5ffdca9..ac28dad9ff 100644 --- a/aclmapping/utils/identifier_templates.go +++ b/aclmapping/utils/identifier_templates.go @@ -2,6 +2,9 @@ package util import ( "fmt" + + sdk "github.com/cosmos/cosmos-sdk/types" + sdkacltypes "github.com/cosmos/cosmos-sdk/types/accesscontrol" ) const ( @@ -18,3 +21,18 @@ func GetIdentifierTemplatePerModule(module string, identifier string) string { func GetPrefixedIdentifierTemplatePerModule(module string, identifier string, prefix string) string { return fmt.Sprintf("%s/%s/%s", module, prefix, identifier) } + +func GetOracleReadAccessOpsForValAndFeeder(feederAddr sdk.Address, valAddr sdk.Address) []sdkacltypes.AccessOperation { + return []sdkacltypes.AccessOperation{ + { + AccessType: sdkacltypes.AccessType_READ, + ResourceType: sdkacltypes.ResourceType_KV, + IdentifierTemplate: GetIdentifierTemplatePerModule("oracle", feederAddr.String()), + }, + { + AccessType: sdkacltypes.AccessType_READ, + ResourceType: sdkacltypes.ResourceType_KV, + IdentifierTemplate: GetIdentifierTemplatePerModule("oracle", valAddr.String()), + }, + } +} diff --git a/app/app.go b/app/app.go index 1892f1f661..8f2e0ff874 100644 --- a/app/app.go +++ b/app/app.go @@ -1008,7 +1008,6 @@ func (app *App) ProcessBlockConcurrent( return txResults } - ctx.Logger().Info(fmt.Sprintf("Processing Tx Count=%d", len(txs))) // For each transaction, start goroutine and deliver TX for txIndex, txBytes := range txs { waitGroup.Add(1) @@ -1034,7 +1033,6 @@ func (app *App) ProcessBlockConcurrent( // Gather Results and store it based on txIndex and read results from channel // Concurrent results may be in different order than the original txIndex txResultsMap := map[int]*abci.ExecTxResult{} - ctx.Logger().Info("Waiting for TXs to return") for result := range resultChan { txResultsMap[result.txIndex] = result.result } diff --git a/scripts/old_initialize_local.sh b/scripts/old_initialize_local.sh old mode 100755 new mode 100644 index 92d5e2b8fd..ea0167b0cb --- a/scripts/old_initialize_local.sh +++ b/scripts/old_initialize_local.sh @@ -1,33 +1,43 @@ #!/bin/bash -keyname=brando -#docker stop jaeger -#docker rm jaeger -#docker run -d --name jaeger \ -# -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \ -# -p 5775:5775/udp \ -# -p 6831:6831/udp \ -# -p 6832:6832/udp \ -# -p 5778:5778 \ -# -p 16686:16686 \ -# -p 14250:14250 \ -# -p 14268:14268 \ -# -p 14269:14269 \ -# -p 9411:9411 \ -# jaegertracing/all-in-one:1.33 +echo -n OS Password: +read -s password +echo +echo -n Key Name: +read keyname +echo +echo -n Number of Test Accounts: +read numtestaccount +echo + +docker stop jaeger +docker rm jaeger +docker run -d --name jaeger \ + -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \ + -p 5775:5775/udp \ + -p 6831:6831/udp \ + -p 6832:6832/udp \ + -p 5778:5778 \ + -p 16686:16686 \ + -p 14250:14250 \ + -p 14268:14268 \ + -p 14269:14269 \ + -p 9411:9411 \ + jaegertracing/all-in-one:1.33 -rm -rf ~/.sei echo "Building..." make install -#echo $password | sudo -S rm -r ~/.sei/ -#echo $password | sudo -S rm -r ~/test_accounts/ +echo $password | sudo -S rm -r ~/.sei/ +echo $password | sudo -S rm -r ~/test_accounts/ ~/go/bin/seid init demo --chain-id sei-chain -~/go/bin/seid keys add $keyname --keyring-backend test -#yes | ~/go/bin/seid keys add faucet -~/go/bin/seid add-genesis-account $(~/go/bin/seid keys show $keyname -a --keyring-backend test) 100000000000000000000usei,100000000000000000000uusdc,100000000000000000000uatom -~/go/bin/seid gentx $keyname 70000000000000000000usei --chain-id sei-chain --keyring-backend test -sed -i '' 's/mode = "full"/mode = "validator"/g' $HOME/.sei/config/config.toml -sed -i '' 's/indexer = \["null"\]/indexer = \["kv"\]/g' $HOME/.sei/config/config.toml +yes | ~/go/bin/seid keys add $keyname +yes | ~/go/bin/seid keys add faucet +printf '12345678\n' | ~/go/bin/seid add-genesis-account $(~/go/bin/seid keys show $keyname -a) 100000000000000000000usei,100000000000000000000uusdc,100000000000000000000uatom +printf '12345678\n' | ~/go/bin/seid add-genesis-account $(~/go/bin/seid keys show faucet -a) 100000000000000000000usei,100000000000000000000uusdc,100000000000000000000uatom +python3 ./loadtest/scripts/populate_genesis_accounts.py $numtestaccount loc +printf '12345678\n' | ~/go/bin/seid gentx $keyname 70000000000000000000usei --chain-id sei-chain +sed -i 's/mode = "full"/mode = "validator"/g' $HOME/.sei/config/config.toml +sed -i 's/indexer = \["null"\]/indexer = \["kv"\]/g' $HOME/.sei/config/config.toml KEY=$(jq '.pub_key' ~/.sei/config/priv_validator_key.json -c) jq '.validators = [{}]' ~/.sei/config/genesis.json > ~/.sei/config/tmp_genesis.json jq '.validators[0] += {"power":"70000000000000"}' ~/.sei/config/tmp_genesis.json > ~/.sei/config/tmp_genesis_2.json @@ -70,4 +80,4 @@ else fi # start the chain with log tracing -GORACE="log_path=/tmp/race/seid_race" ~/go/bin/seid start --trace --chain-id sei-chain +GORACE="log_path=/tmp/race/seid_race" ~/go/bin/seid start --trace --chain-id sei-chain \ No newline at end of file diff --git a/x/oracle/simulation/operations.go b/x/oracle/simulation/operations.go index 6b3dc6c946..e7af90f2a9 100644 --- a/x/oracle/simulation/operations.go +++ b/x/oracle/simulation/operations.go @@ -83,7 +83,7 @@ func WeightedOperations( } // SimulateMsgAggregateExchangeRatePrevote generates a MsgAggregateExchangeRatePrevote with random values. -//nolint: funlen +// nolint: funlen func SimulateMsgAggregateExchangeRatePrevote(ak types.AccountKeeper, bk types.BankKeeper, k keeper.Keeper) simtypes.Operation { return func( r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, @@ -146,7 +146,7 @@ func SimulateMsgAggregateExchangeRatePrevote(ak types.AccountKeeper, bk types.Ba } // SimulateMsgAggregateExchangeRateVote generates a MsgAggregateExchangeRateVote with random values. -//nolint: funlen +// nolint: funlen func SimulateMsgAggregateExchangeRateVote(ak types.AccountKeeper, bk types.BankKeeper, k keeper.Keeper) simtypes.Operation { return func( r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, @@ -213,7 +213,7 @@ func SimulateMsgAggregateExchangeRateVote(ak types.AccountKeeper, bk types.BankK } // SimulateMsgDelegateFeedConsent generates a MsgDelegateFeedConsent with random values. -//nolint: funlen +// nolint: funlen func SimulateMsgDelegateFeedConsent(ak types.AccountKeeper, bk types.BankKeeper, k keeper.Keeper) simtypes.Operation { return func( r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, From 762e744e823cb1a1901273badf2a8603adb6316e Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Tue, 18 Oct 2022 19:30:18 -0400 Subject: [PATCH 18/25] Update version from sei-master --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a0158e0ff6..9879d1ce4d 100644 --- a/go.mod +++ b/go.mod @@ -131,7 +131,7 @@ require ( ) replace ( - github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.174 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.175 github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/keybase/go-keychain => github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 github.com/tendermint/tendermint => github.com/sei-protocol/sei-tendermint v0.1.59 diff --git a/go.sum b/go.sum index 560a9cc632..8c05668605 100644 --- a/go.sum +++ b/go.sum @@ -1098,8 +1098,8 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/securego/gosec/v2 v2.11.0/go.mod h1:SX8bptShuG8reGC0XS09+a4H2BoWSJi+fscA+Pulbpo= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= -github.com/sei-protocol/sei-cosmos v0.1.174 h1:9Vo8+CZA75LcIGKMQzh8OB4AFsWZpZv4JRZ+j0gbB0w= -github.com/sei-protocol/sei-cosmos v0.1.174/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= +github.com/sei-protocol/sei-cosmos v0.1.175 h1:JFeAe8NeUvAnt4423O51HLzePN2WTmLHWv8iXeWZTA0= +github.com/sei-protocol/sei-cosmos v0.1.175/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= github.com/sei-protocol/sei-tendermint v0.1.59 h1:POGL60PumMQHF4EzAHzvkGfDnodQJLHpl65LuiwSO/Y= github.com/sei-protocol/sei-tendermint v0.1.59/go.mod h1:Olwbjyagrpoxj5DAUhHxMTWDVEfQ3FYdpypaJ3+6Hs8= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= From 571779aca38cb71e2d8416a2a75d6a7de1d55379 Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Wed, 19 Oct 2022 00:41:28 -0400 Subject: [PATCH 19/25] Disable Parallel TX --- app/app.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/app.go b/app/app.go index 5b09a9f15d..f465be5618 100644 --- a/app/app.go +++ b/app/app.go @@ -1105,6 +1105,9 @@ func (app *App) ProcessBlock(ctx sdk.Context, txs [][]byte, req BlockProcessRequ var txResults []*abci.ExecTxResult + // Used for testing - disables Concurrent Processing + err = acltypes.ErrCycleInDAG + switch err { case nil: // Only run concurrently if no error From 2aa8eaf7e8c7b7582238db3351c843252239452f Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Wed, 19 Oct 2022 08:53:10 -0400 Subject: [PATCH 20/25] Add timeout to account creation --- loadtest/scripts/populate_genesis_accounts.py | 1 + 1 file changed, 1 insertion(+) diff --git a/loadtest/scripts/populate_genesis_accounts.py b/loadtest/scripts/populate_genesis_accounts.py index 5bb88244b8..06725cd086 100644 --- a/loadtest/scripts/populate_genesis_accounts.py +++ b/loadtest/scripts/populate_genesis_accounts.py @@ -43,6 +43,7 @@ def add_genesis_account(account_name, lock, local=False): subprocess.check_call( [add_account_cmd], shell=True, + timeout=20, ) success = True except subprocess.CalledProcessError as e: From 0a40e814d47358f77edb7b8d5d7ff9224789b4a9 Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Wed, 19 Oct 2022 09:22:47 -0400 Subject: [PATCH 21/25] linting --- app/app.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/app.go b/app/app.go index f465be5618..0b1b37af9c 100644 --- a/app/app.go +++ b/app/app.go @@ -1101,12 +1101,12 @@ func (app *App) ProcessBlock(ctx sdk.Context, txs [][]byte, req BlockProcessRequ // } // app.batchVerifier.VerifyTxs(ctx, typedTxs) - dependencyDag, err := app.AccessControlKeeper.BuildDependencyDag(ctx, app.txDecoder, app.GetAnteDepGenerator(), txs) + dependencyDag, _ := app.AccessControlKeeper.BuildDependencyDag(ctx, app.txDecoder, app.GetAnteDepGenerator(), txs) var txResults []*abci.ExecTxResult // Used for testing - disables Concurrent Processing - err = acltypes.ErrCycleInDAG + err := acltypes.ErrCycleInDAG switch err { case nil: From 44e798bd9b5992c8805f0a5c96b090a561bea4e0 Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Wed, 19 Oct 2022 10:17:59 -0400 Subject: [PATCH 22/25] update metrics script --- loadtest/scripts/metrics.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/loadtest/scripts/metrics.py b/loadtest/scripts/metrics.py index 55074b6b30..de9074ed35 100644 --- a/loadtest/scripts/metrics.py +++ b/loadtest/scripts/metrics.py @@ -41,17 +41,26 @@ def get_metrics(): for height in all_heights: block_info_list.append(get_block_info(height)) # Skip first and last block since it may have high deviation if we start it at the end of the block + skip_edge_blocks = block_info_list[1:-1] + + new_total_duration = block_info_list[-1]["timestamp"] - skip_edge_blocks[0]["timestamp"] total_duration = skip_edge_blocks[-1]["timestamp"] - skip_edge_blocks[0]["timestamp"] + + new_average_block_time = new_total_duration.total_seconds() / (len(skip_edge_blocks) - 1) average_block_time = total_duration.total_seconds() / (len(skip_edge_blocks) - 1) + total_txs_num = sum([block["number_of_txs"] for block in skip_edge_blocks]) average_txs_num = total_txs_num / len(skip_edge_blocks) return { "Summary (excl. edge block)": { "average_block_time": average_block_time, + "new_average_block_time": new_average_block_time, "average_throughput_per_block": average_txs_num, "average_throughput_per_sec": average_txs_num / average_block_time, + "new_average_throughpu_per_sec": average_txs_num / new_average_block_time, "number_of_full_blocks": len(skip_edge_blocks), + "full_blocks": all_heights[1:-1], "total_txs_num": total_txs_num, }, "Detail (incl. edge blocks)": { From 087f1df73fa717096616222ee2af2a76db55424b Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Wed, 19 Oct 2022 10:18:22 -0400 Subject: [PATCH 23/25] re-enable parallel tx --- app/app.go | 38 ++++++++++---------------------------- 1 file changed, 10 insertions(+), 28 deletions(-) diff --git a/app/app.go b/app/app.go index 0b1b37af9c..8f2e0ff874 100644 --- a/app/app.go +++ b/app/app.go @@ -499,33 +499,10 @@ func New( app.BankKeeper.(bankkeeper.BaseKeeper).WithMintCoinsRestriction(tokenfactorytypes.NewTokenFactoryDenomMintCoinsRestriction()), app.DistrKeeper, ) - customDependencyGenerators := aclmapping.NewCustomDependencyGenerator() - aclOpts = append(aclOpts, aclkeeper.WithDependencyGeneratorMappings(customDependencyGenerators.GetCustomDependencyGenerators())) - app.AccessControlKeeper = aclkeeper.NewKeeper( - appCodec, - app.keys[acltypes.StoreKey], - app.GetSubspace(acltypes.ModuleName), - aclOpts..., - ) // The last arguments can contain custom message handlers, and custom query handlers, // if we want to allow any custom callbacks supportedFeatures := "iterator,staking,stargate,sei" - wasmOpts = append( - wasmbinding.RegisterCustomPlugins( - &app.OracleKeeper, - &app.DexKeeper, - &app.EpochKeeper, - &app.AccountKeeper, - app.MsgServiceRouter(), - app.IBCKeeper.ChannelKeeper, - scopedWasmKeeper, - app.BankKeeper, - appCodec, - app.TransferKeeper, - app.AccessControlKeeper, - ), - wasmOpts..., - ) + wasmOpts = append(wasmbinding.RegisterCustomPlugins(&app.OracleKeeper, &app.DexKeeper, &app.EpochKeeper), wasmOpts...) app.WasmKeeper = wasm.NewKeeper( appCodec, keys[wasm.StoreKey], @@ -549,6 +526,14 @@ func New( dexModule := dexmodule.NewAppModule(appCodec, app.DexKeeper, app.AccountKeeper, app.BankKeeper, app.WasmKeeper, app.tracingInfo) epochModule := epochmodule.NewAppModule(appCodec, app.EpochKeeper, app.AccountKeeper, app.BankKeeper) + customDependencyGenerators := aclmapping.NewCustomDependencyGenerator(app.WasmKeeper) + aclOpts = append(aclOpts, aclkeeper.WithDependencyGeneratorMappings(customDependencyGenerators.GetCustomDependencyGenerators())) + app.AccessControlKeeper = aclkeeper.NewKeeper( + appCodec, + app.keys[acltypes.StoreKey], + app.GetSubspace(acltypes.ModuleName), + aclOpts..., + ) // register the proposal types govRouter := govtypes.NewRouter() govRouter.AddRoute(govtypes.RouterKey, govtypes.ProposalHandler). @@ -1101,13 +1086,10 @@ func (app *App) ProcessBlock(ctx sdk.Context, txs [][]byte, req BlockProcessRequ // } // app.batchVerifier.VerifyTxs(ctx, typedTxs) - dependencyDag, _ := app.AccessControlKeeper.BuildDependencyDag(ctx, app.txDecoder, app.GetAnteDepGenerator(), txs) + dependencyDag, err := app.AccessControlKeeper.BuildDependencyDag(ctx, app.txDecoder, app.GetAnteDepGenerator(), txs) var txResults []*abci.ExecTxResult - // Used for testing - disables Concurrent Processing - err := acltypes.ErrCycleInDAG - switch err { case nil: // Only run concurrently if no error From ced2cdb77bd089379a3b06e8729cb6d8ed56a31f Mon Sep 17 00:00:00 2001 From: Brandon Weng Date: Wed, 19 Oct 2022 10:22:55 -0400 Subject: [PATCH 24/25] fix for master --- app/app.go | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/app/app.go b/app/app.go index 8f2e0ff874..dbd94d4ad1 100644 --- a/app/app.go +++ b/app/app.go @@ -499,10 +499,34 @@ func New( app.BankKeeper.(bankkeeper.BaseKeeper).WithMintCoinsRestriction(tokenfactorytypes.NewTokenFactoryDenomMintCoinsRestriction()), app.DistrKeeper, ) + + customDependencyGenerators := aclmapping.NewCustomDependencyGenerator() + aclOpts = append(aclOpts, aclkeeper.WithDependencyGeneratorMappings(customDependencyGenerators.GetCustomDependencyGenerators())) + app.AccessControlKeeper = aclkeeper.NewKeeper( + appCodec, + app.keys[acltypes.StoreKey], + app.GetSubspace(acltypes.ModuleName), + aclOpts..., + ) // The last arguments can contain custom message handlers, and custom query handlers, // if we want to allow any custom callbacks supportedFeatures := "iterator,staking,stargate,sei" - wasmOpts = append(wasmbinding.RegisterCustomPlugins(&app.OracleKeeper, &app.DexKeeper, &app.EpochKeeper), wasmOpts...) + wasmOpts = append( + wasmbinding.RegisterCustomPlugins( + &app.OracleKeeper, + &app.DexKeeper, + &app.EpochKeeper, + &app.AccountKeeper, + app.MsgServiceRouter(), + app.IBCKeeper.ChannelKeeper, + scopedWasmKeeper, + app.BankKeeper, + appCodec, + app.TransferKeeper, + app.AccessControlKeeper, + ), + wasmOpts..., + ) app.WasmKeeper = wasm.NewKeeper( appCodec, keys[wasm.StoreKey], @@ -526,14 +550,6 @@ func New( dexModule := dexmodule.NewAppModule(appCodec, app.DexKeeper, app.AccountKeeper, app.BankKeeper, app.WasmKeeper, app.tracingInfo) epochModule := epochmodule.NewAppModule(appCodec, app.EpochKeeper, app.AccountKeeper, app.BankKeeper) - customDependencyGenerators := aclmapping.NewCustomDependencyGenerator(app.WasmKeeper) - aclOpts = append(aclOpts, aclkeeper.WithDependencyGeneratorMappings(customDependencyGenerators.GetCustomDependencyGenerators())) - app.AccessControlKeeper = aclkeeper.NewKeeper( - appCodec, - app.keys[acltypes.StoreKey], - app.GetSubspace(acltypes.ModuleName), - aclOpts..., - ) // register the proposal types govRouter := govtypes.NewRouter() govRouter.AddRoute(govtypes.RouterKey, govtypes.ProposalHandler). From 03ed10df4f3eb5f49be956ac85f25cbad0c4ede5 Mon Sep 17 00:00:00 2001 From: Brandon Weng <18161326+BrandonWeng@users.noreply.github.com> Date: Wed, 19 Oct 2022 08:06:07 -0700 Subject: [PATCH 25/25] Update metrics.py --- loadtest/scripts/metrics.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/loadtest/scripts/metrics.py b/loadtest/scripts/metrics.py index de9074ed35..e698a930e8 100644 --- a/loadtest/scripts/metrics.py +++ b/loadtest/scripts/metrics.py @@ -43,22 +43,16 @@ def get_metrics(): # Skip first and last block since it may have high deviation if we start it at the end of the block skip_edge_blocks = block_info_list[1:-1] - - new_total_duration = block_info_list[-1]["timestamp"] - skip_edge_blocks[0]["timestamp"] total_duration = skip_edge_blocks[-1]["timestamp"] - skip_edge_blocks[0]["timestamp"] - - new_average_block_time = new_total_duration.total_seconds() / (len(skip_edge_blocks) - 1) average_block_time = total_duration.total_seconds() / (len(skip_edge_blocks) - 1) - total_txs_num = sum([block["number_of_txs"] for block in skip_edge_blocks]) average_txs_num = total_txs_num / len(skip_edge_blocks) + return { "Summary (excl. edge block)": { "average_block_time": average_block_time, - "new_average_block_time": new_average_block_time, "average_throughput_per_block": average_txs_num, "average_throughput_per_sec": average_txs_num / average_block_time, - "new_average_throughpu_per_sec": average_txs_num / new_average_block_time, "number_of_full_blocks": len(skip_edge_blocks), "full_blocks": all_heights[1:-1], "total_txs_num": total_txs_num,