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

Reduce cost for all custom ops except follow custom ops #3027

Merged
merged 1 commit into from
Oct 3, 2018
Merged

Conversation

mvandeberg
Copy link
Contributor

No description provided.

@realnedscott
Copy link

Zooming out for context of this issue, could we begin or point to the proposal for cost parameters set by Witnesses?

@theoreticalbts
Copy link
Contributor

LGTM

@mvandeberg mvandeberg merged commit 5a5c67b into master Oct 3, 2018
@mvandeberg mvandeberg deleted the sp-499 branch October 3, 2018 19:13
@theoreticalbts
Copy link
Contributor

theoreticalbts commented Oct 3, 2018

@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.

@bobinson
Copy link

bobinson commented Oct 3, 2018

@nedsteem It will be helpful to explain how we derived these values & their explanations IMHO.

  1. custom_binary_operation_exec_time : what exactly is a custom binary ?
  2. The comment says: These numbers are obtained from computations in state_byte_hours.py script but what exactly is script doing I feel should be explained to witnesses and they will explain to the end users/communities.

@syvb
Copy link
Contributor

syvb commented Oct 3, 2018

Custom binary is like custom JSON, but you can broadcast any binary blob. It's not used much.

@mvandeberg
Copy link
Contributor Author

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.

@bobinson
Copy link

bobinson commented Oct 4, 2018

@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:

The execution time numbers were derived from empirical testing.

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 ?

@syvb
Copy link
Contributor

syvb commented Oct 4, 2018

@bobinson

is a way to find the time complexity

It determines how computationaly hard operations are.

limiting the time

RCs don't limit how long nodes will process transactions. They just prevent a user from making too many operations that would overload nodes.

Turing Completeness

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.

@bobinson
Copy link

bobinson commented Oct 4, 2018

thank you @Smittyvb

Steem users have never been able to run smart contracts.

Ok, I was trying to understand as there was #308 and also abc27b3

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

Successfully merging this pull request may close these issues.

None yet

5 participants