A Decentralized Game Streaming Platform

Last updated: 27 March 2022 03:22 PM

Fixed typo

The problem Gamoly 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
  • 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 :)).

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.