All Projects → flowchain → flowchain-ledger

flowchain / flowchain-ledger

Licence: MIT license
A distributed ledger for the p2p and decentralized IoT devices in JavaScript.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to flowchain-ledger

Py Ipv8
Python implementation of the IPv8 layer
Stars: ✭ 157 (+170.69%)
Mutual labels:  p2p, distributed-ledger
ascii-chat
A terminal-based peer-to-peer (P2P) end-to-end-encrypted (E2EE) video chat application with text messaging, written in OCaml. Supports up to 4 clients. Supports connections over internet and LAN.
Stars: ✭ 20 (-65.52%)
Mutual labels:  p2p
ML-MCU
Code for IoT Journal paper title 'ML-MCU: A Framework to Train ML Classifiers on MCU-based IoT Edge Devices'
Stars: ✭ 28 (-51.72%)
Mutual labels:  edge-computing
distributed-compliance-ledger
DCL is a public permissioned ledger framework for Zigbee compliance certification of device models. The ledger is based on Cosmos SDK and Tendermint.
Stars: ✭ 41 (-29.31%)
Mutual labels:  distributed-ledger
rpi-urban-mobility-tracker
The easiest way to count pedestrians, cyclists, and vehicles on edge computing devices or live video feeds.
Stars: ✭ 75 (+29.31%)
Mutual labels:  edge-computing
research
research, notes & ideas on various subjects
Stars: ✭ 54 (-6.9%)
Mutual labels:  p2p
AdvantEDGE
AdvantEDGE, Mobile Edge Emulation Platform
Stars: ✭ 36 (-37.93%)
Mutual labels:  edge-computing
tordam
A library for peer discovery inside the Tor network
Stars: ✭ 13 (-77.59%)
Mutual labels:  p2p
das-schiff
This is home of Das Schiff - Deutsche Telekom Technik's engine for Kubernetes Cluster as a Service (CaaS) in on-premise environment on top of bare-metal servers and VMs.
Stars: ✭ 262 (+351.72%)
Mutual labels:  edge-computing
coord-sim
Lightweight flow-level simulator for inter-node network and service coordination (e.g., in cloud/edge computing or NFV).
Stars: ✭ 33 (-43.1%)
Mutual labels:  edge-computing
k8s-dt-node-labeller
Kubernetes controller for labelling a node with devicetree properties
Stars: ✭ 17 (-70.69%)
Mutual labels:  edge-computing
sense-iOS
Enhance your iOS app with the ability to see and interact with humans using the RGB camera.
Stars: ✭ 19 (-67.24%)
Mutual labels:  edge-computing
safety-gear-detector-python
Observe workers as they pass in front of a camera to determine if they have adequate safety protection.
Stars: ✭ 54 (-6.9%)
Mutual labels:  edge-computing
nn-Meter
A DNN inference latency prediction toolkit for accurately modeling and predicting the latency on diverse edge devices.
Stars: ✭ 211 (+263.79%)
Mutual labels:  edge-computing
swarm-peer-server
🖧 A network swarm for creating secure P2P connections over BitTorrent DHT, DNS, and mDNS.
Stars: ✭ 41 (-29.31%)
Mutual labels:  p2p
motor-defect-detector-python
Predict performance issues with manufacturing equipment motors. Perform local or cloud analytics of the issues found, and then display the data on a user interface to determine when failures might arise.
Stars: ✭ 24 (-58.62%)
Mutual labels:  edge-computing
examples
Code examples you can use with Horizon.
Stars: ✭ 33 (-43.1%)
Mutual labels:  edge-computing
The-Kademlia-Protocol-Succinctly
This is the companion repo for The Kademlia Protocol Succinctly by Marc Clifton. Published by Syncfusion.
Stars: ✭ 28 (-51.72%)
Mutual labels:  p2p
p2pflow
Ethereum p2p traffic analysis with eBPF
Stars: ✭ 24 (-58.62%)
Mutual labels:  p2p
microsocial
Microsocial is an experimental social platform that takes a peer-to-peer approach to social media.
Stars: ✭ 21 (-63.79%)
Mutual labels:  p2p

flowchain-ledger

Flowchain distributed ledgers in JavaScript

Build Status

Flowchain-ledger is a distributed ledger technology (DLT) for the Internet of Things (IoT) devices (aka. IoT Blockchain). The Flowchain software framework is designed from the ground up to fit current IoT needs.

