Using v1.0.1
Getting Error 3080004: transaction exceeded the current CPU usage limit imposed on the transaction when pushing an action that has a large (80k+) JSON input. This is on a private nodeos instance not running the system contract.
Have tried:
• setting nodeos max-transaction-time to a very large number and to -1
• setting max-cpu-usage-ms on the push action to a very large number
Those actions alone and in combination fail to resolve the issue.
Separately, another user reports: "Execution of any action of smart contract maximum transaction is 150ms,You have to execute this action before 150ms.I also tried increasing CPU limit but nothing happen.So we modified smart contract which should execute any action before 150ms."
Perhaps there is yet another configuration parameter I should try setting? Or perhaps there's a problem with my understanding of max transaction time / max cpu usage ms in general? Or maybe there's a bug? And if there is a bug perhaps it relates in particular to parsing large JSON inputs?
Thoughts?
If you've never modified your max_transaction_cpu_usage and max_block_cpu_usage, it will be the value defined in your genesis (check your genesis via nodeos --print-genesis-json). To check its latest value, you can use cleos get table eosio eosio global but only if you have uploaded eosio.system contract
Two ways for you to modify it:
Excellent. Thank you! (We'll check that out shortly.)
Is everything fine?
Thanks for asking, Andrianto. I’m on vacation, as is the principle investigator on this.
However, a third person is working on it this week, and I expect to know next week.
-Howard
On Jul 3, 2018, at 2:32 AM, Andrianto Lie notifications@github.com wrote:
Is everything fine?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/EOSIO/eos/issues/4343#issuecomment-402040904, or mute the thread https://github.com/notifications/unsubscribe-auth/AGsKywEOMdqha7IXGaJ2NdP6DlWIyT3Tks5uCx3xgaJpZM4U4euk.
LGTM
what is the command to change the setting via following action? Thanks.
Upload eosio.system contract, and then use setparams action
to increase CPU usage limit we need to use eosio.system contract ? and if yes then what are the parameters of function setparams and can i set eosio.system contract by any account?
The following genesis.json file works for me!!
Usage: nodeos --genesis-json path/to/this/file
Hope it helps:)
{
"initial_timestamp": "2018-06-01T12:00:00.000",
"initial_key": "EOSyourkey",
"initial_configuration": {
"max_block_net_usage": 1048576,
"target_block_net_usage_pct": 1000,
"max_transaction_net_usage": 524288,
"base_per_transaction_net_usage": 12,
"net_usage_leeway": 500,
"context_free_discount_net_usage_num": 20,
"context_free_discount_net_usage_den": 100,
"max_block_cpu_usage": 1500000,
"target_block_cpu_usage_pct": 1000,
"max_transaction_cpu_usage": 1450000,
"min_transaction_cpu_usage": 100,
"max_transaction_lifetime": 3600,
"deferred_trx_expiration_window": 600,
"max_transaction_delay": 3888000,
"max_inline_action_size": 4096,
"max_inline_action_depth": 4,
"max_authority_depth": 6
},
"initial_chain_id": "0000000000000000000000000000000000000000000000000000000000000000"
}
Most helpful comment
If you've never modified your max_transaction_cpu_usage and max_block_cpu_usage, it will be the value defined in your genesis (check your genesis via
nodeos --print-genesis-json). To check its latest value, you can usecleos get table eosio eosio globalbut only if you have uploaded eosio.system contractTwo ways for you to modify it: