Skip to content

RhoVM cardinalities in intro #28

Open
@dckc

Description

@dckc

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions