Skip to content
This repository has been archived by the owner on May 10, 2024. It is now read-only.

Commit

Permalink
doc: general revisions
Browse files Browse the repository at this point in the history
  • Loading branch information
giovaz94 committed Feb 1, 2024
1 parent aa6e8f5 commit 8d7fb41
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 104 deletions.
82 changes: 0 additions & 82 deletions docs/report-asw/references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -3,92 +3,10 @@ @misc{HLF
howpublished = {\url{https://www.hyperledger.org/projects/fabric}},
}

@inproceedings {raft,
author = {Diego Ongaro and John Ousterhout},
title = {In Search of an Understandable Consensus Algorithm},
booktitle = {2014 USENIX Annual Technical Conference (USENIX ATC 14)},
year = {2014},
isbn = {978-1-931971-10-2},
address = {Philadelphia, PA},
pages = {305--319},
url = {https://www.usenix.org/conference/atc14/technical-sessions/presentation/ongaro},
publisher = {USENIX Association},
month = jun
}

@misc{leveldb,
title = {Google LevelDB},
howpublished = {\url{https://github.com/google/leveldb}},
}

@online{couchdb,
title = {Apache CouchDB},
howpublished = {\url{http://couchdb.apache.org}},
}

@online{hyperledger-fabric-doc,
title = {Hyperledger Fabric Documentation},
author = {Hyperledger Fabric Documentation},
year = {2023},
url = {https://hyperledger-fabric.readthedocs.io/en/release-2.5/},
}

@online{junit,
author = {{JUnit Team}},
title = {{JUnit}},
year = {2023},
howpublished = {\url{https://junit.org/}},
urldate = {2023-11-13}
}

@online{mockito,
author = {Mockito},
title = {Mockito: Mockito Framework},
year = {2023},
howpublished = {\url{https://github.com/mockito/mockito}},
urldate = {2023-11-13}
}

@book{hyperledger-fabric-book,
author = {Nitin Gaur and Anthony O'Dowd and Petr Novotny and Luc Desrosiers and Venkatraman Ramakrishna and Salman A. Baset},
title = {Blockchain with Hyperledger Fabric: Build decentralized applications using Hyperledger Fabric 2, 2nd Edition},
edition = {2nd},
publisher = {Packt Publishing},
year = {2022},
isbn = {978-1839218750},
}

@misc{corda,
title = {{Corda: An open-source blockchain platform for business}},
author = {R3},
howpublished = {\url{https://www.corda.net/}},
year = {2023},
}

@misc{tendermint,
title = {{Tendermint: Byzantine Fault Tolerant Middleware}},
author = {Tendermint Team},
howpublished = {\url{https://tendermint.com/}},
year = {2023},
}

@misc{jwt,
author = {Auth0},
howpublished = {\url{https://datatracker.ietf.org/doc/html/rfc7519}},
title = {JSON Web Tokens specification},
year = {2023}
}

@online{hyperledger-fabric-ca-docs,
author = {{Hyperledger Fabric CA Documentation}},
title = {{Hyperledger Fabric CA Operations Guide}},
year = {2023},
howpublished = {\url{https://hyperledger-fabric-ca.readthedocs.io/en/latest/operations_guide.html}},
}

@online{fabric-ca-rework,
author = {{KC The Servant}},
title = {{Rework: A Companion Guide to Fabric CA Operation Guides for Fabric v2.2}},
year = {2020},
howpublished = {\url{https://kctheservant.medium.com/rework-a-companion-guide-to-fabric-ca-operation-guides-for-fabric-v2-2-7886e8037427}},
}
27 changes: 5 additions & 22 deletions docs/report-asw/report.tex
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@
\newcommand{\version}{\versionmajor.\versionminor.\versionpatch}

\title{\LARGE
ChainVote Final Report
ChainVote Final Report - ASW
}

\subtitle{(v. \version)}

\author{
Giovanni Antonioni \\ \emailaddr{giovanni.antonioni2@studio.unibo.it} \\ Matr. \texttt{001083764}
Giovanni Antonioni \\ \emailaddr{giovanni.antonioni2@studio.unibo.it} \\ Matr. \texttt{1083764}
\and
Luca Rubboli \\ \emailaddr{luca.rubboli2@studio.unibo.it} \\ Matr. \texttt{1083742}
\and
Expand Down Expand Up @@ -1119,29 +1119,12 @@ \subsubsection*{MacOS/Linux: \texttt{General build failure}}

\section{Conclusions}

In this project, we explored the possibility of building a reliable and secure e-voting system leveraging the advantages offered by blockchain technology.
In this project we designed and implemented a web application that allows a user to interact with our system.

After identifying system requirements and exploring three of the most important technologies for building permissioned blockchain, we chose Hyperledger Fabric for its modularity and high configurability.
Following the REST API principles and guidelines learned during the lessons, we achieved a good level of usability and user experience, enhancing our technical knowledge about modern web frameworks and tools while, at the same time, getting in touch with real-time scenarios.

We then proceeded with the design of the blockchain network and architecture of the project, trying to give maximum preference to its extensibility, not forgetting the three essential cornerstones for such a project: security, reliability and fault-tolerance.
Despite being a challenging project we can consider reached our fixed goals, fulfilling all the requirements of the system.

Ample space was devoted to the configuration and implementation of the network and smart contracts and their deployment using Docker.

Finally, we developed a ReST API adopting best practices to provide a uniform interface, with a semantic and clear meaning, to application clients.

Despite being a challenging project we achieved the goals, fulfilling all the requirements of the system.

\subsection{Future Works}

To conclude, some extensions that could be implemented to make the system more comprehensive are listed below:
\begin{itemize}
\item As highlighted in \ref{subsec:blockchain-architecture}, the blockchain network must be improved from the fault-tolerance side by building a significant amount of organization peers; this could positively affect the availability of the system too;
\item As domain requirements could change, another feature could involve the ability to define customizable rules for ballots, i.e. the possibility to vote multiple choices in a single ballot, and for elections, i.e. establish criteria to invalidate results based on quorum;
\item The admin creation process should be handled differently, in a real scenario an admin should be created only by means of another admin;
\item Given that the process of collecting signatures for petitions to invoke a popular vote is a costly process for both organizers and participants, the system could provide a user-friendly interface to handle proposals and automatically generate a referendum when a quorum is reached;
\item Tests could be enriched by simulating a wider variety of stress situations;
\item From a security point of view, the mechanism used to provide the code to users should rely on a secure fashion, i.e. a combination of out-of-band channels.
\end{itemize}

\nocite{*} % Includes all references from the `references.bib` file
\bibliographystyle{plain}
Expand Down

0 comments on commit 8d7fb41

Please sign in to comment.