Closed synctext closed 1 month ago
pretier
in Kotlin? (To format the kotlin files without having to run the gradle thing everytime)Freedom-of-Computing contains a gossiping mechanism which periodically shares local applications to other users and downloads unseen applications from other users
from FOC.readme
Sprint ToDo:
Concrete Week 10 goal:
Linter for kotlin: https://github.com/pinterest/ktlint
For the next week:
Demo of push gossip: https://jam.dev/c/3b808243-706e-4d41-b082-668026a82a53
Next week:
Fix pull based gossip. For example, you can delay it until we are connected. Other option you can used "extra_bits" for introduction_request/response.
Get the number from a simple benchmark: Time to convergence (when everyone in the network has discovered the apk), and overhead per vote (bandwidth, ...)
Now the votes are collected with a queue that is polled every second. What is the easiest way to implement it asynchronously? Implement a singleton? Any ideas @InvictusRMC?
Check if you can install/reinstall super-app with new apk. (It's a sidequest, so you're on a time budget)
- Now the votes are collected with a queue that is polled every second. What is the easiest way to implement it asynchronously? Implement a singleton? Any ideas @InvictusRMC?
Right now the implementation is indeed very inefficient. What I suggest is making use of a listener. That way we can check whether conditions are met whenever receiving a new block, as opposed to checking periodically.
Solid progress
For the next week:
Improved graph for push-based gossip
For next week:
This is just a brief overview of our project, check out the README for more insights.
FreedomOfComputing
app.dat
fileThe README contains most of our documentation, as it provides a developer onboarding guide explaining the main methods of the FreedomOfComputing
App. It also contains a section which goes more in depth into the features that we implemented in this project, the key decisions we made and highlights some of the current limitations as well as potential future improvements. We also made sure to include detailed KDocs for all new and most existing methods. These comments cover parameters, return statements, and provide an overview of each method's functionality.
The new classes with heavy logic that required testing were FOCVoteTracker
and FOCSignedVote
class. For the FOCVoteTracker
class, we reached 100% method coverage with 90% of lines covered
(The missing lines are just mainly console log statements used for debugging) and on
the FOCSignedVote
class, we reached 100% method coverage and 100% line coverage.
For the live demo download this APK and follow these steps:
Steps:
Recordings in case live demo doesn't work: Demo Voting Demo Downloading APK Demo Torrenting APK
Project assignment for Delft University of Technology master course called "blockchain engineering". Democracy-3 self-evolving blockchain
All three team members got it compiling.
Background reading:
Upcoming sprint assignment