Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Goals

  • Common understanding of Mercury and its requirements.  Every one of us should be able to answer "what about... " questions with respect to Mercury if cornered.
  • Identify major gaps in Documentation and make sure someone is assigned to resolve it.
  • Do some coding together in Rholang.  Write contracts.

...

Day 1:Location 1 -Blockchain, Consensus and Networking (Chris, Griff, Mike, Vlad, Timm, Eitan, Michael)

  • Support for transactions taking place between contracts in different namespaces
  • How is the ledger maintained? reference: Blockmumble
  • What are the canonical set of blocks that a validator has to download?
  • CASPER  - When do expect to have working code? 
    • What is the data structure.
    • What are the networking requirements for the protocol?
    • Is there a critical mass of validators that is required in order for a contract to be viable? 
    • Can a smart contract operate with a single validator?
    • Do bounties need to be implemented in order to entice validators to come online?

...

Day 1: Location 3 - Namespaces (Greg, Kent, Joe, Ian, Nash, Dan, Kyle)

  • Lay out namespacing, How is the set of the namespaces going to be defined
  • Who gets to say what a valid url is
  • Is there a registry, what does it look like, when do we need to have it in place, how is it maintained
  • Can we specify statically the form of name in a namespace, so we can check it at compile time
  • How do we introduce new formats for names?  urls are great but dont cover everything we might want
  • How do we allow nodes to define their own grammar for names?

...

Day 2: Location 2: CASPER (Vlad, GregMike, Chris, Joe, Navneet, Ian)

  • Addressing shell games that amount to finding consensus assuming you have already got consensus...
    • Betting requires fungibility between forks. How do we solve this in POS Consensus - what is the asset external to the system to create consensus?
    • If we define consensus inductively, there is a time window over which a network split absolutely cannot happen. There is no value for this time window that makes network splits not happen.
    • What happens when a validator leaves for several months and then returns - how is trust re-established without opening the network to attack?
    • How do we address the problem with the first induction window, in which you cannot possibly have bonded validators, and you must fall back to centralized selection.
    • Will increasing the induction time to 7 days resolve the problem.
  • Do we have a solution to the Prisoner's dilemma?  reference:
    • Transaction receipts (in lieu of every validator validating every shard that shares cross-shard state) create a Prisoner’s dilemma. It doesn’t matter if you model the self-referential consensus-by-betting with the Pi calculus, because such a process model does not model such economically driven externalities.
  • How does one identify the list of validators at any given time? (It's not clear to it will work as described, may simply need clarification)
  • How do we address double spend?

  • For the Mercury release do we plan to have our staking token implemented "natively" - specifically, such that we can do the equivalent of msg.sender.send(amount) in Ethereum? Or are we just going to use the token.rho contract for our staking tokens too?


...

Day 3: Location 1: Go to Market Strategy (Ed, Lawrence, Nash, Medha, Rolland, Ian)

  • How will we reach our target Market?
  • What is the message?


Day 2 3 : Location 2 - Block formats, types and messaging (MikeGreg, Chris, Griff, Vlad, Kent, Rolland )

  • What hashes are there, and what do they look like?

  • What data is common to all blocks?

    • Are there types of blocks, if so, how many types, and what is the specification of each type?
  • What is the size of a block? Can block sizes vary?

  • Are there "light blocks" constructable for "light clients".

...

Day 3: Location 3: Compiler Design (Mike, Kent, Griff, Eitan, Timm, Joe, Kyle)

  • How will static analysis will be implemented
  • Limiting the resources that a contract can consume at compile time - how will we achive this if not via static analysis?
  • If we choose to implement static analysis, what can we commit to delivering?  What is the MVP?
  • Do we need Tuplespace (delimited continuations and Radix Tree/ Trie data structure) for Mercury?


Day 4: Location 1: Rholang Lab (Greg, Mike, Kent, Griff, Timm)

...

  • Communicating releases to the OSS

ToDo: (find a spot for these items

...