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

docs: prose overview for the interaction diagram for Zoe and Zcf #1348

Merged
merged 2 commits into from
Jul 30, 2020

Conversation

Chris-Hibbert
Copy link
Contributor

@Chris-Hibbert Chris-Hibbert commented Jul 29, 2020

Includes security claims about the split, as well as description of
how Zoe and Zcf communicate while making new instances of contracts.

#1288
#553

Includes security claims about the split, as well as description of
how Zoe and Zcf communicate while making new instances of contracts.
Copy link
Contributor

@katelynsills katelynsills left a comment

Choose a reason for hiding this comment

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

LGTM!

@@ -0,0 +1,57 @@
## Zoe and ZCF

At the current time, Zoe is split into an "upper" part, which is the facet that the contract communicates with, and the "middle", which contains all the common pieces shared across all contracts. The middle has the InviteIssuer, manages the purses for all contract instances, and is the central point of contact for installing and instantiating contracts. Each time a contract is instantiated with makeInstance(), a new vat is created, and the code for ZCF (the Zoe Contract Facet) is executed, immediately running the code for the contract itself.
Copy link
Contributor

Choose a reason for hiding this comment

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

Let's not use upper and middle

Copy link
Contributor Author

Choose a reason for hiding this comment

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

okay. I didn't find consensus terminology for zoe main, so I made something up.


Zoe has a single InviteMint, which it uses to mint Invitations which verify the authenticity of contracts and seats. Zoe freely shares the corresponding Issuer, so everyone can recognize valid Invitatations.

Zoe is created with SwingSet. Any user can call `E(zoe).install(bundle)` to create a new verified installation of a contract. From that point, anyone can validate the source code, or get assurances from Zoe that a particular instance of that contract is running that code.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
Zoe is created with SwingSet. Any user can call `E(zoe).install(bundle)` to create a new verified installation of a contract. From that point, anyone can validate the source code, or get assurances from Zoe that a particular instance of that contract is running that code.
Zoe is created by CosmicSwingset. Any user can call `E(zoe).install(bundle)` to create a new installation of a contract. From that point, anyone can use the installation to view the code and to get assurances from Zoe that a particular instance of that contract is running that code.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done.

@Chris-Hibbert Chris-Hibbert merged commit 582ffc7 into master Jul 30, 2020
@Chris-Hibbert Chris-Hibbert deleted the zoeZcfDoc branch July 30, 2020 17:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Zoe package: Zoe
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants