Code Monkey home page Code Monkey logo

codigo-hub's Introduction

Código Hub

 

Código Hub

Project Overview

Código is a firmware distribution service built on top of the Ethereum blockchain and IPFS. Código natively allows developers to upload firmware for different devices and provides rudimentary search capabilities for users. Users can download firmware either by requesting a specific firmware image from a known developer or utilising a built-in web of trust model to automatically select a trusted developer.

This project aims to produce a DApp front end driver for Código, called Código Hub, to make it easier for developers to manage the firmware they upload to the network and for users to discover new firmware for their devices.

For developers we provide a convenient UI for viewing previously uploaded firmware, Filecoin integration for friction-less persistence on IPFS and a bounty system which rewards developers with ETH for filling unmet needs in the IoT domain.

For users we provide a graphical method for searching all firmware available on the network, automatic firmware deployment via MQTT (for supported devices), a reputation system to help users make trust decisions about individual firmware or developers, and the bounty system which allows users to offer ETH in return for novel features.

Código Hub is built using React.js, Redex, Redux Persist and 3box. Intergration with several custom Ethereum 1.0 smart contracts is provided by Metamask. Filecoin and IPFS integration is provided by the Textile Powergate Javascript library and a hosted Powergate instance provided by Textile. Websocket MQTT is used to communicate with and automatically deploy firmware to compatible devices.

A full specification can be viewed online by clicking here.

System Design Diagram

System Diagram

Código Hub incorporates almost all of the functionality outlined in this diagram. The network layer is based on the Código Network research project. Credit also to CHAINIAC for the distributed software verification components which are integratable with this project. Cumulatively, this design represents the current and future potential state of the Código project.

You can also demo the site by clicking here, and view how it all works in the video here.

Technologies Used

Ethereum 1.0 Smart contracts for tracking users, bounties, available firmware Allow developers to be paid in Ether for their contributions through donations or bounties Filecoin to store firmware binaries and source code Fleek to deploy our Dapp Textile’s Powergate to interface with IPFS and Filecoin 3box to manage decentralized user profiles and comments on firmware Websocket MQTT to communicate with constrained devices

Developers

Future Work

There are some improvements that could be made to app in the future:

  • Inspect developer history on the Código Network using The Graph
  • Use Unstoppable Domains to allow developers to add their crypto domain to their profile
  • Stricter validation using user reputation, firmware metrics and CHAINIAC moving instead to a system like fixed membership numbers

codigo-hub's People

Contributors

alex-shand avatar bernardchooo avatar dependabot[bot] avatar michaelg9 avatar zerosum24 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

michaelg9

codigo-hub's Issues

Add a device

Add a device inflator does not allow you to enter new device details or close it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.