EOSIO / eos

An open source smart contract platform
https://developers.eos.io/manuals/eos
MIT License
11.27k stars 3.76k forks source link

Trouble with large txns or large blocks propagating #1983

Closed spoonincode closed 6 years ago

spoonincode commented 6 years ago

I'm having trouble with either large txns or large blocks propagating in a single producer, single node network. Specifically the create_test_accounts operation of txn_test_gen_plugin fails to initialize the currency contract unless I go and set def_max_just_send in the net_plugin to a high number. Then it works every time.

Unsure the details yet.

pmesnier commented 6 years ago

Can you enumerate the steps necessary to induce the trouble?

spoonincode commented 6 years ago

Two nodes -- producer and non-producer. After going through the BIOS ritual, I simply call the create_test_accounts endpoint for txn_test_gen_plugin on non-producing node --

curl --data-binary '["inita", "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"]' http://localhost:8888/v1/txn_test_gen/create_test_accounts

After executing this command I expect to have a currency account complete with initialized currency contract. To validate this I run

./cleos get table currency currency accounts

But unless I jack up def_max_just_send, this command will return empty rows.

Be advised you will need PR #1989 for txn_test_gen_plugin to work entirely correctly.

pmesnier commented 6 years ago

I dialed down the max "just send it" size to 1, and everything still works.

spoonincode commented 6 years ago

I believe the problem in my tests is due to the large txns basically causing significant jumbling of txn ordering (which of course is completely allowed). Going to close for now.

gleehokie commented 6 years ago

@spoonincode no testing required, right?