Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rejected bad transaction #103

Open
sunnyk56 opened this issue Aug 18, 2021 · 8 comments
Open

Rejected bad transaction #103

sunnyk56 opened this issue Aug 18, 2021 · 8 comments

Comments

@sunnyk56
Copy link

Hi,
I am trying to use the tm-load-test tool for Benchmarking.
I have tried to use it in Standalone Mode as well as Master/Slave Mode using the command as given below:

In standalone mode
tm-load-test -c 1 -T 10 -r 1000 -s 250
--broadcast-tx-method async
--endpoints ws://tm-endpoint1.somewhere.com:26657/websocket,ws://tm-endpoint2.somewhere.com:26657/websocket
--stats-output /path/to/save/stats.csv

From the master in master/slave mode
tm-load-test
master
--expect-slaves 2
--bind localhost:26670
-c 1 -T 10 -r 1000 -s 250
--broadcast-tx-method async
--endpoints ws://tm-endpoint1.somewhere.com:26657/websocket,ws://tm-endpoint2.somewhere.com:26657/websocket
--stats-output /path/to/save/stats.csv

and output in CSV file and the output look like
Parameter,Value,Units
total_time,303.001,seconds
total_txs,2686979,count
total_bytes,671868750,bytes
avg_tx_rate,8867.889417,transactions per second
avg_data_rate,2217381.593975,bytes per second

I have checked the validator logs of these validator nodes there are some error logs

9:40AM INF WSJSONRPC method=broadcast_tx_async module=rpc-server protocol=websocket remote={"IP":"162.243.168.129","Port":39866,"Zone":""}
9:40AM INF Rejected bad transaction err=null module=mempool peerID= res={"check_tx":{"code":2,"codespace":"sdk","data":null,"events":[],"gas_used":"10572042","gas_wanted":"0","info":"","log":"errUnknownField "tx.TxRaw": {TagNum: 10, WireType:"end_group"}: tx parse error"}} tx="\x1fQ?mPm\x02)}?????,???Z?P\x13?????m?Z"
9:40AM INF WSJSONRPC method=broadcast_tx_async module=rpc-server protocol=websocket remote={"IP":"162.243.168.129","Port":39866,"Zone":""}
9:40AM INF Rejected bad transaction err=null module=mempool peerID= res={"check_tx":{"code":2,"codespace":"sdk","data":null,"events":[],"gas_used":"10578516","gas_wanted":"0","info":"","log":"errUnknownField "tx.TxRaw": {TagNum: 10, WireType:"end_group"}: tx parse error"}} tx="?d\t\x19-#??.s??UB??P??6}\n\x14Il??/????"
9:40AM INF WSJSONRPC method=broadcast_tx_async module=rpc-server protocol=websocket remote={"IP":"162.243.168.129","Port":39866,"Zone":""}
9:40AM INF Rejected bad transaction err=null module=mempool peerID= res={"check_tx":{"code":2,"codespace":"sdk","data":null,"events":[],"gas_used":"10584990","gas_wanted":"0","info":"","log":"errUnknownField "tx.TxRaw": {TagNum: 10, WireType:"end_group"}: tx parse error"}} tx="?v=?J??\x15????e\x19$??O\x06J/?\x01q?}?\x10"

Please help me solve the issue.

@puneet166
Copy link

@thanethomson @greg-szabo @marbar3778 .Please help ,i am also facing the same issue.

@thanethomson
Copy link
Member

What ABCI apps are you using? And did you write a custom client?

@puneet166
Copy link

@thanethomson Thanks for your response . i have a setup of cosmos node using this repo https://github.com/althea-net/cosmos-gravity-bridge and trying to test it with TM-load-test. so i am running this below command - In standalone mode

 tm-load-test -c 1 -T 10 -r 1000 -s 250 \
--broadcast-tx-method async \
--endpoints ws://myIP:26657/websocket

error coming on cosmos side -

9:40AM INF WSJSONRPC method=broadcast_tx_async module=rpc-server protocol=websocket remote={"IP":"162.243.168.129","Port":39866,"Zone":""}
9:40AM INF Rejected bad transaction err=null module=mempool peerID= res={"check_tx":{"code":2,"codespace":"sdk","data":null,"events":[],"gas_used":"10572042","gas_wanted":"0","info":"","log":"errUnknownField "tx.TxRaw": {TagNum: 10, WireType:"end_group"}: tx parse error"}} tx="\x1fQ?mPm\x02)}?????,???Z?P\x13?????m?Z"
9:40AM INF WSJSONRPC method=broadcast_tx_async module=rpc-server protocol=websocket remote={"IP":"162.243.168.129","Port":39866,"Zone":""}
9:40AM INF Rejected bad transaction err=null module=mempool peerID= res={"check_tx":{"code":2,"codespace":"sdk","data":null,"events":[],"gas_used":"10578516","gas_wanted":"0","info":"","log":"errUnknownField "tx.TxRaw": {TagNum: 10, WireType:"end_group"}: tx parse error"}} tx="?d\t\x19-#??.s??UB??P??6}\n\x14Il??/????"
9:40AM INF WSJSONRPC method=broadcast_tx_async module=rpc-server protocol=websocket remote={"IP":"162.243.168.129","Port":39866,"Zone":""}
9:40AM INF Rejected bad transaction err=null module=mempool peerID= res={"check_tx":{"code":2,"codespace":"sdk","data":null,"events":[],"gas_used":"10584990","gas_wanted":"0","info":"","log":"errUnknownField "tx.TxRaw": {TagNum: 10, WireType:"end_group"}: tx parse error"}} tx="?v=?J??\x15????e\x19$??O\x06J/?\x01q?}?\x10"

@thanethomson
Copy link
Member

So the standard implementation of tm-load-test won't work if you're testing against a Cosmos node. The only included transaction format in tm-load-test is for the key/value store ABCI app (i.e. the key/value store ABCI app running on top of Tendermint), whereas a Cosmos node is Gaia running on top of Tendermint. tm-load-test is Tendermint-specific, not Cosmos-specific. The format of transactions that tm-load-test sends by default is simple byte arrays like key=value, which won't be accepted by a Cosmos node.

If you want to test against a Cosmos node, you're going to have to write a custom client that submits transactions in a format that a Cosmos node accepts.

@puneetsingh166
Copy link

HI @thanethomson Thanks for your valuable response. I'm researching what kind of formats the Cosmos node accepts or how to write custom client for cosmos node . I haven't got anything yet. So can you help me regarding this. it would be commendable

@thanethomson
Copy link
Member

For that you're going to need to look into the Cosmos SDK. I'd recommend finding someone in the Cosmos community to ask.

@puneetsingh166
Copy link

puneetsingh166 commented Oct 6, 2021

Hi @thanethomson i have created my custom client for cosmos. When I see all that transactions in cosmos log it is showing me successful. I want to know is there any way to check by tm-load-test how many transactions have been successful or how many have failed.

@thanethomson
Copy link
Member

Tendermint exposes a Prometheus endpoint through which you can monitor the total number of transactions that have been committed. See https://docs.tendermint.com/master/nodes/metrics.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants