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

state machine spec: decide & doc whether nonce is needed only for account actors #78

Closed
shannonwells opened this issue Jan 9, 2019 · 12 comments

Comments

@shannonwells
Copy link
Contributor

“(TODO: the nonce is really only needed for external user interface actors, AKA account actors. Maybe we should find a way to clean that up?)”

@shannonwells shannonwells changed the title Filecoin state machine: decide & spec whether nonce is needed only for account actors state machine spec: decide & doc whether nonce is needed only for account actors Jan 9, 2019
@pooja pooja transferred this issue from another repository Jan 11, 2019
@pooja
Copy link
Contributor

pooja commented Apr 5, 2019

Probably nonces only on account actors. Should discuss.

@pooja pooja added the P2 label Apr 5, 2019
@dignifiedquire
Copy link
Contributor

Question: Is it worth complicating the send logic to differentiate between account actors and others in such a way?

@whyrusleeping
Copy link
Member

whyrusleeping commented Apr 15, 2019

I really like this idea, especially because of the direction it pushes us in. This would mean moving the nonce from the Actor object into the AccountActor state, which also means we should move the nonce from being a top level field on the Message type to being a parameter of the call. In order for it to be a call parameter, we need to have 'sending a message from the account actor' actually be a message to the account actor requesting it make a call on another actor. So a message to call 'CommitSector' on a miner actor would look like:

To: MyAccountActor,
Method: "Invoke",
Params: [
  nextNonce=5,
  targetActor="MyMinerActor",
  targetMethod="CommitSector",
  parameters= [ commit sector parameters ]
]

This would also make it make sense to put the messages signature in a place where logic on the account actor could validate it.

This would be a pretty significant change, and the effect on end users would be mostly more complicated message creation logic. So I think we should probably not do this one right now...

@pooja
Copy link
Contributor

pooja commented Apr 17, 2019

Needs to be discussed with dev.

@pooja
Copy link
Contributor

pooja commented May 3, 2019

@anorth Would be good to get your thoughts on this issue as well.

@anorth
Copy link
Member

anorth commented May 5, 2019

I don't forsee any major issues. I agree with the desire to do so and also not to do it right now. Since it's a real simplification I think we should strongly consider doing it before we declare the protocol testnet-ready, but we may decide to postpone it again at that point.

It's more or less just a matter of coding.

@pooja
Copy link
Contributor

pooja commented May 6, 2019

@anorth Is there a place in the go-filecoin priorities for priorities pending review? We can maybe add this one to that list and then decide where it should fall at some later point

@anorth
Copy link
Member

anorth commented May 6, 2019 via email

@pooja
Copy link
Contributor

pooja commented May 6, 2019 via email

@dignifiedquire
Copy link
Contributor

We (@whyrusleeping & me) like it, but agree that this is too complex to add for now.

@pooja
Copy link
Contributor

pooja commented May 11, 2019 via email

@dignifiedquire
Copy link
Contributor

I don't think so, we have enough things here, and can reopen it when we are running out of things to do :D

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

No branches or pull requests

5 participants