diff --git a/app/abci.go b/app/abci.go index 35b2a84ae5..10a841bd1e 100644 --- a/app/abci.go +++ b/app/abci.go @@ -2,8 +2,10 @@ package app import ( "context" + "time" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/sei-protocol/sei-chain/utils/metrics" abci "github.com/tendermint/tendermint/abci/types" "go.opentelemetry.io/otel/attribute" ) @@ -31,6 +33,7 @@ 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 diff --git a/app/app.go b/app/app.go index d1c212a335..0d84fa3760 100644 --- a/app/app.go +++ b/app/app.go @@ -17,6 +17,7 @@ import ( appparams "github.com/sei-protocol/sei-chain/app/params" "github.com/sei-protocol/sei-chain/utils" + "github.com/sei-protocol/sei-chain/utils/metrics" "github.com/sei-protocol/sei-chain/wasmbinding" wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" @@ -885,9 +886,12 @@ func (app *App) BuildDependencyDag(ctx sdk.Context, txs [][]byte) (*Dag, error) } msgs := tx.GetMsgs() for messageIndex, msg := range msgs { - msgDependencies := app.AccessControlKeeper.GetResourceDependencyMapping(ctx, acltypes.GenerateMessageKey(msg)) + msgKey := acltypes.GenerateMessageKey(msg) + msgDependencies := app.AccessControlKeeper.GetResourceDependencyMapping(ctx, msgKey) + ctx.Logger().Info(fmt.Sprintf("BuildDependencyDag:Getting Dependencies for %s", msgKey)) for _, accessOp := range msgDependencies.GetAccessOps() { // make a new node in the dependency dag + ctx.Logger().Info(fmt.Sprintf("BuildDependencyDag:Get AccessOps Dependencies for %s", msgKey)) dependencyDag.AddNodeBuildDependency(messageIndex, txIndex, accessOp) } } @@ -933,6 +937,7 @@ func (app *App) DeliverTxWithResult(ctx sdk.Context, tx []byte) *abci.ExecTxResu deliverTxResp := app.DeliverTx(ctx, abci.RequestDeliverTx{ Tx: tx, }) + ctx.Logger().Info(fmt.Sprintf("DeliverTxWithResult:: Delievered TX")) return &abci.ExecTxResult{ Code: deliverTxResp.Code, Data: deliverTxResp.Data, @@ -950,6 +955,7 @@ func (app *App) ProcessBlockSynchronous(ctx sdk.Context, txs [][]byte) []*abci.E for _, tx := range txs { txResults = append(txResults, app.DeliverTxWithResult(ctx, tx)) } + metrics.IncrTransactionProcessTypeCounter(metrics.SYNCHRONOUS) return txResults } @@ -959,6 +965,7 @@ func getChannelsFromSignalMapping(signalMapping MessageCompletionSignalMapping) for messageIndex, accessOperationsToSignal := range signalMapping { for accessOperation, completionSignals := range accessOperationsToSignal { var channels []chan interface{} + channelsMapping[messageIndex] = make(sdkacltypes.AccessOpsChannelMapping) for _, completionSignal := range completionSignals { channels = append(channels, completionSignal.Channel) } @@ -983,12 +990,20 @@ func (app *App) ProcessTxConcurrent( txBlockingSignalsMap MessageCompletionSignalMapping, ) { defer wg.Done() + ctx.Logger().Info(fmt.Sprintf("ProcessTxConcurrent:: Processing: %d", txIndex)) + // Store the Channels in the Context Object for each transaction ctx.WithTxBlockingChannels(getChannelsFromSignalMapping(txBlockingSignalsMap)) 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("ProcessTxConcurrent:: Waiting for: %d", txIndex)) + results := app.DeliverTxWithResult(ctx, txBytes) + ctx.Logger().Info(fmt.Sprintf("Got Results: %d", txIndex)) + channelResult := ChannelResult{txIndex, results} + resultChan <- channelResult + ctx.Logger().Info(fmt.Sprintf("ProcessTxConcurrent:: Sent to channel: %d", txIndex)) + metrics.IncrTransactionProcessTypeCounter(metrics.CONCURRENT) } func (app *App) ProcessBlockConcurrent( @@ -1003,9 +1018,17 @@ func (app *App) ProcessBlockConcurrent( // If there's no transactions then return empty results if len(txs) == 0 { + ctx.Logger().Info("ProcessBlockConcurrent:: No Transactions!") return txResults } + ctx.Logger().Info(fmt.Sprintf("ProcessBlockConcurrent:: Got transactions: %d", len(txs))) + go func() { + waitGroup.Wait() + ctx.Logger().Info("Closing Channels!") + close(resultChan) + }() + // For each transaction, start goroutine and deliver TX for txIndex, txBytes := range txs { waitGroup.Add(1) @@ -1021,7 +1044,8 @@ func (app *App) ProcessBlockConcurrent( } // Waits for all the transactions to complete - waitGroup.Wait() + // ctx.Logger().Info("ProcessBlockConcurrent:: Waiting for TXs!") + // waitGroup.Wait() // Gather Results and store it based on txIndex // Concurrent results may be in different order than the original txIndex @@ -1030,6 +1054,7 @@ func (app *App) ProcessBlockConcurrent( txResultsMap[result.txIndex] = result.result } + ctx.Logger().Info("ProcessBlockConcurrent:: Gathered Results!") // Gather Results and store in array based on txIndex to preserve ordering for txIndex := range txs { txResults = append(txResults, txResultsMap[txIndex]) @@ -1089,6 +1114,7 @@ func (app *App) ProcessBlock(ctx sdk.Context, txs [][]byte, req BlockProcessRequ txResults = app.ProcessBlockSynchronous(ctx, txs) } } else { + ctx.Logger().Info("ProcessBlock:: Building Mapping") completionSignalingMap, blockingSignalsMap := dependencyDag.BuildCompletionSignalMaps() txResults = app.ProcessBlockConcurrent(ctx, txs, completionSignalingMap, blockingSignalsMap) } diff --git a/app/graph.go b/app/graph.go index 8301de3094..baeff00a47 100644 --- a/app/graph.go +++ b/app/graph.go @@ -5,6 +5,7 @@ import ( acltypes "github.com/cosmos/cosmos-sdk/types/accesscontrol" mapset "github.com/deckarep/golang-set" + "github.com/k0kubun/pp" ) type DagNodeID int @@ -319,6 +320,13 @@ func (dag *Dag) BuildCompletionSignalMaps() ( } } } + println("DAG") + pp.Println(dag) + println("completionSignalingMap") + pp.Println(completionSignalingMap) + println("blockingSignalsMap") + pp.Println(blockingSignalsMap) + return completionSignalingMap, blockingSignalsMap } diff --git a/go.mod b/go.mod index d25f13cdc5..cc75ec4c1b 100644 --- a/go.mod +++ b/go.mod @@ -9,11 +9,12 @@ require ( github.com/cosmos/cosmos-sdk v0.45.4 github.com/cosmos/go-bip39 v1.0.0 github.com/cosmos/ibc-go/v3 v3.0.0 - github.com/deckarep/golang-set v1.8.0 + github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea github.com/gogo/protobuf v1.3.3 github.com/golang/protobuf v1.5.2 github.com/gorilla/mux v1.8.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0 + github.com/k0kubun/pp v3.0.1+incompatible github.com/pkg/errors v0.9.1 github.com/regen-network/cosmos-proto v0.3.1 github.com/spf13/cast v1.5.0 @@ -89,6 +90,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-colorable v0.1.12 // indirect github.com/mattn/go-isatty v0.0.14 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -131,7 +133,7 @@ require ( ) replace ( - github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.73 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.74 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.56 diff --git a/go.sum b/go.sum index 5c2e2530e1..a96db634e9 100644 --- a/go.sum +++ b/go.sum @@ -290,9 +290,8 @@ github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea h1:j4317fAZh7X6GqbFowYdYdI0L9bwxL07jyPZIdepyZ0= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= -github.com/deckarep/golang-set v1.8.0 h1:sk9/l/KqpunDwP7pSjUg0keiOOLEnOBHzykLrsPppp4= -github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS383rP6+o6qqo= github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= github.com/denis-tingaikin/go-header v0.4.3/go.mod h1:0wOCWuN71D5qIgE2nz9KrKmuYBAC2Mra5RassOIQ2/c= github.com/denisenkom/go-mssqldb v0.12.0/go.mod h1:iiK0YP1ZeepvmBQk/QpLEhhTNJgfzrpArPY/aFvc9yU= @@ -733,7 +732,10 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 h1:uC1QfSlInpQF+M0ao65imhwqKnz3Q2z/d8PWZRMQvDM= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= +github.com/k0kubun/pp v3.0.1+incompatible h1:3tqvf7QgUnZ5tXO6pNAZlrvHgl6DvifjDrd9g2S9Z40= +github.com/k0kubun/pp v3.0.1+incompatible/go.mod h1:GWse8YhT0p8pT4ir3ZgBbfZild3tgzSScAn6HmfYukg= github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/errcheck v1.6.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -799,6 +801,7 @@ github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVc github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= @@ -1097,8 +1100,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.73 h1:yFG32zV8BGCbsS/AQYUNc2ZFWWZ2lXv505Gkf6vauKE= -github.com/sei-protocol/sei-cosmos v0.1.73/go.mod h1:Oaj7toqHCkwEEb+sDIWxtfTkPZxOpMXBXDMvIIqUjpw= +github.com/sei-protocol/sei-cosmos v0.1.74 h1:issmbjmVpD/HMF4OO+0rJLwGWgONsgfCQGxn52ANsy8= +github.com/sei-protocol/sei-cosmos v0.1.74/go.mod h1:Oaj7toqHCkwEEb+sDIWxtfTkPZxOpMXBXDMvIIqUjpw= github.com/sei-protocol/sei-tendermint v0.1.56 h1:iRVhiIetj+GSwpBzaR9lqgvmgcOqmShfACS6x3tuBIw= github.com/sei-protocol/sei-tendermint v0.1.56/go.mod h1:Olwbjyagrpoxj5DAUhHxMTWDVEfQ3FYdpypaJ3+6Hs8= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= diff --git a/loadtest/contracts/deploy_ten_contracts.sh b/loadtest/contracts/deploy_ten_contracts.sh index 9250f78bc0..6adb8edf9b 100644 --- a/loadtest/contracts/deploy_ten_contracts.sh +++ b/loadtest/contracts/deploy_ten_contracts.sh @@ -15,17 +15,17 @@ echo cd $seihome/loadtest/contracts/mars && cargo build && docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.5 + cosmwasm/rust-optimizer:0.12.6 cd $seihome/loadtest/contracts/saturn && cargo build && docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.5 + cosmwasm/rust-optimizer:0.12.6 cd $seihome/loadtest/contracts/venus && cargo build && docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.5 + cosmwasm/rust-optimizer:0.12.6 # Deploy all contracts echo "Deploying contracts..." @@ -70,7 +70,7 @@ marsaddr4=$(python3 parser.py contract_address $marsinsres4) echo "Registering..." valaddr=$(printf "12345678\n" | $seidbin keys show $(printf "12345678\n" | $seidbin keys show node_admin --output json | jq -r .address) --bech=val --output json | jq -r '.address') -printf "12345678\n" | $seidbin tx staking delegate $valaddr 1000000000usei --from=$keyname --chain-id=$chainid -b block -y +printf "12345678\n" | $seidbin tx staking delegate $valaddr 1000000000usei --from=$keyname --chain-id=$chainid -—fees 2000usei -b block -y printf "12345678\n" | $seidbin tx dex register-contract $marsaddr $marsid false true -y --from=$keyname --chain-id=$chainid --fees=10000000usei --gas=500000 --broadcast-mode=block printf "12345678\n" | $seidbin tx dex register-contract $saturnaddr $saturnid false true -y --from=$keyname --chain-id=$chainid --fees=10000000usei --gas=500000 --broadcast-mode=block @@ -145,7 +145,7 @@ printf "12345678\n" | $seidbin tx gov vote $marsproposalid4 yes -y --from=$keyna sleep 90 -printf "12345678\n" | $seidbin tx staking unbond $valaddr 1000000000usei --from=$keyname --chain-id=$chainid -b block -y +printf "12345678\n" | $seidbin tx staking unbond $valaddr 1000000000usei --from=$keyname --chain-id=$chainid -b block -y -—fees 2000usei echo $marsaddr echo $saturnaddr diff --git a/loadtest/scripts/populate_genesis_accounts.py b/loadtest/scripts/populate_genesis_accounts.py index 6f92f1276a..12caa0aee5 100644 --- a/loadtest/scripts/populate_genesis_accounts.py +++ b/loadtest/scripts/populate_genesis_accounts.py @@ -1,15 +1,13 @@ import json import os -import multiprocessing import subprocess import sys import threading import time PARALLEISM=32 -LOCK=threading.Lock() -def add_genesis_account(account_name, local=False): +def add_genesis_account(account_name, lock, local=False): if local: add_key_cmd = f"yes | ~/go/bin/seid keys add {account_name} --keyring-backend test" else: @@ -41,7 +39,7 @@ def add_genesis_account(account_name, local=False): sleep_time = 1 while not success and retry_counter > 0: try: - with LOCK: + with lock: subprocess.check_call( [add_account_cmd], shell=True, @@ -54,10 +52,10 @@ def add_genesis_account(account_name, local=False): time.sleep(sleep_time) -def bulk_create_genesis_accounts(number_of_accounts, start_idx, is_local=False): +def bulk_create_genesis_accounts(number_of_accounts, start_idx, lock, is_local=False): for i in range(start_idx, start_idx + number_of_accounts): print(f"Creating account {i}") - add_genesis_account(f"ta{i}", is_local) + add_genesis_account(f"ta{i}", lock, is_local) def main(): args = sys.argv[1:] @@ -65,14 +63,15 @@ def main(): is_local = False if len(args) > 1 and args[1] == "loc": is_local = True - num_processes = number_of_accounts // PARALLEISM - processes = [] - for i in range(0, number_of_accounts, num_processes): - processes.append(multiprocessing.Process(target=bulk_create_genesis_accounts, args=(num_processes, i, is_local))) - for p in processes: - p.start() - for p in processes: - p.join() + num_threads = number_of_accounts // PARALLEISM + threads = [] + lock=threading.Lock() + for i in range(0, number_of_accounts, num_threads): + threads.append(threading.Thread(target=bulk_create_genesis_accounts, args=(num_threads, i, lock, is_local))) + for t in threads: + t.start() + for t in threads: + t.join() if __name__ == "__main__": - main() + main() \ No newline at end of file diff --git a/scripts/old_initialize_local.sh b/scripts/old_initialize_local.sh old mode 100644 new mode 100755 index ea0167b0cb..b274461496 --- a/scripts/old_initialize_local.sh +++ b/scripts/old_initialize_local.sh @@ -1,43 +1,35 @@ -#!/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 +#!/bin/bash + +keyname=admin +#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 diff --git a/utils/metrics/labels.go b/utils/metrics/labels.go new file mode 100644 index 0000000000..b09db68c27 --- /dev/null +++ b/utils/metrics/labels.go @@ -0,0 +1,6 @@ +package metrics + +const ( + CONCURRENT = "concurrent" + SYNCHRONOUS = "synchronous" +) \ No newline at end of file diff --git a/utils/metrics/metrics_util.go b/utils/metrics/metrics_util.go new file mode 100644 index 0000000000..838ecbde7c --- /dev/null +++ b/utils/metrics/metrics_util.go @@ -0,0 +1,33 @@ +package metrics + +import ( + "time" + + metrics "github.com/armon/go-metrics" + "github.com/cosmos/cosmos-sdk/telemetry" +) + +// Measures the time taken to execute a sudo msg +// Metric Names: +// +// sei_tx_process_type_count +func IncrTransactionProcessTypeCounter(processType string) { + metrics.IncrCounterWithLabels( + []string{"sei", "tx", "process", "type"}, + 1, + []metrics.Label{telemetry.NewLabel("type", processType)}, + ) +} + +// Measures the time taken to execute a sudo msg +// Metric Names: +// +// sei_deliver_tx_duration_miliseconds +// sei_deliver_tx_duration_miliseconds_count +// sei_deliver_tx_duration_miliseconds_sum +func MeasureDeliverTxDuration(start time.Time) { + metrics.MeasureSince( + []string{"sei", "deliver", "tx", "milliseconds"}, + start.UTC(), + ) +} \ No newline at end of file diff --git a/x/dex/keeper/epoch.go b/x/dex/keeper/epoch.go index d9ca566b7d..33f8012af4 100644 --- a/x/dex/keeper/epoch.go +++ b/x/dex/keeper/epoch.go @@ -14,6 +14,7 @@ func (k Keeper) SetEpoch(ctx sdk.Context, epoch uint64) { bz := make([]byte, 8) binary.BigEndian.PutUint64(bz, epoch) store.Set([]byte(EpochKey), bz) + ctx.Logger().Info(fmt.Sprintf("Current epoch %d", epoch)) } func (k Keeper) IsNewEpoch(ctx sdk.Context) (bool, uint64) { @@ -21,6 +22,5 @@ func (k Keeper) IsNewEpoch(ctx sdk.Context) (bool, uint64) { b := store.Get([]byte(EpochKey)) lastEpoch := binary.BigEndian.Uint64(b) currentEpoch := k.EpochKeeper.GetEpoch(ctx).CurrentEpoch - ctx.Logger().Info(fmt.Sprintf("Current epoch %d", currentEpoch)) return currentEpoch > lastEpoch, currentEpoch } diff --git a/x/oracle/simulation/operations.go b/x/oracle/simulation/operations.go index e7af90f2a9..6b3dc6c946 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,