Standard Grant: Fabstir Web3 Media Player #2

Project Name: Fabstir Web3 Media Player #2

Organisation: Fabstir

Primary Contact: Jules Lai (Founder and CTO of Fabstir)

Summary:

Additional grant proposal (previous here) to get Fabstir Media Player polished and user-facing. It is to have a live public platform for permissionless use with the core abilities to stream videos, transcode uploaded videos via Sia peer-to-peer network and tokenise said content for Web3 decentralisation on Polygon PoS.

Objectives:

  • Smart Contract Audits: Smart contracts audited from reputable firm to ensure security and reliability, to meet Consensys requirements.

  • Cloud Infrastructure Setup: Deploy Fabstir transcoder on a cloud platform with the necessary GPU support. Deploy media player application on CPU cloud node to ensure accessibility and performance.

  • MetaMask Snaps Approval: Follow the MetaMask Snaps submission process, which includes preparing documentation, ensuring Fabstir Media Player Snaps meets Consensys security and functionality guidelines

  • Testing and Quality Assurance: Ensure comprehensive unit and integration tests to cover the smart contracts, front end, and any backend peer-to-peer services.

  • Continuous Monitoring and Feedback Incorporation: Once live, continuously monitor dApp’s performance and user feedback.

Budget:

The grant proposal is for $77660 to support the project’s development over a period of nine months. The budget allocation is as follows:

Jules Lai to be full-stack Web3 developer: $40000

  • GPU & CPU cloud cost $11000*

  • Hardware/software $2000

  • Smart contract audit $22660*

  • Legal/accounting $1000

  • Contingency and Miscellaneous $1000

Proposed Timeline:

First 3 Months: Core Development and Payment Integration

  • Focus on finalising the core functionalities of the dapp, ensuring all features like

video upload, transcoding, and NFT wrapping are polished.

  • Complete the development of the dapp’s payment dashboard for transcoding, storage (Sia/S5) and NFT minting fees (Polygon) + running costs.

  • Begin creating documentation for the npm package and platform.

Second 3 Months: Security, Scalability, and Public Access

  • Deploy the Rust transcoder to the GPU cloud node with preliminary testing.

  • Deploy the media player dapp to the CPU cloud node with preliminary testing.

  • Package the media player and gallery as an npm module with integration testing.

  • Prepare and submit the dapp for MetaMask Snaps approval.

  • Address feedback from smart contract audits and finalise security enhancements.

Third 3 Months: Final Preparations and Community Engagement

  • Deploy the dapp in a live production environment for public use, ensuring scalability.

  • Enhance the platform based on beta testing feedback for user experience.

  • Finalise the roll-out to full public release upon MetaMask Snaps approval

*Preliminary quotes have been gathered from Paperspace, Hetzner and Hacken.

Benefits to Sia

IPFS and its ecosystem has a stranglehold in the Web3 world when it comes to offline storage off of blockchain. Fabstir Media Player can help build a foothold for Sia from where its competitor (for want of a better word) is particularly deficient; medium to long form video for storage and streaming.

Fabstir gives the option for any of the 1 to 2 million monthly active users of Polygon’s NFT marketplaces to mint video NFT of any length yet
still have the lower quality short video, perhaps used as a trailer or sample, remain compatible to showcase on existing NFT exchanges for trading purposes. Then use Fabstir Media Player to play the film in all its full length and higher quality glory. There is currently no NFT marketplace out there that can trade medium or long form video. This can help bring in more users to Sia’s ecosystem.

Anyone will be able to use Fabstir Media Player as an npm package to build out their own NFT media marketplace dapp or perhaps add to their website pages for whatever use case that would benefit from smooth higher quality video playback using Sia peer-to-peer storage via S5 content-addressed network.

Professional filmmakers may come to know Sia as a quicker and cheaper way to archive their masters and easily add ownership and authentication properties by minting an NFT. Could lead to further use for example, unlocking premium content such as behind-the-scenes content or cast/crew interviews, different edited versions of the film etc.

Having a MetaMask Snaps plugin as one of its first media dapps to its 30 million monthly active users could garner great exposure to Sia’s ecosystem in its role for decentralised storage and attract new users into the ecosystem.

