From d8ccad047683731b105c5beee6da6bd8754d43a7 Mon Sep 17 00:00:00 2001 From: codchen Date: Thu, 20 Oct 2022 14:57:55 +0800 Subject: [PATCH 01/11] Add simple contract for wasm parallelization testing --- loadtest/contracts/deploy_simple.sh | 46 ++ loadtest/contracts/simpleexec/Cargo.lock | 733 ++++++++++++++++++ loadtest/contracts/simpleexec/Cargo.toml | 27 + loadtest/contracts/simpleexec/src/contract.rs | 29 + loadtest/contracts/simpleexec/src/lib.rs | 1 + loadtest/contracts/simpleexec/src/msg.rs | 11 + loadtest/main.go | 11 + 7 files changed, 858 insertions(+) create mode 100644 loadtest/contracts/deploy_simple.sh create mode 100644 loadtest/contracts/simpleexec/Cargo.lock create mode 100644 loadtest/contracts/simpleexec/Cargo.toml create mode 100644 loadtest/contracts/simpleexec/src/contract.rs create mode 100644 loadtest/contracts/simpleexec/src/lib.rs create mode 100644 loadtest/contracts/simpleexec/src/msg.rs diff --git a/loadtest/contracts/deploy_simple.sh b/loadtest/contracts/deploy_simple.sh new file mode 100644 index 0000000000..84c524fbf1 --- /dev/null +++ b/loadtest/contracts/deploy_simple.sh @@ -0,0 +1,46 @@ +#!/bin/bash +echo -n Admin Key Name: +read keyname +echo +echo -n Chain ID: +read chainid +echo +echo -n seid binary: +read seidbin +echo +echo -n sei-chain directory: +read seihome +echo + +# Build all contracts +echo "Building contracts..." + +cd $seihome/loadtest/contracts/simpleexec && 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 + +# Deploy all contracts +echo "Deploying contracts..." + +cd $seihome/loadtest/contracts +# store +echo "Storing..." +storeres=$(printf "12345678\n" | $seidbin tx wasm store simpleexec/artifacts/simpleexec.wasm -y --from=$keyname --chain-id=$chainid --gas=5000000 --fees=1000000usei --broadcast-mode=block --output=json) + +id=$(python3 parser.py code_id $storeres) + +# instantiate +echo "Instantiating..." + +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 + +insres=$(printf "12345678\n" | $seidbin tx wasm instantiate $id '{}' -y --no-admin --from=$keyname --chain-id=$chainid --gas=5000000 --fees=1000000usei --broadcast-mode=block --label=dex --output=json) +addr=$(python3 parser.py contract_address $insres) + +sleep 90 + +printf "12345678\n" | $seidbin tx staking unbond $valaddr 1000000000usei --from=$keyname --chain-id=$chainid -b block -y + +echo $addr diff --git a/loadtest/contracts/simpleexec/Cargo.lock b/loadtest/contracts/simpleexec/Cargo.lock new file mode 100644 index 0000000000..0f1356721a --- /dev/null +++ b/loadtest/contracts/simpleexec/Cargo.lock @@ -0,0 +1,733 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + +[[package]] +name = "base64ct" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf" + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +dependencies = [ + "generic-array", +] + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "const-oid" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "722e23542a15cea1f65d4a1419c4cfd7a26706c70871a13a04238ca3f40f1661" + +[[package]] +name = "cosmwasm-crypto" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28376836c7677e1ea6d6656a754582e88b91e544ce22fae42956d5fe5549a958" +dependencies = [ + "digest 0.10.5", + "ed25519-zebra", + "k256", + "rand_core 0.6.4", + "thiserror", +] + +[[package]] +name = "cosmwasm-derive" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eb69f4f7a8a4bce68c8fbd3646238fede1e77056e4ea31c5b6bfc37b709eec3" +dependencies = [ + "syn", +] + +[[package]] +name = "cosmwasm-schema" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a227cfeb9a7152b26a354b1c990e930e962f75fd68f57ab5ae2ef888c8524292" +dependencies = [ + "cosmwasm-schema-derive", + "schemars", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cosmwasm-schema-derive" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3626cb42eef870de67f791e873711255325224d86f281bf628c42abd295f3a14" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "cosmwasm-std" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46bf9157d060abbc55152aeadcace799d03dc630575daa66604079a1206cb060" +dependencies = [ + "base64", + "cosmwasm-crypto", + "cosmwasm-derive", + "derivative", + "forward_ref", + "hex", + "schemars", + "serde", + "serde-json-wasm", + "thiserror", + "uint", +] + +[[package]] +name = "cosmwasm-storage" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b61fcfef87d15af0263e2e4d792af80355929674a3b4e29ffb3c898ec6e25852" +dependencies = [ + "cosmwasm-std", + "serde", +] + +[[package]] +name = "cpufeatures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +dependencies = [ + "libc", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "curve25519-dalek" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle", + "zeroize", +] + +[[package]] +name = "cw-storage-plus" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "648b1507290bbc03a8d88463d7cd9b04b1fa0155e5eef366c4fa052b9caaac7a" +dependencies = [ + "cosmwasm-std", + "schemars", + "serde", +] + +[[package]] +name = "cw-utils" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dbaecb78c8e8abfd6b4258c7f4fbeb5c49a5e45ee4d910d3240ee8e1d714e1b" +dependencies = [ + "cosmwasm-std", + "schemars", + "serde", + "thiserror", +] + +[[package]] +name = "cw2" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04cf4639517490dd36b333bbd6c4fbd92e325fd0acf4683b41753bc5eb63bfc1" +dependencies = [ + "cosmwasm-std", + "cw-storage-plus", + "schemars", + "serde", +] + +[[package]] +name = "cw20" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cb782b8f110819a4eb5dbbcfed25ffba49ec16bbe32b4ad8da50a5ce68fec05" +dependencies = [ + "cosmwasm-std", + "cw-utils", + "schemars", + "serde", +] + +[[package]] +name = "der" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13dd2ae565c0a381dde7fade45fce95984c568bdcb4700a4fdbe3175e0380b2f" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" +dependencies = [ + "block-buffer 0.10.3", + "crypto-common", + "subtle", +] + +[[package]] +name = "dyn-clone" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2" + +[[package]] +name = "ecdsa" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" +dependencies = [ + "der", + "elliptic-curve", + "rfc6979", + "signature", +] + +[[package]] +name = "ed25519-zebra" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "403ef3e961ab98f0ba902771d29f842058578bb1ce7e3c59dad5a6a93e784c69" +dependencies = [ + "curve25519-dalek", + "hex", + "rand_core 0.6.4", + "serde", + "sha2 0.9.9", + "thiserror", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" +dependencies = [ + "base16ct", + "crypto-bigint", + "der", + "digest 0.10.5", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "ff" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df689201f395c6b90dfe87127685f8dbfc083a5e779e613575d8bd7314300c3e" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "forward_ref" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8cbd1169bd7b4a0a20d92b9af7a7e0422888bd38a6f5ec29c1fd8c1558a272e" + +[[package]] +name = "generic-array" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.5", +] + +[[package]] +name = "itoa" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" + +[[package]] +name = "k256" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "sha2 0.10.6", +] + +[[package]] +name = "libc" +version = "0.2.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "pkcs8" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "proc-macro2" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.7", +] + +[[package]] +name = "rfc6979" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88c86280f057430a52f4861551b092a01b419b8eacefc7c995eacb9dc132fe32" +dependencies = [ + "crypto-bigint", + "hmac", + "zeroize", +] + +[[package]] +name = "ryu" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" + +[[package]] +name = "schemars" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a5fb6c61f29e723026dc8e923d94c694313212abbecbbe5f55a7748eec5b307" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f188d036977451159430f3b8dc82ec76364a42b7e289c2b18a9a18f4470058e9" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn", +] + +[[package]] +name = "sec1" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "serde" +version = "1.0.145" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-json-wasm" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479b4dbc401ca13ee8ce902851b834893251404c4f3c65370a49e047a6be09a5" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.145" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_derive_internals" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.5", +] + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +dependencies = [ + "digest 0.10.5", + "rand_core 0.6.4", +] + +[[package]] +name = "simpleexec" +version = "0.1.0" +dependencies = [ + "base64", + "cosmwasm-schema", + "cosmwasm-std", + "cosmwasm-storage", + "cw-storage-plus", + "cw2", + "cw20", + "forward_ref", + "schemars", + "serde", + "serde-json-wasm", + "serde_json", + "thiserror", +] + +[[package]] +name = "spki" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "syn" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "thiserror" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "typenum" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" + +[[package]] +name = "uint" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a45526d29728d135c2900b0d30573fe3ee79fceb12ef534c7bb30e810a91b601" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unicode-ident" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "zeroize" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f" diff --git a/loadtest/contracts/simpleexec/Cargo.toml b/loadtest/contracts/simpleexec/Cargo.toml new file mode 100644 index 0000000000..aaa519ce27 --- /dev/null +++ b/loadtest/contracts/simpleexec/Cargo.toml @@ -0,0 +1,27 @@ +[package] +name = "simpleexec" +version = "0.1.0" +edition = "2018" + +[lib] +crate-type = ["cdylib", "rlib"] +doctest = false + +[dependencies] +cosmwasm-std = { version = "1.0.0" } +cosmwasm-storage = { version = "1.0.0" } +cw-storage-plus = "0.13.2" +serde-json-wasm = "0.4.1" +cw2 = "0.13.2" +cw20 = "0.13.2" +schemars = "0.8.3" +serde = { version = "1.0.127", default-features = false, features = ["derive"] } +serde_json = { version = "1.0", default-features = false, features = ["alloc"] } +thiserror = { version = "1.0.26" } +base64 = { version = "0.13.0" } + +[dependencies.forward_ref] +version = "1" + +[dev-dependencies] +cosmwasm-schema = { version = "1.0.0" } diff --git a/loadtest/contracts/simpleexec/src/contract.rs b/loadtest/contracts/simpleexec/src/contract.rs new file mode 100644 index 0000000000..be4d05d1f1 --- /dev/null +++ b/loadtest/contracts/simpleexec/src/contract.rs @@ -0,0 +1,29 @@ +use cosmwasm_std::{ + entry_point, Binary, DepsMut, Env, MessageInfo, + Response, StdError, StdResult, +}; + +use crate::msg::{ + InstantiateMsg, ExecuteMsg, +}; + +#[entry_point] +pub fn instantiate( + _deps: DepsMut, + _env: Env, + _info: MessageInfo, + _msg: InstantiateMsg, +) -> StdResult> { + Ok(Response::new()) +} + +#[entry_point] +pub fn execute(deps: DepsMut, env: Env, info: MessageInfo, msg: ExecuteMsg) -> Result { + match msg { + ExecuteMsg::Noop {} => process_noop(), + } +} + +pub fn process_noop() -> Result { + Ok(Response::new()) +} diff --git a/loadtest/contracts/simpleexec/src/lib.rs b/loadtest/contracts/simpleexec/src/lib.rs new file mode 100644 index 0000000000..12c5537b43 --- /dev/null +++ b/loadtest/contracts/simpleexec/src/lib.rs @@ -0,0 +1 @@ +pub mod msg; \ No newline at end of file diff --git a/loadtest/contracts/simpleexec/src/msg.rs b/loadtest/contracts/simpleexec/src/msg.rs new file mode 100644 index 0000000000..d0bbd42fe7 --- /dev/null +++ b/loadtest/contracts/simpleexec/src/msg.rs @@ -0,0 +1,11 @@ +use schemars::JsonSchema; +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, JsonSchema)] +pub struct InstantiateMsg {} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] +#[serde(rename_all = "snake_case")] +pub enum ExecuteMsg { + Noop {}, +} diff --git a/loadtest/main.go b/loadtest/main.go index 1759091eca..cf0074e4b5 100644 --- a/loadtest/main.go +++ b/loadtest/main.go @@ -15,6 +15,7 @@ import ( banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec/types" @@ -225,6 +226,16 @@ func generateMessage(config Config, key cryptotypes.PrivKey, batchSize uint64) s Amount: sdk.NewInt(1), }), } + case "wasm": + msg = &wasmtypes.MsgExecuteContract{ + Sender: sdk.AccAddress(key.PubKey().Address()).String(), + Contract: config.ContractDistr.Sample(), + Msg: []byte("{\"noop\":{}}"), + Funds: sdk.NewCoins(sdk.Coin{ + Denom: "usei", + Amount: sdk.NewInt(1), + }), + } case "dex": msgType := config.MsgTypeDistr.Sample() orderPlacements := []*dextypes.Order{} From 299f6dbf3d874239742641574184ac3f42d2b8ba Mon Sep 17 00:00:00 2001 From: codchen Date: Fri, 21 Oct 2022 22:24:07 +0800 Subject: [PATCH 02/11] bump cosmos --- app/app.go | 2 +- go.mod | 2 +- go.sum | 4 +- loadtest/config.json | 24 +++------ loadtest/contracts/deploy_simple.sh | 17 ++----- loadtest/contracts/simpleexec/src/contract.rs | 4 +- loadtest/contracts/simpleexec/src/lib.rs | 3 +- loadtest/scripts/populate_genesis_accounts.py | 5 +- loadtest/tx.go | 2 +- scripts/old_initialize_local.sh | 51 ++++++++++--------- 10 files changed, 49 insertions(+), 65 deletions(-) diff --git a/app/app.go b/app/app.go index 5b1a7bca10..ab42ed3213 100644 --- a/app/app.go +++ b/app/app.go @@ -1318,5 +1318,5 @@ func (app *App) decorateContextWithDexMemState(base context.Context) context.Con func init() { // override max wasm size to 1MB - wasmtypes.MaxWasmSize = 1024 * 1024 + wasmtypes.MaxWasmSize = 2048 * 1024 } diff --git a/go.mod b/go.mod index eeb77f3c14..170d42cfc6 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.176 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.182 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 fd2cf03824..9abb6bba1f 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.176 h1:6UgAcryRx6C+UlouHDjxuY7T7hj3nck91QoeppyPdLc= -github.com/sei-protocol/sei-cosmos v0.1.176/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= +github.com/sei-protocol/sei-cosmos v0.1.182 h1:CUjJn3FMzWhv7jstIuSLeI8LrVbIHzyb1t8/9wAssAU= +github.com/sei-protocol/sei-cosmos v0.1.182/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= diff --git a/loadtest/config.json b/loadtest/config.json index d8673d83b0..eed8069d92 100644 --- a/loadtest/config.json +++ b/loadtest/config.json @@ -1,7 +1,7 @@ { - "batch_size": 10, - "chain_id": "sei-loadtest-testnet", - "orders_per_block": 400, + "batch_size": 1, + "chain_id": "sei-chain", + "orders_per_block": 16, "rounds": 5, "price_distribution": { "min": "45", @@ -17,23 +17,11 @@ "limit_order_percentage": "0.2", "market_order_percentage": "0.8" }, - "message_type": "basic", + "message_type": "wasm", "contract_distribution": [ { - "contract_address": "sei1yw4xvtc43me9scqfr2jr2gzvcxd3a9y4eq7gaukreugw2yd2f8tsy4qgdm", - "percentage": "0.25" - }, - { - "contract_address": "sei1wug8sewp6cedgkmrmvhl3lf3tulagm9hnvy8p0rppz9yjw0g4wtq05fpn3", - "percentage": "0.25" - }, - { - "contract_address": "sei1qg5ega6dykkxc307y25pecuufrjkxkaggkkxh7nad0vhyhtuhw3scwfwpd", - "percentage": "0.25" - }, - { - "contract_address": "sei1zwv6feuzhy6a9wekh96cd57lsarmqlwxdypdsplw6zhfncqw6ftqr428wx", - "percentage": "0.25" + "contract_address": "sei14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9sh9m79m", + "percentage": "1" } ] } diff --git a/loadtest/contracts/deploy_simple.sh b/loadtest/contracts/deploy_simple.sh index 84c524fbf1..b7f346359e 100644 --- a/loadtest/contracts/deploy_simple.sh +++ b/loadtest/contracts/deploy_simple.sh @@ -15,10 +15,7 @@ echo # Build all contracts echo "Building contracts..." -cd $seihome/loadtest/contracts/simpleexec && 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 +cd $seihome/loadtest/contracts/simpleexec && cargo build --release --target wasm32-unknown-unknown # Deploy all contracts echo "Deploying contracts..." @@ -26,21 +23,15 @@ echo "Deploying contracts..." cd $seihome/loadtest/contracts # store echo "Storing..." -storeres=$(printf "12345678\n" | $seidbin tx wasm store simpleexec/artifacts/simpleexec.wasm -y --from=$keyname --chain-id=$chainid --gas=5000000 --fees=1000000usei --broadcast-mode=block --output=json) - +storeres=$(printf "12345678\n" | $seidbin tx wasm store simpleexec/target/wasm32-unknown-unknown/release/simpleexec.wasm -y --from=$keyname --chain-id=$chainid --gas=50000000 --fees=1000000usei --broadcast-mode=block --output=json) +echo $storeres id=$(python3 parser.py code_id $storeres) # instantiate echo "Instantiating..." -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 - insres=$(printf "12345678\n" | $seidbin tx wasm instantiate $id '{}' -y --no-admin --from=$keyname --chain-id=$chainid --gas=5000000 --fees=1000000usei --broadcast-mode=block --label=dex --output=json) +echo $insres addr=$(python3 parser.py contract_address $insres) -sleep 90 - -printf "12345678\n" | $seidbin tx staking unbond $valaddr 1000000000usei --from=$keyname --chain-id=$chainid -b block -y - echo $addr diff --git a/loadtest/contracts/simpleexec/src/contract.rs b/loadtest/contracts/simpleexec/src/contract.rs index be4d05d1f1..9cb05484b5 100644 --- a/loadtest/contracts/simpleexec/src/contract.rs +++ b/loadtest/contracts/simpleexec/src/contract.rs @@ -1,5 +1,5 @@ use cosmwasm_std::{ - entry_point, Binary, DepsMut, Env, MessageInfo, + entry_point, DepsMut, Env, MessageInfo, Response, StdError, StdResult, }; @@ -13,7 +13,7 @@ pub fn instantiate( _env: Env, _info: MessageInfo, _msg: InstantiateMsg, -) -> StdResult> { +) -> StdResult { Ok(Response::new()) } diff --git a/loadtest/contracts/simpleexec/src/lib.rs b/loadtest/contracts/simpleexec/src/lib.rs index 12c5537b43..1e07bc4466 100644 --- a/loadtest/contracts/simpleexec/src/lib.rs +++ b/loadtest/contracts/simpleexec/src/lib.rs @@ -1 +1,2 @@ -pub mod msg; \ No newline at end of file +pub mod msg; +pub mod contract; \ No newline at end of file diff --git a/loadtest/scripts/populate_genesis_accounts.py b/loadtest/scripts/populate_genesis_accounts.py index a85f9a4bc1..72ac5d9169 100644 --- a/loadtest/scripts/populate_genesis_accounts.py +++ b/loadtest/scripts/populate_genesis_accounts.py @@ -4,6 +4,7 @@ import sys import threading import time +from pathlib import Path PARALLEISM=32 @@ -99,13 +100,13 @@ def bulk_create_genesis_accounts(number_of_accounts, start_idx, is_local=False): def read_genesis_file(): - with open("/root/.sei/config/genesis.json", 'r') as f: + with open(str(Path.home()) + "/.sei/config/genesis.json", 'r') as f: return json.load(f) def write_genesis_file(data): print("Writing results to genesis file") - with open("/root/.sei/config/genesis.json", 'w') as f: + with open(str(Path.home()) + "/.sei/config/genesis.json", 'w') as f: json.dump(data, f, indent=4) diff --git a/loadtest/tx.go b/loadtest/tx.go index 6dced6c6c6..d9980c3720 100644 --- a/loadtest/tx.go +++ b/loadtest/tx.go @@ -20,7 +20,7 @@ func SendTx( seqDelta uint64, mu *sync.Mutex, ) func() { - (*txBuilder).SetGasLimit(200000000) + (*txBuilder).SetGasLimit(50000000) (*txBuilder).SetFeeAmount([]sdk.Coin{ sdk.NewCoin("usei", sdk.NewInt(10000000)), }) diff --git a/scripts/old_initialize_local.sh b/scripts/old_initialize_local.sh index ea0167b0cb..e82749e953 100644 --- a/scripts/old_initialize_local.sh +++ b/scripts/old_initialize_local.sh @@ -27,30 +27,29 @@ docker run -d --name jaeger \ echo "Building..." make install -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 +echo $password | sudo -S rm -r $HOME/.sei/ +echo $password | sudo -S rm -r $HOME/test_accounts/ +$HOME/go/bin/seid init demo --chain-id sei-chain +yes | $HOME/go/bin/seid keys add $keyname +yes | $HOME/go/bin/seid keys add faucet +printf '12345678\n' | $HOME/go/bin/seid add-genesis-account $($HOME/go/bin/seid keys show $keyname -a) 100000000000000000000usei,100000000000000000000uusdc,100000000000000000000uatom +printf '12345678\n' | $HOME/go/bin/seid add-genesis-account $($HOME/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 -jq '.validators[0] += {"pub_key":'$KEY'}' ~/.sei/config/tmp_genesis_2.json > ~/.sei/config/tmp_genesis_3.json -mv ~/.sei/config/tmp_genesis_3.json ~/.sei/config/genesis.json && rm ~/.sei/config/tmp_genesis.json && rm ~/.sei/config/tmp_genesis_2.json -~/go/bin/seid collect-gentxs -cat ~/.sei/config/genesis.json | jq '.app_state["crisis"]["constant_fee"]["denom"]="usei"' > ~/.sei/config/tmp_genesis.json && mv ~/.sei/config/tmp_genesis.json ~/.sei/config/genesis.json -cat ~/.sei/config/genesis.json | jq '.app_state["gov"]["deposit_params"]["min_deposit"][0]["denom"]="usei"' > ~/.sei/config/tmp_genesis.json && mv ~/.sei/config/tmp_genesis.json ~/.sei/config/genesis.json -cat ~/.sei/config/genesis.json | jq '.app_state["mint"]["params"]["mint_denom"]="usei"' > ~/.sei/config/tmp_genesis.json && mv ~/.sei/config/tmp_genesis.json ~/.sei/config/genesis.json -cat ~/.sei/config/genesis.json | jq '.app_state["staking"]["params"]["bond_denom"]="usei"' > ~/.sei/config/tmp_genesis.json && mv ~/.sei/config/tmp_genesis.json ~/.sei/config/genesis.json -cat ~/.sei/config/genesis.json | jq '.app_state["gov"]["deposit_params"]["max_deposit_period"]="300s"' > ~/.sei/config/tmp_genesis.json && mv ~/.sei/config/tmp_genesis.json ~/.sei/config/genesis.json -cat ~/.sei/config/genesis.json | jq '.app_state["gov"]["voting_params"]["voting_period"]="5s"' > ~/.sei/config/tmp_genesis.json && mv ~/.sei/config/tmp_genesis.json ~/.sei/config/genesis.json -cat ~/.sei/config/genesis.json | jq '.consensus_params["block"]["time_iota_ms"]="50"' > ~/.sei/config/tmp_genesis.json && mv ~/.sei/config/tmp_genesis.json ~/.sei/config/genesis.json +printf '12345678\n' | $HOME/go/bin/seid gentx $keyname 70000000000000000000usei --chain-id sei-chain + +KEY=$(jq '.pub_key' $HOME/.sei/config/priv_validator_key.json -c) +jq '.validators = [{}]' $HOME/.sei/config/genesis.json > $HOME/.sei/config/tmp_genesis.json +jq '.validators[0] += {"power":"70000000000000"}' $HOME/.sei/config/tmp_genesis.json > $HOME/.sei/config/tmp_genesis_2.json +jq '.validators[0] += {"pub_key":'$KEY'}' $HOME/.sei/config/tmp_genesis_2.json > $HOME/.sei/config/tmp_genesis_3.json +mv $HOME/.sei/config/tmp_genesis_3.json $HOME/.sei/config/genesis.json && rm $HOME/.sei/config/tmp_genesis.json && rm $HOME/.sei/config/tmp_genesis_2.json +$HOME/go/bin/seid collect-gentxs +cat $HOME/.sei/config/genesis.json | jq '.app_state["crisis"]["constant_fee"]["denom"]="usei"' > $HOME/.sei/config/tmp_genesis.json && mv $HOME/.sei/config/tmp_genesis.json $HOME/.sei/config/genesis.json +cat $HOME/.sei/config/genesis.json | jq '.app_state["gov"]["deposit_params"]["min_deposit"][0]["denom"]="usei"' > $HOME/.sei/config/tmp_genesis.json && mv $HOME/.sei/config/tmp_genesis.json $HOME/.sei/config/genesis.json +cat $HOME/.sei/config/genesis.json | jq '.app_state["mint"]["params"]["mint_denom"]="usei"' > $HOME/.sei/config/tmp_genesis.json && mv $HOME/.sei/config/tmp_genesis.json $HOME/.sei/config/genesis.json +cat $HOME/.sei/config/genesis.json | jq '.app_state["staking"]["params"]["bond_denom"]="usei"' > $HOME/.sei/config/tmp_genesis.json && mv $HOME/.sei/config/tmp_genesis.json $HOME/.sei/config/genesis.json +cat $HOME/.sei/config/genesis.json | jq '.app_state["gov"]["deposit_params"]["max_deposit_period"]="300s"' > $HOME/.sei/config/tmp_genesis.json && mv $HOME/.sei/config/tmp_genesis.json $HOME/.sei/config/genesis.json +cat $HOME/.sei/config/genesis.json | jq '.app_state["gov"]["voting_params"]["voting_period"]="5s"' > $HOME/.sei/config/tmp_genesis.json && mv $HOME/.sei/config/tmp_genesis.json $HOME/.sei/config/genesis.json +cat $HOME/.sei/config/genesis.json | jq '.consensus_params["block"]["time_iota_ms"]="50"' > $HOME/.sei/config/tmp_genesis.json && mv $HOME/.sei/config/tmp_genesis.json $HOME/.sei/config/genesis.json # set block time to 2s if [ ! -z "$1" ]; then @@ -60,11 +59,15 @@ else fi if [[ "$OSTYPE" == "linux-gnu"* ]]; then + 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 sed -i 's/timeout_prevote =.*/timeout_prevote = "2000ms"/g' $CONFIG_PATH sed -i 's/timeout_precommit =.*/timeout_precommit = "2000ms"/g' $CONFIG_PATH sed -i 's/timeout_commit =.*/timeout_commit = "2000ms"/g' $CONFIG_PATH sed -i 's/skip_timeout_commit =.*/skip_timeout_commit = false/g' $CONFIG_PATH elif [[ "$OSTYPE" == "darwin"* ]]; then + 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 sed -i '' 's/timeout_prevote =.*/timeout_prevote = "2000ms"/g' $CONFIG_PATH sed -i '' 's/timeout_precommit =.*/timeout_precommit = "2000ms"/g' $CONFIG_PATH sed -i '' 's/timeout_commit =.*/timeout_commit = "2000ms"/g' $CONFIG_PATH @@ -80,4 +83,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" $HOME/go/bin/seid start --trace --chain-id sei-chain \ No newline at end of file From b87b83d6db7e1b9655a63728eae011da6f854c9a Mon Sep 17 00:00:00 2001 From: codchen Date: Sun, 23 Oct 2022 22:26:49 +0800 Subject: [PATCH 03/11] bump --- app/abci.go | 11 +++++----- go.mod | 2 +- go.sum | 4 ++-- loadtest/contracts/deploy_simple.sh | 31 ++++++++++++++++++++++++----- loadtest/tx.go | 4 ++-- 5 files changed, 37 insertions(+), 15 deletions(-) diff --git a/app/abci.go b/app/abci.go index bcaf0de3d6..fcf5a6acb3 100644 --- a/app/abci.go +++ b/app/abci.go @@ -34,11 +34,6 @@ 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 }() return app.BaseApp.DeliverTx(ctx, req) } @@ -52,3 +47,9 @@ func (app *App) Commit(ctx context.Context) (res *abci.ResponseCommit, err error app.tracingInfo.BlockSpan = nil return app.BaseApp.Commit(ctx) } + +func (app *App) RunTxUnblocked(ctx sdk.Context, mode uint8, txBytes []byte) (gInfo sdk.GasInfo, result *sdk.Result, anteEvents []abci.Event, priority int64, err error) { + _, span := (*app.tracingInfo.Tracer).Start(app.tracingInfo.TracerContext, "DeliverTx") + defer span.End() + return app.BaseApp.RunTxUnblocked(ctx, mode, txBytes) +} diff --git a/go.mod b/go.mod index 170d42cfc6..6ee3b47ef0 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.182 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.186 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 9abb6bba1f..6b8776c64b 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.182 h1:CUjJn3FMzWhv7jstIuSLeI8LrVbIHzyb1t8/9wAssAU= -github.com/sei-protocol/sei-cosmos v0.1.182/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= +github.com/sei-protocol/sei-cosmos v0.1.186 h1:/bQISuyFXrhSPPScXVVNWFdvtB0B2ir5C1eXMzsKH7Q= +github.com/sei-protocol/sei-cosmos v0.1.186/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= diff --git a/loadtest/contracts/deploy_simple.sh b/loadtest/contracts/deploy_simple.sh index b7f346359e..31ea24d41b 100644 --- a/loadtest/contracts/deploy_simple.sh +++ b/loadtest/contracts/deploy_simple.sh @@ -11,6 +11,9 @@ echo echo -n sei-chain directory: read seihome echo +echo -n contract count: +read count +echo # Build all contracts echo "Building contracts..." @@ -21,17 +24,35 @@ cd $seihome/loadtest/contracts/simpleexec && cargo build --release --target wasm echo "Deploying contracts..." cd $seihome/loadtest/contracts + +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') +sres=$(printf "12345678\n" | $seidbin tx staking delegate $valaddr 1000000000usei --from=$keyname --chain-id=$chainid -b block -y --fees 2000usei) + +echo '{"title":"enable wasm","description":"enable wasm","message_dependency_mapping":[{"message_key":"cosmwasm.wasm.v1.MsgExecuteContract","access_ops":[{"access_type":"UNKNOWN","resource_type":"ANY","identifier_template":"*"},{"access_type":"COMMIT","resource_type":"ANY","identifier_template":"*"}],"dynamic_enabled": true}]}' > resource.json +res=$(printf "12345678\n" | $seidbin tx accesscontrol update-resource-dependency-mapping resource.json -y --from=$keyname --chain-id=$chainid --fees=10000000usei --gas=500000 --broadcast-mode=block --output=json) +proposalid=$(python3 parser.py proposal_id $res) +dres=$(printf "12345678\n" | $seidbin tx gov deposit $proposalid 10000000usei -y --from=$keyname --chain-id=$chainid --fees=10000000usei --gas=500000 --broadcast-mode=block) +vres=$(printf "12345678\n" | $seidbin tx gov vote $proposalid yes -y --from=$keyname --chain-id=$chainid --fees=10000000usei --gas=500000 --broadcast-mode=block) +for (( c=1; c<=$count; c++ )) +do # store -echo "Storing..." storeres=$(printf "12345678\n" | $seidbin tx wasm store simpleexec/target/wasm32-unknown-unknown/release/simpleexec.wasm -y --from=$keyname --chain-id=$chainid --gas=50000000 --fees=1000000usei --broadcast-mode=block --output=json) -echo $storeres id=$(python3 parser.py code_id $storeres) # instantiate -echo "Instantiating..." - insres=$(printf "12345678\n" | $seidbin tx wasm instantiate $id '{}' -y --no-admin --from=$keyname --chain-id=$chainid --gas=5000000 --fees=1000000usei --broadcast-mode=block --label=dex --output=json) -echo $insres addr=$(python3 parser.py contract_address $insres) +rm -f wasm.json +echo '{"title":"enable wasm '$addr'","description":"enable wasm '$addr'","contract_address":"'$addr'","wasm_dependency_mapping":{"enabled":true,"access_ops":[{"access_type":"WRITE","resource_type":"KV_WASM","identifier_template":"'$addr'"},{"access_type":"COMMIT","resource_type":"ANY","identifier_template":"*"}]}}' > wasm.json +res=$(printf "12345678\n" | $seidbin tx accesscontrol update-wasm-dependency-mapping wasm.json -y --from=$keyname --chain-id=$chainid --fees=10000000usei --gas=500000 --broadcast-mode=block --output=json) +proposalid=$(python3 parser.py proposal_id $res) +dres=$(printf "12345678\n" | $seidbin tx gov deposit $proposalid 10000000usei -y --from=$keyname --chain-id=$chainid --fees=10000000usei --gas=500000 --broadcast-mode=block) +vres=$(printf "12345678\n" | $seidbin tx gov vote $proposalid yes -y --from=$keyname --chain-id=$chainid --fees=10000000usei --gas=500000 --broadcast-mode=block) + echo $addr +done + +sleep 90 + +ures=$(printf "12345678\n" | $seidbin tx staking unbond $valaddr 1000000000usei --from=$keyname --chain-id=$chainid -b block -y --fees 2000usei) \ No newline at end of file diff --git a/loadtest/tx.go b/loadtest/tx.go index d9980c3720..77833695f9 100644 --- a/loadtest/tx.go +++ b/loadtest/tx.go @@ -20,9 +20,9 @@ func SendTx( seqDelta uint64, mu *sync.Mutex, ) func() { - (*txBuilder).SetGasLimit(50000000) + (*txBuilder).SetGasLimit(50000) (*txBuilder).SetFeeAmount([]sdk.Coin{ - sdk.NewCoin("usei", sdk.NewInt(10000000)), + sdk.NewCoin("usei", sdk.NewInt(100000)), }) SignTx(txBuilder, key, seqDelta) txBytes, _ := TestConfig.TxConfig.TxEncoder()((*txBuilder).GetTx()) From 724692668fece556c169d03df6eb626d63781405 Mon Sep 17 00:00:00 2001 From: codchen Date: Sun, 23 Oct 2022 23:14:37 +0800 Subject: [PATCH 04/11] bump --- app/abci.go | 5 +++-- go.mod | 2 +- go.sum | 4 ++-- loadtest/tx.go | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/abci.go b/app/abci.go index fcf5a6acb3..55fabfad13 100644 --- a/app/abci.go +++ b/app/abci.go @@ -4,6 +4,7 @@ import ( "context" "time" + "github.com/cosmos/cosmos-sdk/baseapp" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/sei-protocol/sei-chain/utils/metrics" abci "github.com/tendermint/tendermint/abci/types" @@ -48,8 +49,8 @@ func (app *App) Commit(ctx context.Context) (res *abci.ResponseCommit, err error return app.BaseApp.Commit(ctx) } -func (app *App) RunTxUnblocked(ctx sdk.Context, mode uint8, txBytes []byte) (gInfo sdk.GasInfo, result *sdk.Result, anteEvents []abci.Event, priority int64, err error) { +func (app *App) RunTx(ctx sdk.Context, mode baseapp.RunTxMode, txBytes []byte) (gInfo sdk.GasInfo, result *sdk.Result, anteEvents []abci.Event, priority int64, err error) { _, span := (*app.tracingInfo.Tracer).Start(app.tracingInfo.TracerContext, "DeliverTx") defer span.End() - return app.BaseApp.RunTxUnblocked(ctx, mode, txBytes) + return app.BaseApp.RunTx(ctx, mode, txBytes) } diff --git a/go.mod b/go.mod index 6ee3b47ef0..3f1eeae2c5 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.186 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.187 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 6b8776c64b..c150393229 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.186 h1:/bQISuyFXrhSPPScXVVNWFdvtB0B2ir5C1eXMzsKH7Q= -github.com/sei-protocol/sei-cosmos v0.1.186/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= +github.com/sei-protocol/sei-cosmos v0.1.187 h1:LCSsg6sTYGhp+KabvcTF3ou/gOR9yDcKWjrfwNZg+go= +github.com/sei-protocol/sei-cosmos v0.1.187/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= diff --git a/loadtest/tx.go b/loadtest/tx.go index 77833695f9..661b6326e2 100644 --- a/loadtest/tx.go +++ b/loadtest/tx.go @@ -20,7 +20,7 @@ func SendTx( seqDelta uint64, mu *sync.Mutex, ) func() { - (*txBuilder).SetGasLimit(50000) + (*txBuilder).SetGasLimit(100000) (*txBuilder).SetFeeAmount([]sdk.Coin{ sdk.NewCoin("usei", sdk.NewInt(100000)), }) From 8604ccdd32e67018add7d6c2b298d8f60d0be785 Mon Sep 17 00:00:00 2001 From: codchen Date: Mon, 24 Oct 2022 00:05:19 +0800 Subject: [PATCH 05/11] bump --- app/abci.go | 20 ++++++++++++++------ go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/app/abci.go b/app/abci.go index 55fabfad13..2529657ed7 100644 --- a/app/abci.go +++ b/app/abci.go @@ -9,6 +9,7 @@ import ( "github.com/sei-protocol/sei-chain/utils/metrics" abci "github.com/tendermint/tendermint/abci/types" "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/trace" ) func (app *App) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) (res abci.ResponseBeginBlock) { @@ -35,6 +36,19 @@ 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()) + var span trace.Span + ctx = ctx.WithContext( + context.WithValue( + context.WithValue( + ctx.Context(), baseapp.RunTxPreHookKey, func() { + _, span = (*app.tracingInfo.Tracer).Start(app.tracingInfo.TracerContext, "DeliverTx") + }, + ), + baseapp.RunTxPostHookKey, func() { + span.End() + }, + ), + ) return app.BaseApp.DeliverTx(ctx, req) } @@ -48,9 +62,3 @@ func (app *App) Commit(ctx context.Context) (res *abci.ResponseCommit, err error app.tracingInfo.BlockSpan = nil return app.BaseApp.Commit(ctx) } - -func (app *App) RunTx(ctx sdk.Context, mode baseapp.RunTxMode, txBytes []byte) (gInfo sdk.GasInfo, result *sdk.Result, anteEvents []abci.Event, priority int64, err error) { - _, span := (*app.tracingInfo.Tracer).Start(app.tracingInfo.TracerContext, "DeliverTx") - defer span.End() - return app.BaseApp.RunTx(ctx, mode, txBytes) -} diff --git a/go.mod b/go.mod index 3f1eeae2c5..002b47806b 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.187 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.188 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 c150393229..18a7fb22bc 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.187 h1:LCSsg6sTYGhp+KabvcTF3ou/gOR9yDcKWjrfwNZg+go= -github.com/sei-protocol/sei-cosmos v0.1.187/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= +github.com/sei-protocol/sei-cosmos v0.1.188 h1:BHNUozdaQpR7z37/n1FO71FyZdJW2Urh8DdksWAijWs= +github.com/sei-protocol/sei-cosmos v0.1.188/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 3960fbb61fe5bb067f021e372deaa2e016fcf7c2 Mon Sep 17 00:00:00 2001 From: codchen Date: Mon, 24 Oct 2022 12:31:59 +0800 Subject: [PATCH 06/11] bump --- app/antedecorators/depdecorators/signers.go | 6 ++---- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/app/antedecorators/depdecorators/signers.go b/app/antedecorators/depdecorators/signers.go index f123e8dca5..ce0608d5ed 100644 --- a/app/antedecorators/depdecorators/signers.go +++ b/app/antedecorators/depdecorators/signers.go @@ -5,8 +5,6 @@ import ( sdkacltypes "github.com/cosmos/cosmos-sdk/types/accesscontrol" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" authsigning "github.com/cosmos/cosmos-sdk/x/auth/signing" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - utils "github.com/sei-protocol/sei-chain/aclmapping/utils" ) type SignerDepDecorator struct { @@ -27,8 +25,8 @@ func (d SignerDepDecorator) AnteDeps(txDeps []sdkacltypes.AccessOperation, tx sd for _, signer := range sigTx.GetSigners() { txDeps = append(txDeps, sdkacltypes.AccessOperation{ AccessType: accessType, - ResourceType: sdkacltypes.ResourceType_KV, - IdentifierTemplate: utils.GetPrefixedIdentifierTemplatePerModule(utils.ACCOUNT, signer.String(), string(authtypes.AddressStoreKeyPrefix)), + ResourceType: sdkacltypes.ResourceType_KV_ACC, + IdentifierTemplate: signer.String(), }) } return next(txDeps, tx) diff --git a/go.mod b/go.mod index 002b47806b..e90023296d 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.188 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.190 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 18a7fb22bc..5368b15da0 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.188 h1:BHNUozdaQpR7z37/n1FO71FyZdJW2Urh8DdksWAijWs= -github.com/sei-protocol/sei-cosmos v0.1.188/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= +github.com/sei-protocol/sei-cosmos v0.1.190 h1:dbhA6EQrcx66X+fekJ5e27QkZ7IOcyPNgLFcTJeFSJQ= +github.com/sei-protocol/sei-cosmos v0.1.190/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 818a92e89ba0d37f4c56b899511e8a7d79aa759e Mon Sep 17 00:00:00 2001 From: codchen Date: Mon, 24 Oct 2022 14:33:34 +0800 Subject: [PATCH 07/11] bump --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e90023296d..463dc9d01e 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.190 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.191 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 5368b15da0..907ebd7fd6 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.190 h1:dbhA6EQrcx66X+fekJ5e27QkZ7IOcyPNgLFcTJeFSJQ= -github.com/sei-protocol/sei-cosmos v0.1.190/go.mod h1:8ccWQxpBkWbpvBos/T4QO9K9gQxFs0duTqKRnagKo+0= +github.com/sei-protocol/sei-cosmos v0.1.191 h1:VMFNA/vxI2HZBLinop0Y/Xq6wSd5NCae7UtdoR5LCQk= +github.com/sei-protocol/sei-cosmos v0.1.191/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 c35cbd4d4738c25cf2af1d92cfbac80bb5995d99 Mon Sep 17 00:00:00 2001 From: codchen Date: Tue, 25 Oct 2022 11:45:47 +0800 Subject: [PATCH 08/11] write exec --- loadtest/contracts/simpleexec/src/contract.rs | 19 +++++++++++++++++-- loadtest/contracts/simpleexec/src/lib.rs | 3 ++- loadtest/contracts/simpleexec/src/msg.rs | 1 + loadtest/contracts/simpleexec/src/state.rs | 5 +++++ loadtest/main.go | 2 +- loadtest/tx.go | 2 +- 6 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 loadtest/contracts/simpleexec/src/state.rs diff --git a/loadtest/contracts/simpleexec/src/contract.rs b/loadtest/contracts/simpleexec/src/contract.rs index 9cb05484b5..395c62df02 100644 --- a/loadtest/contracts/simpleexec/src/contract.rs +++ b/loadtest/contracts/simpleexec/src/contract.rs @@ -1,11 +1,12 @@ use cosmwasm_std::{ entry_point, DepsMut, Env, MessageInfo, - Response, StdError, StdResult, + Response, StdError, StdResult, Uint128 }; use crate::msg::{ InstantiateMsg, ExecuteMsg, }; +use crate::state::{COUNTER, WHO}; #[entry_point] pub fn instantiate( @@ -18,12 +19,26 @@ pub fn instantiate( } #[entry_point] -pub fn execute(deps: DepsMut, env: Env, info: MessageInfo, msg: ExecuteMsg) -> Result { +pub fn execute(deps: DepsMut, _env: Env, info: MessageInfo, msg: ExecuteMsg) -> Result { match msg { ExecuteMsg::Noop {} => process_noop(), + ExecuteMsg::NamedCounter {} => process_named_counter(deps, info), } } pub fn process_noop() -> Result { Ok(Response::new()) } + +pub fn process_named_counter(deps: DepsMut, info: MessageInfo) -> Result { + match COUNTER.may_load(deps.storage)? { + Some(old) => { + COUNTER.save(deps.storage, &Uint128::from(old.u128() + 1))?; + }, + None => { + COUNTER.save(deps.storage, &Uint128::one())?; + } + } + WHO.save(deps.storage, &info.sender.to_string())?; + Ok(Response::new()) +} \ No newline at end of file diff --git a/loadtest/contracts/simpleexec/src/lib.rs b/loadtest/contracts/simpleexec/src/lib.rs index 1e07bc4466..1542cfe25e 100644 --- a/loadtest/contracts/simpleexec/src/lib.rs +++ b/loadtest/contracts/simpleexec/src/lib.rs @@ -1,2 +1,3 @@ pub mod msg; -pub mod contract; \ No newline at end of file +pub mod contract; +pub mod state; \ No newline at end of file diff --git a/loadtest/contracts/simpleexec/src/msg.rs b/loadtest/contracts/simpleexec/src/msg.rs index d0bbd42fe7..1a31aee41d 100644 --- a/loadtest/contracts/simpleexec/src/msg.rs +++ b/loadtest/contracts/simpleexec/src/msg.rs @@ -8,4 +8,5 @@ pub struct InstantiateMsg {} #[serde(rename_all = "snake_case")] pub enum ExecuteMsg { Noop {}, + NamedCounter {}, } diff --git a/loadtest/contracts/simpleexec/src/state.rs b/loadtest/contracts/simpleexec/src/state.rs new file mode 100644 index 0000000000..bc832d5884 --- /dev/null +++ b/loadtest/contracts/simpleexec/src/state.rs @@ -0,0 +1,5 @@ +use cosmwasm_std::Uint128; +use cw_storage_plus::{Item}; + +pub const COUNTER: Item = Item::new("counter"); +pub const WHO: Item = Item::new("who"); \ No newline at end of file diff --git a/loadtest/main.go b/loadtest/main.go index cf0074e4b5..8dd47ba0d9 100644 --- a/loadtest/main.go +++ b/loadtest/main.go @@ -230,7 +230,7 @@ func generateMessage(config Config, key cryptotypes.PrivKey, batchSize uint64) s msg = &wasmtypes.MsgExecuteContract{ Sender: sdk.AccAddress(key.PubKey().Address()).String(), Contract: config.ContractDistr.Sample(), - Msg: []byte("{\"noop\":{}}"), + Msg: []byte("{\"named_counter\":{}}"), Funds: sdk.NewCoins(sdk.Coin{ Denom: "usei", Amount: sdk.NewInt(1), diff --git a/loadtest/tx.go b/loadtest/tx.go index 661b6326e2..255eb3d058 100644 --- a/loadtest/tx.go +++ b/loadtest/tx.go @@ -20,7 +20,7 @@ func SendTx( seqDelta uint64, mu *sync.Mutex, ) func() { - (*txBuilder).SetGasLimit(100000) + (*txBuilder).SetGasLimit(200000) (*txBuilder).SetFeeAmount([]sdk.Coin{ sdk.NewCoin("usei", sdk.NewInt(100000)), }) From d59e8cec3dd3073cdb2ebd81a595aa20fff6608f Mon Sep 17 00:00:00 2001 From: codchen Date: Tue, 25 Oct 2022 14:38:57 +0800 Subject: [PATCH 09/11] msg --- loadtest/contracts/deploy_simple.sh | 2 +- loadtest/contracts/simpleexec/src/contract.rs | 12 +++++++++++- loadtest/contracts/simpleexec/src/msg.rs | 1 + loadtest/main.go | 2 +- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/loadtest/contracts/deploy_simple.sh b/loadtest/contracts/deploy_simple.sh index 31ea24d41b..6f412da1dd 100644 --- a/loadtest/contracts/deploy_simple.sh +++ b/loadtest/contracts/deploy_simple.sh @@ -44,7 +44,7 @@ insres=$(printf "12345678\n" | $seidbin tx wasm instantiate $id '{}' -y --no-adm addr=$(python3 parser.py contract_address $insres) rm -f wasm.json -echo '{"title":"enable wasm '$addr'","description":"enable wasm '$addr'","contract_address":"'$addr'","wasm_dependency_mapping":{"enabled":true,"access_ops":[{"access_type":"WRITE","resource_type":"KV_WASM","identifier_template":"'$addr'"},{"access_type":"COMMIT","resource_type":"ANY","identifier_template":"*"}]}}' > wasm.json +echo '{"title":"enable wasm '$addr'","description":"enable wasm '$addr'","contract_address":"'$addr'","wasm_dependency_mapping":{"enabled":true,"access_ops":[{"access_type":"WRITE","resource_type":"KV_WASM","identifier_template":"'$addr'"},{"access_type":"WRITE","resource_type":"KV_BANK","identifier_template":"*"},{"access_type":"COMMIT","resource_type":"ANY","identifier_template":"*"}]}}' > wasm.json res=$(printf "12345678\n" | $seidbin tx accesscontrol update-wasm-dependency-mapping wasm.json -y --from=$keyname --chain-id=$chainid --fees=10000000usei --gas=500000 --broadcast-mode=block --output=json) proposalid=$(python3 parser.py proposal_id $res) dres=$(printf "12345678\n" | $seidbin tx gov deposit $proposalid 10000000usei -y --from=$keyname --chain-id=$chainid --fees=10000000usei --gas=500000 --broadcast-mode=block) diff --git a/loadtest/contracts/simpleexec/src/contract.rs b/loadtest/contracts/simpleexec/src/contract.rs index 395c62df02..a80dfb532a 100644 --- a/loadtest/contracts/simpleexec/src/contract.rs +++ b/loadtest/contracts/simpleexec/src/contract.rs @@ -1,6 +1,6 @@ use cosmwasm_std::{ entry_point, DepsMut, Env, MessageInfo, - Response, StdError, StdResult, Uint128 + Response, StdError, StdResult, Uint128, BankMsg, }; use crate::msg::{ @@ -23,6 +23,7 @@ pub fn execute(deps: DepsMut, _env: Env, info: MessageInfo, msg: ExecuteMsg) -> match msg { ExecuteMsg::Noop {} => process_noop(), ExecuteMsg::NamedCounter {} => process_named_counter(deps, info), + ExecuteMsg::Send {} => process_send(info), } } @@ -41,4 +42,13 @@ pub fn process_named_counter(deps: DepsMut, info: MessageInfo) -> Result Result { + let mut res: Response = Response::new(); + res = res.add_message(BankMsg::Send { + to_address: info.sender.to_string(), + amount: info.funds, + }); + Ok(res) } \ No newline at end of file diff --git a/loadtest/contracts/simpleexec/src/msg.rs b/loadtest/contracts/simpleexec/src/msg.rs index 1a31aee41d..c6e2093e73 100644 --- a/loadtest/contracts/simpleexec/src/msg.rs +++ b/loadtest/contracts/simpleexec/src/msg.rs @@ -9,4 +9,5 @@ pub struct InstantiateMsg {} pub enum ExecuteMsg { Noop {}, NamedCounter {}, + Send {}, } diff --git a/loadtest/main.go b/loadtest/main.go index 8dd47ba0d9..883a810a20 100644 --- a/loadtest/main.go +++ b/loadtest/main.go @@ -230,7 +230,7 @@ func generateMessage(config Config, key cryptotypes.PrivKey, batchSize uint64) s msg = &wasmtypes.MsgExecuteContract{ Sender: sdk.AccAddress(key.PubKey().Address()).String(), Contract: config.ContractDistr.Sample(), - Msg: []byte("{\"named_counter\":{}}"), + Msg: []byte("{\"send\":{}}"), Funds: sdk.NewCoins(sdk.Coin{ Denom: "usei", Amount: sdk.NewInt(1), From b9ce9074049ab5322e782275a12622b95ba4f78e Mon Sep 17 00:00:00 2001 From: codchen Date: Wed, 26 Oct 2022 15:00:28 +0800 Subject: [PATCH 10/11] read stake --- loadtest/contracts/simpleexec/Cargo.toml | 2 +- loadtest/contracts/simpleexec/src/contract.rs | 8 +++++++- loadtest/contracts/simpleexec/src/msg.rs | 1 + loadtest/main.go | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/loadtest/contracts/simpleexec/Cargo.toml b/loadtest/contracts/simpleexec/Cargo.toml index aaa519ce27..c4a5828cf2 100644 --- a/loadtest/contracts/simpleexec/Cargo.toml +++ b/loadtest/contracts/simpleexec/Cargo.toml @@ -8,7 +8,7 @@ crate-type = ["cdylib", "rlib"] doctest = false [dependencies] -cosmwasm-std = { version = "1.0.0" } +cosmwasm-std = { version = "1.0.0", features = ["staking"] } cosmwasm-storage = { version = "1.0.0" } cw-storage-plus = "0.13.2" serde-json-wasm = "0.4.1" diff --git a/loadtest/contracts/simpleexec/src/contract.rs b/loadtest/contracts/simpleexec/src/contract.rs index a80dfb532a..6e06d6627f 100644 --- a/loadtest/contracts/simpleexec/src/contract.rs +++ b/loadtest/contracts/simpleexec/src/contract.rs @@ -1,6 +1,6 @@ use cosmwasm_std::{ entry_point, DepsMut, Env, MessageInfo, - Response, StdError, StdResult, Uint128, BankMsg, + Response, StdError, StdResult, Uint128, BankMsg, QueryRequest, BondedDenomResponse, }; use crate::msg::{ @@ -24,6 +24,7 @@ pub fn execute(deps: DepsMut, _env: Env, info: MessageInfo, msg: ExecuteMsg) -> ExecuteMsg::Noop {} => process_noop(), ExecuteMsg::NamedCounter {} => process_named_counter(deps, info), ExecuteMsg::Send {} => process_send(info), + ExecuteMsg::ReadStake {} => process_read_stake(deps), } } @@ -51,4 +52,9 @@ pub fn process_send(info: MessageInfo) -> Result { amount: info.funds, }); Ok(res) +} + +pub fn process_read_stake(deps: DepsMut) -> Result { + let _: BondedDenomResponse = deps.querier.query(&QueryRequest::Staking(cosmwasm_std::StakingQuery::BondedDenom {})).unwrap(); + Ok(Response::new()) } \ No newline at end of file diff --git a/loadtest/contracts/simpleexec/src/msg.rs b/loadtest/contracts/simpleexec/src/msg.rs index c6e2093e73..8b92e592ac 100644 --- a/loadtest/contracts/simpleexec/src/msg.rs +++ b/loadtest/contracts/simpleexec/src/msg.rs @@ -10,4 +10,5 @@ pub enum ExecuteMsg { Noop {}, NamedCounter {}, Send {}, + ReadStake {}, } diff --git a/loadtest/main.go b/loadtest/main.go index 883a810a20..5802145664 100644 --- a/loadtest/main.go +++ b/loadtest/main.go @@ -230,7 +230,7 @@ func generateMessage(config Config, key cryptotypes.PrivKey, batchSize uint64) s msg = &wasmtypes.MsgExecuteContract{ Sender: sdk.AccAddress(key.PubKey().Address()).String(), Contract: config.ContractDistr.Sample(), - Msg: []byte("{\"send\":{}}"), + Msg: []byte("{\"read_stake\":{}}"), Funds: sdk.NewCoins(sdk.Coin{ Denom: "usei", Amount: sdk.NewInt(1), From 57a36e548b2869fe975a2010ac6bcc010f6df4fd Mon Sep 17 00:00:00 2001 From: codchen Date: Wed, 26 Oct 2022 18:09:52 +0800 Subject: [PATCH 11/11] bump --- loadtest/contracts/deploy_simple.sh | 2 +- loadtest/main.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/loadtest/contracts/deploy_simple.sh b/loadtest/contracts/deploy_simple.sh index 6f412da1dd..31ea24d41b 100644 --- a/loadtest/contracts/deploy_simple.sh +++ b/loadtest/contracts/deploy_simple.sh @@ -44,7 +44,7 @@ insres=$(printf "12345678\n" | $seidbin tx wasm instantiate $id '{}' -y --no-adm addr=$(python3 parser.py contract_address $insres) rm -f wasm.json -echo '{"title":"enable wasm '$addr'","description":"enable wasm '$addr'","contract_address":"'$addr'","wasm_dependency_mapping":{"enabled":true,"access_ops":[{"access_type":"WRITE","resource_type":"KV_WASM","identifier_template":"'$addr'"},{"access_type":"WRITE","resource_type":"KV_BANK","identifier_template":"*"},{"access_type":"COMMIT","resource_type":"ANY","identifier_template":"*"}]}}' > wasm.json +echo '{"title":"enable wasm '$addr'","description":"enable wasm '$addr'","contract_address":"'$addr'","wasm_dependency_mapping":{"enabled":true,"access_ops":[{"access_type":"WRITE","resource_type":"KV_WASM","identifier_template":"'$addr'"},{"access_type":"COMMIT","resource_type":"ANY","identifier_template":"*"}]}}' > wasm.json res=$(printf "12345678\n" | $seidbin tx accesscontrol update-wasm-dependency-mapping wasm.json -y --from=$keyname --chain-id=$chainid --fees=10000000usei --gas=500000 --broadcast-mode=block --output=json) proposalid=$(python3 parser.py proposal_id $res) dres=$(printf "12345678\n" | $seidbin tx gov deposit $proposalid 10000000usei -y --from=$keyname --chain-id=$chainid --fees=10000000usei --gas=500000 --broadcast-mode=block) diff --git a/loadtest/main.go b/loadtest/main.go index 5802145664..883a810a20 100644 --- a/loadtest/main.go +++ b/loadtest/main.go @@ -230,7 +230,7 @@ func generateMessage(config Config, key cryptotypes.PrivKey, batchSize uint64) s msg = &wasmtypes.MsgExecuteContract{ Sender: sdk.AccAddress(key.PubKey().Address()).String(), Contract: config.ContractDistr.Sample(), - Msg: []byte("{\"read_stake\":{}}"), + Msg: []byte("{\"send\":{}}"), Funds: sdk.NewCoins(sdk.Coin{ Denom: "usei", Amount: sdk.NewInt(1),