FurkanKarakas / tendermint

⟁ Tendermint Core (BFT Consensus) in Go
https://tendermint.com/
Other
1 stars 0 forks source link

Max subscription clients 100 reached #1

Closed FurkanKarakas closed 4 years ago

FurkanKarakas commented 4 years ago

Tendermint version (use tendermint version or git rev-parse --verify HEAD if installed from source): 0.33.1-30e5619a

ABCI app (name for built-in, URL for self-written if it's publicly available):

Environment:

What happened: When I send multiple transactions in Golang concurrently via HTTP request, I receive client max subscription reached error.

What you expected to happen: I expected that much more transactions could be sent to the Tendermint client, also not receiving "max client received" error.

Have you tried the latest version: no

How to reproduce it (as minimally and precisely as possible): On local branch release/v0.33.1, run the Go program in my repository ./Furkan/SendRepetitiveTX/SendRepetitiveTX -TXNr 200 -TXTime 1 while the local cluster is up and running.

Logs (paste a small part showing an error (< 10 lines) or link a pastebin, gist, etc. containing more of the log file):

{ "jsonrpc": "2.0", "id": -1, "error": { "code": -32603, "message": "Internal error", "data": "max_subscription_clients 100 reached" } }

Config (you can paste only the changes you've made):

node command runtime flags: make localnet-start

/dump_consensus_state output for consensus bugs

Anything else we need to know: I think I should be able to send thousands of transactions in a second. Not reaching to 100 doesn't seem to be good. Do you think I am doing something wrong?

adizere commented 4 years ago

As a suggestion, let's try to access the service via WS.

I’m fairly sure that Tendermint by default exposes multiple protocols (not only HTTP). See, for instance, here: github.com/tendermint/tendermint/blob/bc572217c07b90ad9cee851f193aaa8e9557cbc7/rpc/core/doc.go

Are you accessing via port 26657 ? This is the parameter “rpc.laddr” in the config file. This function starts the listener on the respective port: github.com/tendermint/tendermint/blob/18d44a01863faf427e420ed9c61669a982bee0fc/node/node.go#L898

FurkanKarakas commented 4 years ago

I have just realized that this is not actually a bug, this is an intended feature in Tendermint. This is how I figured it out:

  1. Go to the folder $HOME/.tendermint/config.
  2. Open config.toml with any text editor.
  3. In this file there is a variable called max_subscription_clients which is set to 100 by default.

That was probably the reason why I could not send more than 100 concurrent transactions at the same time.

I am closing this issue accordingly.