Future expansion to other EVM compatible blockchains would require minimal changes if at all and potentially bring in more users to Sia.

Risks

Whilst Consensys has pledged to open up MetaMask Snaps to a fully permissionless system, they have not given a date publicly, since its launch to the public last September, 2023. So there well may be a vetting process involved for Fabstir to release the media player.

Some risk may lie on S5 in production in terms of how well it copes when scaling up to more users, since it’s a new system.

Balancing the cost of Sia storage, S5 usage, upkeep costs of the transcoder cloud server and other running support costs will be an adaptive, learning process as a lot is new.

Thanks for your new proposal to the Sia Foundation Grants Program!

The committee is requesting some additional information before further consideration.

  • The budget item for “GPU and CPU cloud cost” seems quite high. Could you please provide an itemized list of the estimates you received?
  • The budget item for “Smart contract audit” is something the committee is open to, but will not approve at the beginning of the project. They’d like to see the bulk of the project working on testnet or another private instance before approving the smart contract audit. Please remove this line item from this initial proposal. We recommend submitting for this as a separate grant, or as a later stage milestone for this grant, after the above condition has been met.

Hi Steve,

Understood. I will post up the revised proposal in the next post.

Kind regards,
Jules

Project Name: Fabstir Web3 Media Player #2

Organisation: Fabstir

Primary Contact: Jules Lai (Founder and CTO of Fabstir)

Summary:

Additional grant proposal (previous here) to get Fabstir Media Player polished. It is to have a live public platform with the core abilities to stream videos, transcode uploaded videos via Sia peer-to-peer network and tokenise said content for Web3 decentralisation on Polygon Mumbai testnet.

Objectives:

  • Cloud Infrastructure Setup: Deploy Fabstir transcoder on a cloud platform with the necessary GPU support. Deploy media player application on CPU cloud node to ensure accessibility and performance.

  • Testing and Quality Assurance: Ensure comprehensive unit and integration tests to cover the smart contracts, front end, and any backend peer-to-peer services.

Budget:

The grant proposal is for $37891.02 to support the project’s development over a period of six months. The budget allocation is as follows:

Jules Lai to be full-stack Web3 developer: $26666.67

  • GPU & CPU cloud cost $8557.68*

  • Hardware/software $1333.33

  • Legal/accounting $666.67

  • Contingency and Miscellaneous $666.67

Proposed Timeline:

First 3 Months: Core Development and Payment Integration

  • Focus on finalising the core functionalities of the dapp, ensuring all features like

video upload, transcoding, and NFT wrapping are polished.

  • Ready the development of the dapp’s payment dashboard for transcoding, storage (Sia/S5) and NFT minting fees (Polygon) + running costs.

  • Create documentation for media player.

Second 3 Months: Security, Scalability, and Public Access

  • Deploy the Rust transcoder and media player to cloud nodes with preliminary testing.

  • Package the media player and gallery as an npm module with integration testing.

  • Deploy the dapp on testnet production environment.

  • Deploy the dapp for live production environment.*

* The core functionality of creating an NFT for video, audio, media, files and data both short and long form plus the ability to stream videos, transcode and upload media with all transcoder features will be live on Polygon mainnet. Some more exotic features that require smart contract audit will be initially disabled.

The platform will run without inclusion into MetaMask’s currently permissioned Snaps marketplace.

Breakdown of GPU & CPU cloud cost

*Preliminary quotes have been gathered from Paperspace for GPU cloud and Hetzner for CPU cloud

ASCII Calculation Total
GPU cloud NVIDIA A6000 GPU $1.89/h * 24 * 183 $8300.88
CPU cloud AMD Ryzen™ 5 3600 CPU, 6 cores @ 3.6 GHz $42.8/mth * 6 $256.80

Hosted NVIDIA GPU servers have to use professional range of GPUs. For AV1 video encoding, Ada Lovelace architecture is required.

Future benefits to Sia

IPFS and its ecosystem has a stranglehold in the Web3 world when it comes to offline storage off of blockchain. Fabstir Media Player can help build a foothold for Sia from where its competitor (for want of a better word) is particularly deficient; medium to long form video for storage and streaming.

