Mini Chain specification


Purpose of this Document

To lay out the requirements for Mini Chain - for use by the Core development team.

Goals

This network is for use by development for rapid feature iteration. 

  • To test features that cannot be tested on a single node, aka those features that exist at the blockchain level or above.
  • To ensure that new feature development does not cause regressions (break features that worked before)
  • To run automated integration tests

Machine Requirements

Number of nodes

  • The network should comprise of at least 3 nodes.

System footprint

  • These machines can all run Ubuntu 16.

Physical machine requirements

The machines should have at least the following:  

  • 4 GB RAM
  • 1 Core
  • Physical storage - default is fine - 50 GB Henry Till I don't think we need much - please confirm.

Network Topology

The 3 instances can be separate standalone instances.  They have to be able to establish a network connection with each other. 

Deployment of Software Updates

These nodes are for use by the development team.  As such, the code on them should come from the development branch on GitHub.    The new software should deploy to the nodes via Travis automatically at intervals specified below.

Timing of Updates:

These nodes will be updated with the latest code from the GitHub development branch at 8 am, 2 pm, 8 pm and 2 am PDT.  These times are arbitrary, but the goal is to get updates on to these nodes at some interval that isn't too frequent or too infrequent for the global dev team.

Data and State on the Test net:

Prior to every update, the data on these nodes is wiped.

Addressing issues & Support:

Bugs found on this mini net should be filed in Jira.  Issues with the network itself should be directed to Kelly Foster