-
Notifications
You must be signed in to change notification settings - Fork 786
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
Reduce cost for all custom ops except follow custom ops #3027
Conversation
Zooming out for context of this issue, could we begin or point to the proposal for cost parameters set by Witnesses? |
LGTM |
@nedsteem This PR is basically tweaking a number. Making it settable by the witnesses is something that's been proposed by the community (issue #2991 ), but something like that would involve more code and dev time than this quick fix. |
@nedsteem It will be helpful to explain how we derived these values & their explanations IMHO.
|
Custom binary is like custom JSON, but you can broadcast any binary blob. It's not used much. |
The state byte numbers are calculated from the python script. The execution time numbers were derived from empirical testing. The previous custom json time was based on our full node (all plugins enabled) execution times, which includes significant execution times for custom ops used by the follow plugin. We want to account for those because they do incur significant costs to operating Steemit.com but we acknowledge that other Dapps make extensive use of custom ops and do not increase operating costs for Steemit.com at all. This change reduces the cost by 20x for all other custom ops, bring the cost in line with other lower impact operations. |
@mvandeberg So this is a way to find the time complexity ? Further by limiting the time certain actions/operations takes, are we trying to achieve Turing Completeness ? Doubt:
So these numbers are like acceptable values based on observation and may vary based on CPU types but we expect the max values to hold hood in majority of the scenarios. Is this how the values are decided ? |
It determines how computationaly hard operations are.
RCs don't limit how long nodes will process transactions. They just prevent a user from making too many operations that would overload nodes.
What do you mean by this? C++ has been, and always has been turing complete. Steem users have never been able to run smart contracts. |
No description provided.