Cartography, monitoring and analysis of the p2p network

Tutors : Vivien Pelletier, Julien Tesson, Ilias Garnier, Mathias Bourgoin

Blockchains are decentralized systems implementing a consensus algorithm on a peer-to-peer (p2p) network.

The consensus algorithm implemented in Tezos is robust against partial failures of the underlying p2p network. However, a healthy network ensures a faster diffusion of messages and reduces the likelihood of temporary divergences caused by nodes having a partial view of the network.

Quantifying healthiness of the p2p layer requires an understanding of its key properties, such as its shape, its size, and the laws governing its evolution. Even though the decentralized nature of the network and its high dynamicity make it practically unfeasible to map it exhaustively, some useful properties can be inferred from partial information provided by dedicated "cartographer" nodes, such as the structure of their neighborhood and measures of temporal shifts in the reception of messages.

Goals

The goal of this internship is to develop mathematical and software analysis for the peer-to-peer network of the Tezos's blockchain. Building upon existing work, you will build a cartographer node, which will be able to estimate simple metrics, such as the size of the network, its diameter, or the lifetime of a node.

In order to further refine these results, you will deploy a sub-network of cartographer nodes and develop tools able to aggregate the data from this sub-network.

In a second step, you will design and implement a statistical model able to infer properties of the network topology from the aggregated data gathered by the cartographer nodes.

Requirements

You should have a good knowledge of the OCaml programming language and be eager to explore the literature pertaining to the statistical estimation of structural properties of graphs.

Internship Context

You will work at the Nomadic Labs' offices in Paris or Grenoble.

Participating in a large scale open-source project you will have to rapidly learn to use collaborative tools (Git, merge request, issues, gitlab, continuous integration, documentation) and to communicate about your work. The final results might be presented at an international conference or workshop.

You will have a designated advisor at Nomadic Labs and will have to work independently and to propose thoroughly-considered solutions to the different problems you will have to solve. You will be encouraged to seek advice from members of the team.

Intellectual Property

All material produced (essays, documentation, code, etc.) will be released under an open source license (e.g. MIT or CC).