Github but better!
What it does
- a distributed large file repository similar to Github but with no file size restriction
- Files would be shared across the network using IPFS
- The network would need to be defined as a number of clusters
- Each file would be split into a number of blocks and assigned to a cluster
- Additionally, each block would be checksummed with something like MD5 for security
- Blocks are replicated across a cluster for redundancy in case a node goes down within a cluster
- Blocks should be versioned to allow for file updates (see Github's DAG schema for an example of versioning)
- The only thing stored globally on-chain is the metadata of the file such as its name, UUID, block information and the clusters responsible for it
- Essentially operating two blockchains:
- A global ledger for file block metadata (primary chain)
- A cluster local ledger for actual file blocks (secondary chain)
- Would require a well-defined protocol for chain-to-chain communication
- This should be able to be provided by a Kasuma feature (or set of features)
- Would also require the development of an economic model to incentivize clients yielding storage space for the secondary chain
- This particular idea is pretty much the BitTorrent protocol but for Blockchains
- Unlike BitTorrent, by using a Blockchain, security improves as we can guarantee files have not been tampered with
- May require the implementation of a custom consensus mechanism
General Architecture: link
How we built it
We spent the first few weeks learning new languages then split into two groups. The frontend group and the backend group. The Frontend group was responsible for the website and IPFS integration. The Backend group was responsible for writing smart contracts and node integration.
Challenges we ran into
-It was hard to complete it due to having to learn completely new languages and living busy lives. -It turns out that ink is severely limited in what it has implemented thus far. Additionally, it restricts contract writers to using the embedded version of Rust which doesn't even have support for math operations like log() and pow().
Accomplishments that we're proud of
Learning Rust, React, and blockchain technology. Integrating the IPFS Cluster to store and retrieve files.
What we learned
Rust, React, blockchain technology. In addition, we learned to let our teammates know what time zone we are using so we can work together better.
What's next for Comrade Polo
Some of us are going to continue working on this after the competition is done but for now, We should consider what we have a _ very early stage alpha product _.