notes icon indicating copy to clipboard operation
notes copied to clipboard

Visual node composition for programs based on libp2p/devp2p

Open void4 opened this issue 8 years ago • 0 comments

Objective

Abstract

The creation of a platform for flow based visual programming with identity addressable graphs and micropayment support.

Specific

libp2p+IPFS+Ethereum+NofloJS architecture = Decentralised Microservice Awesomeness

Reasoning

This will make interaction with real-world, hardware- and software services accessible to non-programmers. The provision of a trusted execution environment will allow the creation of automatisation solutions by everyone with a few clicks. A few possibilities:

  • ifttt.com - style triggered interactions: "If the temperature sensor with the identity I published a value less then t, send me an SMS."
  • rundexter.com - style data flow processing: "Pipe my webcam stream to the NeuralTalk video descriptor service at identity I and pipe that to a local node doing voice synthesis"
  • automatic hosting: "If there is a new file in this folder, add it to IPFS, publish it under a name, contact a hosting service and schedule micropayments over a payment channel."
  • distribution of graph execution over several cores on several networked computers (even offline!)
  • smart contract interaction
  • graph as a service

For the flow based programming part, there are two sensible choices: http://noflojs.org/ and http://nodered.org/, though noflo seems to be more suitable. Both are written in Javascript and use the nodejs environment. This makes them executable in the browser, as a standalone process or on other devices, including the Raspberry Pi and microcontrollers.Requirements:

  • adaption of the FBP protocol and engine to libp2p
  • development of noflo-ipfs and noflo-web3 components
  • creation of monitoring service
  • improvement of the user interface

This issue can actually be decomposed in multiple independent problems:

  • finding or creating a SDL
  • creating an environment to manage services (not required)
  • creating an environment to visually interact and/or create services (see flowhub.io)

Reference: https://github.com/ipfs/notes/issues/100

void4 avatar Apr 28 '16 01:04 void4