Versions Compared

Key

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

...

#TitleUser StoryImportanceNotesTicket
1Code DeploymentAs a dApp developer, I get an answer back when the code is deployed if the code runs to completion, or an out of Phlo errorMust Have
  • Users get an answer if the code has run out of Phlogiston.  Otherwise, the code is run. 

2Transaction Receipts

As a dApp developer, when a deploy takes place with a name or set of names from my code api, I get to listen on the name for blocks. 

As a child shard, I need to listen for events taking place in the parent shard.

As a shard validator, I need to listen for events taking place in my shard so that the sharding client can create the correct events in the parent shard.

Must Have
  • The full block will not be returned to the client, only the data pertaining to transactions with the name will be returned.
  • There is no cost to obtain this data, as the transaction has already been paid for.
  • The client that will get the data back will be a thin client.  Data will come in on a return channel. The thin client will need to persist that data locally for future reference.
  • Blocks and their statuses that have the names.
  • Returns blocks that are not finalized, blocks come back as soon as they are proposed.
  • Can add a range of blocks to the request.

Jira Legacy
showSummaryfalse
serverSystem JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId50130123-f232-3df4-bccb-c16e7d83cd3e
keyRHOL-441

Jira Legacy
showSummaryfalse
serverSystem JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId50130123-f232-3df4-bccb-c16e7d83cd3e
keyCORE-994

Jira Legacy
serverSystem JIRA
serverId50130123-f232-3df4-bccb-c16e7d83cd3e
keyRHOL-759

3Exploratory Deployment

As a dApp developer, I want to learn about the state of specific processes.

 Must Have
  • Same as normal code deployment but can use unforgeable names and you're guaranteed that the deployment will be rolled back.
  • You have to know specific names in order to interact with them.
  • This mechanism will be a deployment, and will likely cost less than other deployments.  The state won't be updated as a result.  The code will be rolled back. Payment will be made to a single node.  
  • This query will not be on the blockchain.
  • Uses the node's latest finalized state.

Option:

  1. Expose the feature in the REPL
    1. Will need to be either a separate gRPC endpoint for a special flavor of the REPL
    2. Or an option on the Repl start.
  2. Expose the code that Michael has authored.   Medha Parlikar (Unlicensed) to ticket.  
    1. Wrap it up in a gRPC - would work like eval. 
    2. Need to update it to use the blockhash instead of the tuplespace hash.
    3. Include this in the front end application.



4Streaming API

  • Use a gRPC Proto to stream data off of the last finalized block.
  • Provide some pretty printing in advance.

5Full validationAs a dApp developer, I want all the block data for a shard.Nice to have
  • Run a full node, to obtain all the local block data.

6Read Only NodeAs a dApp developer, I want all the block data for a shardMust Have
  • Run a read only node, obtain all the block data locally.
Done.
7Gossip all blocksAs a dApp developer, I want all the block data for a shard.Nice to have
  • Contact a validator, see if they will gossip their blocks to you for a fee

78Harden against DOSAs a Node Operator, I want to know that my node cannot be subject to DOS attack via these API'sMust Have
  • Implement something similar to HashCash, where the caller has to perform some work before calling the API.  
  • Include the ability to turn up the difficulty/tune the difficulty depending on whether the network is being attacked.
  • Reference: http://www.hashcash.org/papers/hashcash.pdf
Out of scope of the platform

...