Skip to content

Architecture Overview

emansell7 edited this page Aug 29, 2019 · 14 revisions

What is Marconi?

Blockchain technology has often been proposed as a solution to the problems inherent with centralized systems. Blockchain projects are being developed to provide decentralized computing, storage, and a suite of applications to realize a decentralized future. However, these projects all continue to build atop the same underlying network infrastructure consisting of switches and routers connected by Ethernet, a foundation which remains fragile due to being insecure, difficult to manage, and centrally controlled.

Marconi is a networking and blockchain protocol that allows smart contracts for network packets and is designed to meet these challenges. The protocol has been designed down to layer 2 of the OSI model and works with wired and wireless standards. You can read the white paper to learn more about systems and methods for processing network packets using smart contracts, forming secure mesh networks with decentralized traffic auditing and metering, virtualizing and binding OSI layer 2 connections, ranking peer nodes, and performing decentralized distributed network routing.

Protocol Overview

Marconi Protocol facilitates secure network communication, flexible network infrastructure, and the formation of mesh networks. The supporting technology can be broken down into three major components which we’ll summarize here but cover in greater detail in the white paper.

Marconi Pipe

Marconi Pipes provide a secure communication channel for transporting network traffic between peers. The pipes are established all the way down to layer 2 of the OSI model and provide encryption, routing, and processing capabilities. Marconi Pipe works with wired standards to allow the Marconi Protocol to be used as an overlay on existing internet infrastructure. There is also an extension called Marconi Link which is being designed to work with wireless standards such as Bluetooth, Wi-Fi, and the U-NII radio band to power scalable mesh networks, both public and private.

Programmable Packets

Network packets can be routed and processed using smart contracts. This technology unlocks numerous use cases for smart decentralized networking applications such as anti-phishing and anti-malware protection, intrusion detection and prevention systems, and distributed virtual private networks.

Global Chain

The global blockchain serves as a distributed database ledger which is shared by all nodes in a network. This global chain facilitates the creation of new networks and the management of nodes on that network. It also houses protocol components such as smart contracts for facilitating network functionality like DHCP.

These components are the building blocks that underpin the Marconi Network. Additional details can be found in the white paper.

Product Architecture

Marconi is composed of four key components.

Marconi Product Architecture

Marconi Command-line Interface (mcli)

The mcli provides a simple interface to all of the Marconi components. It allows the user to run commands and interact with the Marconi Network. It is also responsible for ensuring all of the required packages are downloaded/updated and any configurations are executed as needed.

Go-Marconi

This is the Marconi fork of go-ethereum. go-marconi finds peers through the go-marconi bootnodes and connects itself to others on the network to sync blocks from the Global Chain. Changes have been made to support the CryptoNight Variant 4 (aka CryptoNightR) hashing algorithm.

Marconid

The Marconi Daemon creates and manages mPipe connections between nodes. This includes interfacing with the operating system’s networking functionality, establishing peer connections, and handling packet authentication, encryption and decryption. Marconid also contains a processor that executes programmable packets.

Middleware

The middleware bridges go-marconi and marconid. It does this by exposing a JSON RPC API which allows other processes to interact with go-marconi and marconid.

The middleware component is composed of three main pieces:

  • A daemon that periodically fetches data from the blockchain
  • An interface that allows the middleware to interact with the blockchain
  • A http interface to interface with the middleware

For more information please refer to the white paper or wiki