Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
dTok - A decentralized TikTok that allows tipping and pay-as-per-view. #16
Give a 3 sentence description about this proposal.
dTok is an open, decentralized pay-as-you-go live-streaming platform. Livepeer provides decentralized video transcoding, micro-payments are processed via Layer 2 solutions (e.g. we will support Connext Network, Raiden, etc.), and the DTok browser-based wallet provides ease-of-use / rapid onboarding. Through dTok’s censorship-minimized system, content creators will easily reach the world and monetize their streams via micro-payments and tipping.
Describe the problem you are solving.
In April, the video live-streaming platform Tik Tok was shut down in India, preventing more than 500 million users from accessing the app. We were inspired at the EthCapeTown Hackathon in April to solve this problem with a censorship resistant live-streaming platform. In addition to issues of censorship, there is currently no way to monetize live-streamed content (via Livepeer) free of middleman fees. The dTok v0.1 won won all possible prizes @ethcapetown @ensdomains @nucypher @makerdao @raiden_trust
Finally, and arguably most importantly, beyond basic remittance (e.g. buying a beer with Burner Wallet) there exists virtually no easily accessible use-cases of crypto or blockchain—whereby somebody with no technical blockchain knowledge (and no wallet) can easily hop into a crypto-powered system and start deriving some utility from it.
Describe the solution you are proposing.
dTok mitigates censorship by obtaining transcoding via the Livepeer network. It also allows content creators (or “broadcasters”) to select how they would like to serve their streams—via either their own server, a custom CDN, or a CDN provided by dTok—enabling greater resistance to external tampering (e.g. a stream could be shared via multiple CDNs, etc.). Also, platform-level censorship resistance is achieved by making the entire dTok codebase and work-flow open-source—the dTok stack can be bootstrapped by anyone at any time.
Additionally, dTok solves the problem of rent-seeking tipping and micropayments platforms for viewing streams by integrating a variety of Layer 2 micro-payment systems (Connext, Raiden, etc.), enabling content creators to fully monetize their work.
Finally, dTok drives crypto adoption by implementing highly accessible onboarding via a simple, non-custodial, browser-based wallet (e.g. built with BurnerWallet or DaiCard). DTok users will be able to access preloaded wallets, meaning that a viewer can simply scan a QR code or click a link on their phone and jump right into a pre-funded Dai wallet and start viewing a Livepeer stream (the first couple minutes of viewing being free). This opens up accessibility of Livepeer to people with zero past experience of blockchain or crypto.
Complete Phase 1 (see below) architecture.
Describe the scope of the project including a rough timeline and milestones
The projects consists of three major phases, as we seek to build a fully-featured decentralized pay-as-you-go service on top of Livepeer:
Phase 1: Stable Version - 1000 LPT — This phase consists of taking the messy, post-hackathon codebase to a stable and reliable dApp. This version of dTok will enable payment for viewing Livepeer transcoded-streams via a simple, non-custodial, browser-based wallet UI . Multiple streams will be supported via an Ethereum smart contract. This phase is outlined in the diagram above.
Phase 2: Light Broadcaster - 1000 LPT — Following phase 1 (as outlined in the diagram above), while the viewer experience is seamless, broadcasters must run the Livepeer CLI, record via OBS Studio, directly interact with the Stream smart contract, and manually accept viewer payments. This phases consists of building out an accessible light broadcaster user-flow, whereby broadcasters can easily broadcast streams, from, for example, a mobile phone. There will be an intuitive dashboard experience, with a dTok backend that handles interactions with the Livepeer CLI and broadcasting the video stream via a CDN, meaning that the light broadcasting client will only need to interact with Ethereum (via a similar in-browser wallet). The vision of this phase is that a user will be able to take out their phone or laptop and quickly bootstrap a stream onto dTok with virtually no setup required.
Phase 3: Streamflow Integration - 1000 LPT — Prior to this phase, stream viewer authentication is handled inside the front-end (the Livepeer Media Player frame is only displayed if the user has provided sufficient payment). This phase consists of implementing dTok backend authentication that is compatible with Streamflow. dTok viewers will be issued “stream keys” via the Livepeer API. We will then implement a gate around the HLS output, meaning that the Livepeer API node will check to make sure that each user is still paying before serving up each segment to that user (the stream key will be invalidated once the user has run out of payment credit). Additionally, phase 3 will also consist of opening up dTok to a variety of other Ethereum micro-payment Layer 2 solutions (e.g. Connext, POA, Raiden once they have a fully-featured light client available, etc.).
As indicated, for the completion of phases 1-3, we are requesting a total of 3000 LPT.
Please estimate hours spent on project based on the above
Our team will consist of three developers working part-time on dTok, totaling 8 hours a day. All three phases will take 10 weeks to complete (working 5 days a week), meaning a total of 400 hours.
Hi there, this is a really great start. Something like this is super valuable if it is used and if it helps increase video flowing into the network. Therefore, I'd like to make a portion of this tied to usage by the ecosystem. Could you share back some milestones you might incorporate with that in mind? What's your GTM plan?
We are working on a number of dTok partnerships and use cases such as pay-per-view, tipping, multi-cams, polls and prediction markets which will serve to both increase exposure for dTok / Livepeer and drive early adaption via a variety of relevant platform use cases.
(with Vitalik watching dTok live performance
Our plan is to continue leveraging these partnerships and use cases to increase community traction around dTok, thereby driving significant early adoption to dTok.
This all looks good, I have a few questions that are easier by phone, so just sent you an email to schedule a time.
Performers using DTok: Ricardo was the first, would it be fair to have a goal of x # performers using DTOK?
X Number of viewers watching a stream at the same time. Seems like Champion League Final was a big event, maybe you can identify another event, whether thats through a hackathon, podcast, etc, find a way to track # viewers, and aim for a record number of viewers?
It's a shame to see this stall.
dTok is probably the most exciting and potentially valuable independent community-driven project that has ever come out of the Livepeer ecosystem, and it feels like a shame that 3000 LPT cannot be found from the Decentralized Community Node's reserves to support further development.
@bneiluj and his team have done a respectable amount of work to create this concept, develop the software and build community around dTok and Livepeer, as well as to do the work to propose a project for the onward development of this system, ahead of Berlin Blockchain Week and ETHBerlin.
They are integrating Livepeer with Connext v2, ENS, Raiden, DAI and Burner Wallet - which are arguably some of the most innovative projects in the Ethereum space this year, and in the case of Connext v2 and Raiden, dTok is the first user of these groundbreaking systems.
I would expect that this kind of independent community-led innovation of video-enabled applications on Livepeer would be exactly the kind of thing that should be encouraged and supported by the Decentralized Community.
@RaffiSapire perhaps you can share some more feedback on what can be improved about this proposal, and what would need to be added, in your opinion, to warrant the funding that has been requested. Alternatively, could you perhaps clarify what funding is available from the Decentralized Community Node to fund such activities, so that @bneiluj has the opportunity to shape his proposal to fit within this?
@chrishobcroft your accusatory tone in this email is not only disrespectful to me, its also completely unfounded. Uknown to you - because you did not ask and instead assumed, Julien and I have had a call in depth with our CTO and are back and forth weekly on discord, a platform where he has preferred to ask me questions as he iterates the proposal, to ensure that the scope of the work and output can be fully funded and completed by the grant. The ball is in DTok's court, and your note isn't helpful for either of us. If you should like to participate in the future, be mindful that you may not be aware of everything going on - maybe you can ask, "hey, I'm really excited about this - what's the update here?" This is meant to be as transparent as possible, but sometimes, grant applicants prefer to ask questions offline, so don't make assumptions to a conclusion. There is a ton of work going on by me on this program, I am really excited to fund this to completion, and I do not appreciate your condescending tone.
@RaffiSapire I apologise if I sounded accusatory or condescending, that was not my intention.
My intention was to show my support for this proposal, and to highlight some of the positives I see in it, which do not seem to have come to light thus far (at least not publicly). This is all positively motivated to assist @bneiluj and the dTok team in their efforts to obtain funding for building the next phase of this system.
I also proposed some ways to help openly and transparently share feedback or advice in this forum, so that everyone can be aware of everything that is going on, so that we can all learn how this process works. Again, this was positively motivated.
As for communications happening on Discord, I cannot find anything in the public chat channels, except for @bneiluj promoting and raising awareness of dTok. Have these conversations been happening privately? If so, perhaps they can be made public to the community, so that we can increase openness and transparency in the ecosystem?
We are all passionate about Livepeer and all working very hard for its success. We apologise if any offence was caused by our proposal description or communication. Thanks @RaffiSapire and @chrishobcroft for supporting us.
Here is our new simpler proposal:
We propose a payment schedule to align with the ends of each phase.
We have already started the documentation and it can be founded there: https://stake-capital.gitbook.io/stake-capital/dapps/dtok and there https://github.com/stake-capital/dTok-dai-card
In addition, we request a Success reward of 5,000 LPT delegation upon completion of Phase 1 and a further 5,000 LPT delegation upon completion of Phase 2 to support our dTok Transcoder described here: https://forum.livepeer.org/t/transcoder-campaign-stake-capital-0xa6a9/678.
KPIs of past and future uses cases:
We look forward to hearing from you Livepeer Community
OK! I think the intial proposal, that lays out the 3 phases, is great, but it will cost you more than 3000 LPT, and so I was hoping you would reduce it in scope so that we can be sure you can complete the work. For instance, What would this look like:
Phase 1: Stable Version - 1000 LPT — This phase consists of taking the messy, post-hackathon codebase to a stable and reliable dApp. This version of dTok will enable payment for viewing Livepeer transcoded-streams via a simple, non-custodial, browser-based wallet UI . Multiple streams will be supported via an Ethereum smart contract. This phase is outlined in the diagram above. I believe this piece is done - maybe you can submit the issues where this is complete, or the link to the repo?
Phase 2: Light Broadcaster - 2000 LPT — Following phase 1 (as outlined in the diagram above), while the viewer experience is seamless, broadcasters must run the Livepeer CLI, record via OBS Studio, directly interact with the Stream smart contract, and manually accept viewer payments. This phases consists of building out an accessible light broadcaster user-flow, whereby broadcasters can easily broadcast streams, from, for example, a mobile phone. There will be an intuitive dashboard experience, with a dTok backend that handles interactions with the Livepeer CLI and broadcasting the video stream via a CDN, meaning that the light broadcasting client will only need to interact with Ethereum (via a similar in-browser wallet). The vision of this phase is that any user who follows documentation and is able to use command line will be able to quickly bootstrap a stream onto dTok with virtually no setup required. Timing is August 25, which will be tested during ethberlin.
Let me know what you think.
Thank you very much for your help @RaffiSapire. It's very useful.
Let’s recap the current state of this proposal and the changes. Current consensus regarding our initial proposal:
Given these two conclusions, we propose the following:
These two new phases will go as follows:
New Phase I) Research, Design + 2 Uses-Cases (completed) - 1000 LPT:
This phase consists of taking the messy, post-hackathon codebase to a stable and reliable dApp. This version of dTok enables payment and tipping for viewing Livepeer transcoded-streams via a simple, non-custodial, browser-based wallet UI. Additionally, this phase includes two initial use cases (live electronic music at ETHCapeTown and a private Champions League final stream).
New Phase II) Build Live Multi-Streams Functionality Pay-Per-View and Tipping + Additional Live Use-Case (in-progress) - 2000 LPT:
Multiple streams will be supported via an Ethereum smart contract. This phase is outlined in the diagram above. This phase includes comprehensive testing, iteration, and documentation on the multi-streams UX for both viewers and broadcasters. Upon completion of this phase (end of August objective), the full multi-streams functionality will be on exhibition as dTok is used to stream Berlin Blockchain Week with two operators.
Please note that Phases 2 and 3 from the original proposal will be developed via additional separate proposals in order to keep the functionality funding focused and discrete.
Please let us know your thoughts
Thanks for the updated proposal.
We see that you have done a lot of great work since on dTok since EthCapetown, and we are happy to grant you the 1000 LPT for new phase 1. We would also like to establish that, going forward, we will be evaluating the grants based on demonstrable value-created, instead of features built or engineering work done on the app. We hope this will create more alignment and accountability in the ecosystem, so that applications built on Livepeer are delivering real value to users.
We think dTok has the potential to be the preeminent application used for streaming all blockchain-related events, from conferences to meetups. To make this a reality, we would like to suggest for you to focus on making dTok a production-ready application from its current prototype stage. We think the following features can help make dTok production-ready:
A media server like Wowza can help you achieve this, and the Livepeer team is currently working on a Wowza Livepeer plugin that makes it easy for you to operate a Wowza node and use Livepeer with it. Wowza also has the nice feature of allowing you to take in WebRTC video ingest, which will enable users to broadcaster directly from within the browser instead of relying on OBS.
We think Berlin Blockchain Week is an excellent opportunity for people to try out dTok on a more scaled level, and we think making dTok production-ready will ensure its success. We would love to help you accomplish that.
Happy to chat more about this :)