Fabstir gives the option for any of the 1 to 2 million monthly active users of Polygon’s NFT marketplaces to mint video NFT of any length yet
still have the lower quality short video, perhaps used as a trailer or sample, remain compatible to showcase on existing NFT exchanges for trading purposes. Then use Fabstir Media Player to play the film in all its full length and higher quality glory. There is currently no NFT marketplace out there that can trade medium or long form video. This can help bring in more users to Sia’s ecosystem.

Anyone will be able to use Fabstir Media Player as an npm package to build out their own NFT media marketplace dapp or perhaps add to their website pages for whatever use case that would benefit from smooth higher quality video playback using Sia peer-to-peer storage via S5 content-addressed network.

Professional filmmakers may come to know Sia as a quicker and cheaper way to archive their masters and easily add ownership and authentication properties by minting an NFT. Could lead to further use for example, unlocking premium content such as behind-the-scenes content or cast/crew interviews, different edited versions of the film etc.

Having a MetaMask Snaps plugin as one of its first media dapps to its 30 million monthly active users could garner great exposure to Sia’s ecosystem in its role for decentralised storage and attract new users into the ecosystem.

Future expansion to other EVM compatible blockchains would require minimal changes if at all and potentially bring in more users to Sia.

Risks

The live release version of Media Player is intended to run standalone or with MetaMask Flask (developer version of MetaMask and not the standard version so there may be stability issues).

Consensys run an allowlisted Snaps directory of plugins that been audited by third parties as well as the MetaMask team. In their words “MetaMask Snaps Open Beta is a first step to building this permissionless system.”. No date has been given for the permissionless system.

Some risk may lie on S5 in production in terms of how well it copes when scaling up to more users, since it’s a new system.

Hi, thanks for the update.

Just for me to understand: are you going to use the GPU computing for the whole project duration, from the start till the end, 24/7?

Hi Mike,

What I want to do is have the transcoder platform up on the GPU cloud sort of 2/3-3/4 of the way through proposal cycle. Before then I can use my home pc for dev work.

And then moving forward after further testing, have it so anyone can mint a video/audio/image/data NFT to keep or sell it on exchanges or whatever. So the GPU cloud being used for this with some time needed for things to find their feet.

Snaps will be a great way to bring in lots of traffic/volume, currently has to go though an audit procedure vetted by Consensys which they claim will be loosened but no set date as far as I know.
I’ll be handling state through GUN SEA API for encryption of keys so not an issue.

So the plan is for the platform out live, people using it and it earning money with the aim to cover costs.

P.S. I will be exploring other use cases as well for movie production/VFX footage archival. Even DCP transfer between cinemas, that might be good use case for independents. I am meeting up with a London cinema owner next week, can discuss this.
This is not part of the proposal, something that is possible when you have a system of encryption and ownership tagging. Since also can pay by fiat, people don’t have to get their head around crypto to use it. Opens up possibilities.

Thanks for providing the requested edits to your proposal. I’m happy to relay the the committee has approved this grant!

The committee still wasn’t sold on your choice of six months of GPU rental. Due to your comments about not needing it until 2/3-3/4 of the way through the timeline, we may structure your payments so that these funds are disbursed in the back half of your grant. We can discuss the specifics of that separately.

We’ll reach out to your provided email address to begin onboarding. It can take a couple of weeks to get new grantees set up, so please feel free to adjust your timelines accordingly.

Thanks Steve and the Foundation,

All good.

I continue the development on the proposal and things around it. I’m all in.

Best,
Jules

Hello @juleslai,

This is a reminder that your April progress report is now late.

Progress reports are due by the end of the 2nd day of the month, in this instance your April progress report was due on May 2nd.

Please be sure to follow the Progress Report Template and submit your progress report so we may continue funding your grant.

Regards,
Kino on behalf of the Sia Foundation and Grants Committee

Hi Kinomora,

Yes, I need 2 more days to meet my own schedule as I started a bit late due to unforeseen circumstances.

Then I’ll send the report. Hope that is okay.

Best,
Jules

