Gamoly
A Decentralized Game Streaming Platform
About
The problem it solves So there are lots of video streaming sites which provides streaming features but Gamoly is built different! - It uses blockchain for data storage and management so this makes it super secure since your data is stored in a smart contract. - For streaming it uses livepeer's decentralized video streaming solution which makes streaming much more safe and secure. - For file storage we use Filecoin's decentralized storage network which is similar to IPFS but stores data in a more encryted way. - For NFT management we use solidity, truffle and filecoin all mixed together to create a secure place for buying and selling it. - We don't store data with ourselves which means even we can't access your data directly and this is true even for login credentials!! We use a method similar to Zero-knowledge-proof which makes your privacy more secure. - And last but not the least for subscriptions and memberships we use money streaming (that is you are charged for every second instead of a full month, a bit complicated :)).
How it's made
Challenges we ran into While finishing this project we had to use a lot of technologies that we were working on for the first time. 1. Integrating Arcana with Next Js: - We created the whole project with Next Js and since it uses pre-rendering we couldn't use any package, directly, that would use the window object and Arcana was one of them. So we had to export it dynamically through 'next/dynamic' but that seemed to be an in-efficient way. So we imported it while loading the login page and used the same instance everywhere by creating a context of it. 2. Livepeer integration: - Integrating livepeer was another challenge since we just not had to create a livepeer connection but use that same connection for streaming every stream by the user. We did that by creating a service for user through which multiple users could request for stremaing at the same time. 3. Storing stremaing details in smart contrat: - We had to store every streaming detail for each user in smart contract. And the main problem was to stop the user from creating another stream while he was already streming. We created a simple switch which would turn on when user is streaming and will prevent him from creating another stream. 4. Creating smart contract for the whole process to work: - Creating such a complex smart contract which could handle everything was too a challenge. We had to create different structs for users, streams and NFTs. The main problem arose in deploying them since deploying each contract separately wouldn't make sense so we integrated all these contracts into a single one and deployed it.