Skip to content

davinci26/Codigo-Network

Repository files navigation

Código Network

A firmware distribution framework using Blockchain Technology & IPFS

Project Motivation

For Código network, we set the following requirements: (i) no single point of failure, (ii) equivalent security with code signing, (iii) transparency of firmware updates and (iv) scalability. To fulfill the aforementioned requirements, Código network is implemented on top of the Ethereum blockchain and the IPFS network. In our developed system, developers upload firmware to a repository, implemented as a Ethereum decentralized application. In parallel, users can browse the repository for trusted firmware and download the firmware. To encapsulate trust in a decentralized network, we develop an open-source implementation of Web-of-Trust as an Ethereum smart-contract.

ipfs-archi

repo-archi

Código network architecture diagram. Users are arranged on a graph based on their trust relationship, which is formalized in the Web-of-Trust smart-contract. Firmware metadata are stored on the firmware repository smart-contract and updated using the Código clients. Firmware distribution is on the IPFS layer in which the Código client is uploading/downloading the firmware from the IPFS network.

Project Structure

  • Contracts: Smart contracts used to encapsulate the business logic of the project. The contracts include, a firmware repository and a decentralized trust metric calculator.
  • Driver code: GUI for developers and users using PyQt. A script main_deb.py used for rapid testing of ideas.
  • Evaluation scripts: Python scripts that produce the different graphs/plots that are shown in the whitepaper
  • installation: An installation script for Unix and Debian. (Not thoroughly tested)
  • lib: Implementation of the core logic using Python.
  • test: A set of unit tests for the smart-contracts.
  • whitepaper: Código Network whitepaper.
  • working_dir: Directory to store temporary and settings files.

Dependencies (TBD)

Smart contract libraries used in the project will be added to the contracts folder.

This project is merely a combination of existing solutions developed by the open source community. Thus it would be disrespectful not to thank the developing teams of the projects above for their help.

How to contribute

Any comments/suggestions/improvements are highly appreciated.

Why is it called Codigo-Network

For the coolness factor of having a spanish name :)

About

A Decentralized File Distribution Network 💻

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published