Inspiration and Essence
Civol is digital direct democracy on your phone, with a built-in decentralized 4th Estate. It's based on experts discoursing and debating important issues, and everyone who is interested in those issues voting their level of resonance or agreement with what the experts are saying. We call this ambient voting because Civol makes it an effortless and rewarding part of the media consumption flow.
Because Civol's market is communities at every scale, worldwide, from DAOs to nonprofits, villages, cities, states, nations, the planet and beyond, it requires infinite scalability.
And because Civol is all about voting, blockchain security, immutability, and verifiability are essential. But at the same time, it must have a high transaction rate.
Because Civol is about sharing revenue generated by the platform within a self contained sustainable ecosystem, it needs to be tokenized.
And because Civol is a consumer facing dapp it has to deliver web speed performance.
And because Civol will be mission critical infrastructure for the communities it serves it has to be unstoppable and tamperproof.
All of these requirements brought me to DFINITY, the decentralized cloud, the blockchain singularity, the one and only Internet Computer. In the beginning I watched Dominic slack-jawed and awestruck. It literally seemed unreal, no way, not everything... But soon I realized the IC was in fact a dream come true, exactly what Civol needed to fulfill its transformational potential, and the DFINITY Foundation would even help me build it!
With an initial 25k grant we built a working prototype of the Civol Xchange Player Recorder in Flutter, but it didn't run on the IC. With a follow on 50k grant and a new rock star team we have completed the foundation XPR and made it run happily on the IC. This includes developing our Parallel Video System. All that was Milestone 1. Now for Milestone 2 we've added the core voting and consensus capabilities, as well as optimized the PVS, to include a brand new parallel streaming video player and making the Vcan Array autoscalable. It is mainly these latter two solutions that we're showcasing in this Supernova project.
Architecture and Construction
The Civol Frontend is housed in the requisite assets canister and was built using Flutter, providing us with Android, iOS, and Web apps from a single codebase. The Backend currently lives in two main canisters, Data and Video, both developed in Motoko, along with a now autoscalable array of video storage canisters, currently 16 of them.
Challenges and Learnings
When we started developing the video solution we quickly discovered that storing a 5-10mb video file on the IC as a series of chunks was not going to deliver acceptable performance. We experimented with various chunk sizes and finally concluded the solution had to be parallel, that way the total publishing time would be approximately the same as storing a single chunk. So this was totally blue sky as far as we could tell, but undaunted, we dove in. After a lot of intense toil and iteration the solution works beautifully, Awaz and Hitesh have been truly awesome through the whole thing. We can now publish a 2min Civol hostpost in 20-30s, when before it was minutes.
So we had to figure out many things to pull this off, and they were all challenging — How to split the video? How to construct the Vcan Array? How to optimize it to receive, store, and send chunks? And now, how to scale it automatically, meaning add a new Vcan whenever an existing Vcan becomes full, so that we always have more than enough Vcans to store the largest video file we're likely to encounter?
But that's not all, oh no. We had to build a brand new video player as well, one capable of streaming chunks from our Vcan Array, and capable of delivering playback start times in the 4-6 second range. Awaz met all these challenges, and the new player is working flawlessly.
This diagram summarizes most of the PVS.
What's next for Civol
Our next milestone is a launchable Alpha, which will include decentralized methods and functionality to empower the community to create new discourses and threads, as well as ensure that the panel of experts on every thread is being constantly refreshed and open to experts from across the spectrum. Also coming soon will be our Flutter Web app, our Cache canister, and the first version of the CVL wallet, possibly with voucher tokens that will be exchangable for real tokens once the latter launches. We look forward to becoming one of the first dapps to go fully autonomous with SNS.


Log in or sign up for Devpost to join the conversation.