How to build a Distributed System with Real-time Constraints using concurrent Functional Programming tools.
Building complex distributed systems with real-time constraints that are eventually designed to be run by end users in an adversarial environment with no central control is especially challenging. Because no one is on your side and you are the target of everyone's ire, you can't utilise tried-and-true, off-the-shelf solutions because the only reasonable assumption is that 51% of the network's users are honest. Creating something on this foundation is extremely difficult. To accomplish all of this, we rely on the finest of what Strongly Statically Typed Purely Functional Programming has to offer. Type safetiness, referential transparency, compositionality, explicit control of effects, STM, and clever testing approaches are among the concepts and tools in our repertoire for managing complexity and ensuring the continuous operation of a distributed network.
This presentation will highlight some of the important items the IOG networking team is working on and where we believe we are succeeding.
Armando is a Well-Typed Haskell consultant working IOG's networking team for the past 2 years. He earned his Master's degree in Computer Engineering from the University of Minho, where he specialised in Formal Methods in Software Engineering and Distributed Systems. He has been assisting the team in the implementation and testing of the Cardano network's peer-to-peer components. His research interests cover the algebra of programming, functional programming, abstract math, and lately applying semantic elegance and rigor to library design.