This is the official Flowchain distributed ledger library, which provides the following APIs:

  • Create data transactions
  • Submit data transactions

About Flowchain

Flowchain is a software framework for the IoT blockchain to provide a distributed ledger programming framework for peer-to-peer IoT networks and real-time data transactions, and flowchain-ledger is the Node.js distribution for heterogeneous hardware devices, such as MediaTek LinkIt Smart 7688, Raspberry Pi, laptops, smart phones and etc.

Abstract

Flowchain aims to implement a blockchain that can provide near real-time transactions for the IoT. The Flowchain technology can ensure chunked data (data streams) transactions by using the virtual blocks concept which is proposed by Flowchain acamedic papers. The virtual blocks can be combined with emerging public blockchains, such as Ethereum and Hyperledger which is optimized specifically for the use case of off-chain transactions. If you need such "Hybrid Blockchain" network for the IoT, please refer to flowchain-hybrid.

The FlowchainCoin (symbol: FLC) is the Ethereum ERC20 token for tokenized assets that use in the Flowchain network. Tokens offer can support the transfer of assets from one trusted party to another.

Features

  • Mining-based Proof-of-Stake (PoS)
  • Run on every IoT node
  • RPC over the Websocket protocol
  • Distributed Hash Table (DHT) by the Chord protocol
  • The device server in Web of Things (WoT) architecture

Prerequisite

Getting started

Install the Flowchain distributed ledger via npm.

npm install flowchain.js

Create the boot.js file and use the flowchain.js library to submit a data transaction.

var PeerNode = require('flowchain.js').PeerNode;
var node = new PeerNode();;
node.submit(data);

Please use flowchain-hybrid which is the blockchain application built on flowchain-ledger.

Install via Github

You can also download this repo.

$ git clone https://github.com/flowchain/flowchain-ledger.git
$ cd flowchain-ledger
$ npm install

Configuration

$ export HOST=192.168.1.1
$ export PORT=8000
$ node boot.js

The boot node is now running at the address 192.168.1.1:8000. Please modify the IP address and listening port number to match your own environment. Subsequently, to start a peer node and join the boot node:

$ export HOST=192.168.1.2           ; Peer Node (My IP address)
$ export PORT=8001                  ; Peer Node (My listening port)
$ export PEER_ADDR=192.168.1.1      ; Boot Node (The node intend to join)
$ export PEER_PORT=8000             ; Boot Node (The node intend to join)
$ node peer.js                      ; Start the new peer node

The new peer node will run at the address 192.168.1.2:8001, and subsequently join the boot node at the address 192.168.1.1:8000. The peer node will intend to join the p2p network. Furthuremore, you can start another peer node and join the p2p network through the boot node or one of the peer nodes. For example, to start another peer node and join the peer node at 192.168.1.2:8001:

$ export HOST=192.168.1.2
$ export HOST=8002
$ export PEER_ADDR=192.168.1.2
$ export PEER_PORT=8001
$ node peer.js

Publication

Presentation

Bibliography

This work is based on the research papers.

[1] Chen, J. (2017). Flowchain: A Distributed Ledger Designed for Peer-to-Peer IoT Networks and Real-time Data Transactions. In: 2nd International Workshop on Linked Data and Distributed Ledgers. Portoroz.

[2] Chen, J. (2017). Devify: Decentralized Internet of Things Software Framework for a Peer-to-Peer and Interoperable IoT Device In: Advances in IoT Architecture and Systems. Toronto, Canada.

How to Cite

@article{flowchain_2017,
title={Flowchain: A Distributed Ledger Designed for Peer-to-Peer IoT Networks and Real-time Data Transactions},
journal={Proceedings of the 2nd International Workshop on Linked Data and Distributed Ledgers (LDDL2)},
author={Chen, Jollen},
year={2017}
},

@article{devify_2017,
title={Devify: Decentralized Internet of Things Software Framework for a Peer-to-Peer and Interoperable IoT Device},
journal={Proceedings of the Workshop on Advances in IoT Architecture and Systems (AIoTAS2017)},
author={Chen, Jollen},
year={2017}
},

License

Copyright (C) 2016-present Jollen. The source code is licensed under the MIT license found in the LICENSE file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].