Open Questions

Jump to Question

  •  Rholang is not rho calculus, though it's built on top of it.  Does the Google doc "rholang spec 0.1" record the current specification?

 There's a comment that the latest grammar is here:

     https://github.com/rchain/Rholang/blob/master/src/main/bnfc/rholang.cf

 Is that up to date?  If so, the grammar says
 CVar. Chan ::= Var ;
 CQuote. Chan ::= "@" Proc3 ;

 PDrop. Proc3 ::= "*" Chan ;
 PInject. Proc3 ::= "#" Chan ;

In which the only ground terms are identifiers; none of the rest of the Proc structure is referenced.  Is the intent eventually to support quoting all rholang processes?

Need to follow up with a meeting to discuss, and finalize the specification as a result of the developer retreat.  Medha Parlikar (Unlicensed) to schedule a discussion?  Michael Stay (Unlicensed) please confirm.


Joe's working on a transpiler step that rewrites Rholang code to a (cost formula, new Rholang code) pair.  How does the cost formula relate to REV?  To phlogiston?  What's the protocol for establishing an exchange rate between REV and phlogiston?  Do nodes get to decide what they charge individually?  If not, do namespaces?

The cost formula is denominated in Phlogiston - Phlogiston - which is a for component value. 

It is a quadruple:

  • Memory
  • Storage
  • Compute
  • Network

 Each represents the amount of resources that are consumed throughout the life of the program.  We could sum these components and treat it as a single value.  

Is there a difference between the different type of memory?  As of now - No.  Simply because we are looking at the abstract memory.  We are going to create the cost of accessing these resources uniformly.  We can't prove what machine the node is running on.  

The exchange rate will be co-op policy and implemented in Node code.  Which is why we need to eventually need node code on the blockchain so people can know whether or not they are running trusted code.  The transaction requestor is free to specify a gas price of the transaction.  If I specify a very low gas price, while you can get a ton of gas,  but the amount that the contract costs is still the same.  The requestor can specify what the miner is rewarded, and the miner can choose to mine those transactions that they want.

We want to provide as much market dynamics as possible.  I think we are at the very beginning part of this process.  The cost of computation should be universal.  The transaction requestor and miner have to agree on the cost of rev with respect phlogiston and conversely.