Show simple item record

dc.contributor.advisorLeander Nikolaus Jehl
dc.contributor.advisorThomas Stidsborg Sylvest
dc.contributor.authorMelstveit, Jørgen
dc.date.accessioned2021-10-19T15:51:14Z
dc.date.available2021-10-19T15:51:14Z
dc.date.issued2021
dc.identifierno.uis:inspera:73533758:17586339
dc.identifier.urihttps://hdl.handle.net/11250/2823939
dc.description.abstractConsensus algorithms are notorious for being both difficult to understand and even harder to implement. Several frameworks and programming paradigms have been introduced to help make consensus algorithms easier to design and implement. One of these frameworks is the .NET Cleipnir framework which primarily focuses on making it simpler to develop a persistent consensus algorithm. In addition, Cleipnir supports functionality that makes both asynchronous and reactive programming paradigms easier for a developer to utilize in their implementation. We want to determine if the Cleipnir framework and the related programming paradigms can help design a simple and understandable consensus algorithm. To accomplish this task, we create a \acl{pbft} implementation that has its protocol workflow run as orderly and synchronous as possible using the Cleipnir framework and the aforementioned protocol paradigms. Furthermore, we evaluate each of the previously mentioned tools to ascertain how they benefit and hinder our implementation. We discover that the benefits heavily outrank the disadvantages for both programming paradigms and works well together. We conclude that the Cleipnir framework does provide helpful tools for the implementation of consensus algorithms. We further learn that the algorithm’s complexity can heavily affect the level of simplicity that can be provided to the algorithm workflow without the loss of functionality.
dc.description.abstract
dc.languageeng
dc.publisheruis
dc.titleImplementing PBFT using Reactive programming and asynchronous workflows
dc.typeMaster thesis


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record