Tutors: Vivien Pelletier, Julien Tesson, Ilias Garnier, Mathias Bourgoin
A blockchain is a decentralized system implementing a consensus algorithm over 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 observations of the structure of their neighborhood and of temporal shifts in the reception of messages.
The goal of this internship is to develop mathematical and software analyses for the peer-to-peer network of the Tezos blockchain, as follows:
- Building upon existing work, you will build a cartographer node to estimate simple metrics, such as the size of the network, its diameter, or the lifetime of adjacent nodes.
- You will refine these results by deploying a sub-network of cartographer nodes and developing tools able to aggregate the data that it gathers.
- You will design and implement a statistical model to infer properties of the net-work topology from the aggregated data gathered by the cartographer nodes.
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 proper-ties of graphs.
You will work at the Nomadic Labs’ offices in Paris.
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.
All material produced (essays, documentation, code, etc.) will be released under an open source license (e.g. MIT or CC).
➡️ If you don’t meet all the criteria above, but think you can still be an asset to us, please consider applying.