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

The spec. #2

Closed
wants to merge 7 commits into from
Closed

The spec. #2

wants to merge 7 commits into from

Conversation

TheReturnOfJan
Copy link
Collaborator

Resolves issue #1


The function _next_ performs the smallest possible step of computation, mapping the input _State_ into an output _State_, **or failing** (all of the situations in which it fails will be described later).

The function _isTerminal_ determines if a given _State_ is terminal, meaning that if _isTerminal(s) == true_, where _s_ is of type _State_, then _next(s)_ must either fail or return _s_ unchanged.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

next(s) must either fail or return s unchanged.

is an "unchanged s" really possible? if next is supposed to "perform the smallest possible step of computation", then state must have changed, hence same state can not be returned.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess it depends on whether you consider doing nothing, or no-op to be "a step of computation".

But the point I was trying to get across is that you define a terminal state by either saying "a terminal state is one from which no further computation can be done", or "a terminal state is a fixpoint with respect to the state-transition function".

And actually, I think I will have to commit to one of these in future, as my implementation efforts continue.

Copy link
Member

@johannbarbie johannbarbie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • checked readme
  • verified that machine.template.sol matches definitions
  • ran type checks, received 7 warnings

@johannbarbie
Copy link
Member

reviewed court and Oracle, had the following issues understanding them:

  • not clear in which order the external functions will be called. actor description would be nice to have.
  • Oracle "question" and "answer" struct names are very generic, don't convey what the Oracle is about.
  • owner relationship between Court and Oracle expected, but not reflected in code.
  • how does the setup avoid storing VM payload on chain, but ensures data availability? not obvious in code.
  • no description about Oracle or Court in readme

@TheReturnOfJan
Copy link
Collaborator Author

Thank you @johannbarbie. These issues will be addressed along with the explanatory gif: #3 (comment). I will consider this issue closed.

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.

2 participants