This repo is to build POC and planning
- Test out the the following
- WebRCT test DONE
- Streaming contract ( sablier.finance or superfluid ) DONE
- Media recorder
- IPFS stoe using web.storage
- Test orbit DB
- test authentication store on the IPFS.
Build :
- make simple video chat using Peerjs
- Attach payments using streaming contract to the webRTC
- Add recorder
- Save the recording file on IPFS NFT gated ( TO do decided exact architechtutre )
References :
WebRTC :
https://peerjs.com/docs/#start https://peerjs.com/docs/#api https://github.com/jmcker/Peer-to-Peer-Cue-System
StreamContract :
Decided to use ceramic network for user to upload his/her own data
https://developers.ceramic.network
Using ceramic to store the data on IPFS
https://blog.ceramic.network/how-to-store-signed-and-encrypted-data-on-ipfs/
https://blog.ceramic.network/how-to-build-a-simple-notes-app-with-idx/ https://blog.ceramic.network/how-to-build-a-simple-notes-app-with-idx/ https://developers.ceramic.network/reference/stream-programs/tile-document/
Encrypting and decrypting using meta mask
https://betterprogramming.pub/exchanging-encrypted-data-on-blockchain-using-metamask-a2e65a9a896c
NFT storage to mint NFT
https://nft.storage/docs/how-to/mint-erc-1155/#minting-your-nft
https://support.nftify.network/hc/en-us/articles/4409618795417-Metadata-Standards https://docs.opensea.io/docs/metadata-standards
Media recorder to recording audio :
https://stackoverflow.com/questions/52768330/combine-audio-and-video-streams-into-one-file-with-mediarecorder https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder
Steps to store the recorded data :
- Create a blob out of the the data
- store the item in IPFS using web3.storage
- using ceramic store the cid in the user's profile document
When user visits the recording page,
- retrieve the profile details from ceramic
- get the cid file using web3 storage
- Show option to mint NFT
- We would have NFT contract deployed on ploygon
- When users mints NFT use NFT.storage, the file will be fetched from CID of the file