Skip to content

PoC submission to the 2022 ITU-T FG-AN build-a-thon by the team Digital Twins

Notifications You must be signed in to change notification settings

FGAN-Digital-Twins/BC-AN

Repository files navigation

Evolution, Blockchain and IPFS: An Autonomous Network Architecture PoC

This repository contains the code, report, slides and demo video of Team Digital Twins' submission to the 2022 AI/ML in 5G Challenge. We present a Proof of Concept (PoC) of the decentralized controller evolution architecture for Autonomous Networks (AN) using a distributed Marketplace.

Table of Contents

  1. Introduction
  2. Demo
  3. Reproduction
  4. Troubleshooting

Introduction

With this project, we aim to solve the problem of ensuring security, traceability and trust in the evolution of controllers in AN. To this end, we have developed a fully decentralized Marketplace that registers, stores and protects evolution artifacts in a way that is fully auditable, and secure. This has been achieved through the use of IPFS and a private Ethereum blockchain. For more details, check out our report here.

alt text

Demo

You can find a video demo of this project here.

Reproduction

Pre-requisites

  • Docker Engine and Docker Compose: https://www.docker.com/get-started/

Quick-start

To start the network run the following command in your terminal from the working directory:

docker compose up -d

Note The -d parameter in the previous command runs each container in the background. To display the logs of the entire network you can run:

docker compose logs -f 

or for a specific container:

docker compose logs -f <my-container>

To stop the network and remove the containers run:

docker compose down

Note Once deployed, you can gain access the uploaded artifacts on your browser by accessing the IPFS HTTP API of each node.

For instance, you could connect to the HTTP API for the Evolution Controller node in your browser with the url http://0.0.0.0:8080/ipfs/ + < your-file-cid > The different port mappings for each node are listed below:

  • Evol_Ctr: 8080
  • Exp_Mg: 8091
  • DT: 8092
  • Cur_Ctr: 8093

Troubleshooting

The following is a list of useful commands to run for troubleshooting or solving issues while building the project:

  • Clear docker's build cache:
docker builder prune -a
  • Remove the images of each container in the network:
bash ./clean.sh
  • List all containers (running or not):
docker ps -a
  • Remove all stopped containers:
docker container prune