notes
notes copied to clipboard
Visual node composition for programs based on libp2p/devp2p
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