Thank you for the update!

Generally, if you know that your report is going to be late, we’d prefer you let us know by April 2nd as that is when we start reviewing and summarizing the progress reports for the committee- if we know you’re going to be late, we can account for it in our planning!

Regards,
Kino

Yep for sure, will do.

Jules

Monthly report will be with you first thing tomorrow. Thanks for your patience.

Jules

Fabstir Media Player #2 - Progress Report #1

What progress was made on your grant this month?

  • Added progress % completion feedback from media transcoding jobs.
  • Created new graph database called FabstirDB that interfaces with OrbitDB and IPFS
  • Added the option for Fabstir Media Player to store its state not only to MetaMask wallet sandbox environment but to FabstirDB

Summarize any problems that you ran into this month and how you’ll be solving them.

  • Problems with digital wallet company caused me to lose a lot of time, means that I have to look for alternative.

Links to repos worked on this month:

What will you be working on next?

  • Add unit tests to FabstirDB and further testing of Media Player
  • Add dapp’s payment dashboard for transcoding, storage (Sia/S5) and NFT minting fees etc.
  • Work on adding support for graph database to S5/Sia infrastructure

Hello @juleslai

Thank you for your progress report!

Regards,
Kino on behalf of the Sia Foundation and Grants Committee

I have some loose ends to tie up. Monthly report will be 4-5 days late.

Fabstir Media Player #2 - Progress Report #2

What progress was made on your grant this month?

  • Added multi-chain support. Media player gallery can now list NFTs from multiple EVM compatible blockchains simultaneously and user can play any of them seamlessly.
  • User can connect to any of the whitelisted blockchains directly using the wallet widget UI. Then media player can mint or perform transactions on the connected blockchain. User can switch at any time to another chain in the wallet and carry out operations there. Testing was performed on Base Sepolia and Polygon Amoy.
  • Added user accounts that are saved to FabstirDB to enable use of the media player without needing MetaMask, and for the user dashboard.

Summarize any problems that you ran into this month and how you’ll be solving them.

  • Adding multichain support to the media player greatly increased its functionality, but opened up some issues for Particle Network wallet to work with this new environment. Had to work with their team and Biconomy to resolve them.
  • Waiting on some S5 Rust implementation that will allow for development of FabstirDB database support for Sia.

Links to repos worked on this month:

What will you be working on next?

  • Implementation of UI for the user account dashboard for transcoding, storage (Sia/S5) and NFT minting fees etc.
  • Early testing of the media player on a cloud node
  • Add support for graph database to S5/Sia infrastructure

Hello @juleslai

Thank you for your progress report!

Regards,
Kino on behalf of the Sia Foundation and Grants Committee

Hi,
Slight delay on my monthly report. I plan to submit it this Friday 5th.

Edit, It will be today 6th

Fabstir Media Player #2 - Progress Report #3

What progress was made on your grant this month?

  • Added support for automatic transferring of encryption keys between users; for example, when a user has bought an NFT that contains encrypted video(s).

  • Added some code for account abstraction tokens (non-transferable NFTs). Will allow users to sign agreements (e.g. legal documents) onchain for use of data, or for token gating, or for certificates.

  • Added multi-storage support for media. For example, a video NFT can have its media transcoded to Sia storage (through S5) for smoother playback at higher resolution whilst maintain maximum NFT marketplace compatibility by transcoding a lower quality trailer or audio sample to IPFS to allow potential buyers on marketplaces to review before buying. See video demonstration here: Dropbox

  • Started some initial work on the cloud node deployment of the media player.The application software stack consists of maintaining four servers.

Summarize any problems that you ran into this month and how you’ll be solving them.

  • Fabstir’s decentralised licensing server system is moderately complex. Will need more testing for potential security concerns and/or third party review.

  • S5 specs are being finalised so not able to start on adding graph database support to Sia yet.

Links to repos worked on this month:

What will you be working on next?

  • Continue testing of the media player software stack on cloud instances.

  • Further integration of the media player with Fabstir’s short film platform.

  • Implementation of UI for the user account dashboard for transcoding, storage (Sia/S5) and NFT minting fees etc.