vnm

1.3.2 • Public • Published

VNM - The Discrete Distributed Platform

VNM implements a hyperconvergent design inspired by the von Neumann cellular automaton. The ultimate goal is to allow extremely reliable software to be written once and executed in any supported EMCAscript environment.

  • Universal replication - machines are portable regardless of state.
  • Simple scaling - provide sets of supported URNs or allow VNM to autoconfigure.
  • Transactional non-repudiation - operations are stored as blockchains and signed by human/machine agents
  • Provably optimal execution - stop worrying about architecture and write code.
  • Gated behavior - prevent unauthorized or unknown changes from being introduced.
  • Integrate easily with your CI/CD processes - npm i -g vnm-cli && vnm -h

Get Started

Install vnm to your package.json

npm i vnm

var vnm = require('vnm')

//Create our entity model
var entity = {'foo': 'bar'}

//Initialize with defaults and secure our vnm
vnm.init();
vnm.secure(entity);

//Update the entity model state
entity.foo = biz;

//Encrypt and store the last state
vnm.replicate(entity);

//Decrypt and retrieve the last state
console.log(vnm.communicate());

//Show status, allowing you to tune constraints when initialized
console.log(vnm.status());

Configuration


var machineOptions = {

  "debug":            true,                 //Default false
  "currencyUnit":     "USD",
  "durationUnit":     "ms",                 //ISO 8601 ms
  "memoryUnit":       "MB",
  "storageUnit":      "MB",
  "maxOps":           0,                    //Operation limit, 0 for none
  "maxDuration":      5 * 60 * 100,         //Max duration, 0 for none
  "maxNodes":         4,                    //Parallel nodes limit, 0 for none
  "maxCost":          .1,                   //Cost limit, 0 for none
  "maxMemory":        128,                  //MB
  "maxStorage":       32,                   //MB
  "cells":            4,                    //Cell count, total blocks = cells x dimensions
  "dimensions":       4                     //Dimension count

}

var encryptionOptions = {

  "debug":        true,                     //Default false
  "saltBytes":    256,                      //Bytes used for salt
  "digest":       "sha512",                 //Hash digest
  "keyBytes":     32,                       //Encryption key bytes 
  "iterations":   10000,                    //Crypto iterations (not yet implemtented)
  "algorithm":    "aes-256-cbc",            //Encryption algorithm - must support iv
  "ivBytes":      16,                       //IV bytes
  "password":     crypto.randomBytes(32)    //Password, generated at runtime

}

Examples

Clone/download the repo master branch or browse the /examples directory.

Contributing

See CONTRIBUTING.md and CODE_OF_CONDUCT.md

License

See LICENSE.md

References

https://en.wikipedia.org/wiki/Von_Neumann_cellular_automaton

Readme

Keywords

none

Package Sidebar

Install

npm i vnm

Weekly Downloads

5

Version

1.3.2

License

MIT

Unpacked Size

43.8 kB

Total Files

14

Last publish

Collaborators

  • reallyapplied