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

RhoVM cardinalities in intro #28

Open
dckc opened this issue Jun 18, 2018 · 1 comment
Open

RhoVM cardinalities in intro #28

dckc opened this issue Jun 18, 2018 · 1 comment

Comments

@dckc
Copy link
Contributor

dckc commented Jun 18, 2018

The high-level architecture diagram seems more up-to-date than the text around it:

The RChain Network implements direct node-to-node communication, where each node runs the RChain platform and a set of dApps on the top of it.

A node runs a set of dApps? I wonder what that means, exactly.

The diagram shows:

  1. Each node runs a set of "Node-local Contracts" (is that terminology preferred over "system contracts"? I suppose it's more clear.)
  2. On-chain contracts on top of the Casper consensus protocol.

The heart of an RChain is the Rho Virtual Machine (RhoVM) Execution Environment, which runs multiple RhoVMs that are each executing a smart contract. These execute concurrently and are multi-threaded.

Each RhoVM executes one smart contract? That would be a strange way to define "smart contract". I suppose each shard / namespace has an independent distributed RhoVM, but each of those RhoVMs runs many contracts in parallel, no?

This concurrency, which is designed around on the formal models of mobile process calculi, along with an application of compositional namespaces, allows for what are in effect multiple blockchains per node.

A node can participate in multiple shards or regions, but "multiple blockchains per node" seems passe.

This multi-chain, independently executing virtual machine instances is in sharp contrast to a “global compute” design which constrains transactions to be executed sequentially, on a single virtual machine.

There's still a "global compute" design to RChain, yes? i.e. the distributed RhoVM that results from the Casper protocol. It's just that the RhoVM isn't sequential.

In addition, each node can be configured to subscribe to and process the namespaces (blockchains) in which it is interested.

Wait... that's in addition? Now I'm really lost.

@dckc
Copy link
Contributor Author

dckc commented Jun 18, 2018

The blockchain contracts (aka smart contracts, processes, or programs), including system contracts included in the installation are written ...

Blockchain contracts are the ones that run on the distributed VM on top of Casper, no? Aren't those separate from system contracts?

Maybe "blessed contracts" was meant here?

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

1 participant