Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dTok - A decentralized TikTok that allows tipping and pay-as-per-view. #16

Open
bneiluj opened this issue May 24, 2019 · 14 comments
Open

Comments

@bneiluj
Copy link
Contributor

bneiluj commented May 24, 2019

Give a 3 sentence description about this proposal.

dtok-logo

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

dtok-mockup

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.

dTok_Complete_Phase_1

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.

0_USJT6XnHn_nl4d4_

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.

@RaffiSapire
Copy link
Contributor

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?

@bneiluj bneiluj closed this as completed Jun 7, 2019
@bneiluj
Copy link
Contributor Author

bneiluj commented Jun 7, 2019

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.

  1. Connext — By leveraging the Connext Network to handle dTok micro-payments and tips, we not only significantly reduce transaction fees and increase the speed of transactions, but we also gain access to traction from the burgeoning Connext community. Our close relationship with the Connext team enables rapid development and collaboration as we develop dTok using both the Connext network and their Dai Card implementation. (Also see: https://twitter.com/ConnextNetwork/status/1134961941238050816 and https://twitter.com/ConnextNetwork/status/1135603961044582400).

Screenshot 2019-06-07 at 12 28 04

  1. Burner Wallet — Prior to developing an updated version of dTok on Connext’s Dai Card (https://github.com/stake-capital/dTok-dai-card), we developed a Burner Wallet-based version of dTok (https://github.com/stake-capital/dTok-burner-wallet), which won the ETHCapeTown hackathon. As the second Burner Wallet module ever built (https://medium.com/stakecapital/ethcapetown-hackathon-winners-168520fdefec), we’ve gained significant exposure to the Burner Wallet community. We intend to continue development of the Burner Wallet version of dTok—as the Burner Wallet codebase because increasingly modular.

Screenshot 2019-06-05 at 20 43 56

(with Vitalik watching dTok live performance ☝️. He voted for dTok at ethCapeTown 🙌)

  1. Prizes — Winning every prize available at ETHCapeTown provided significant exposure across the Ethereum community (link again: https://medium.com/stakecapital/ethcapetown-hackathon-winners-168520fdefec). We received rewards from ETHGlobal (https://medium.com/ethcapetown/ethcapetown-roundup-the-buidl-spirit-3cb1d77eb2eb), Raiden (https://medium.com/raiden-network/raiden-pulse-5-news-from-march-and-april-56e781aea7c), ENS (https://medium.com/the-ethereum-name-service/trickle-dtok-and-more-meet-the-ens-winners-at-ethcapetown-ebf160bd9e78), MakerDAO, and NuCypher (also see VentureBurn: https://ventureburn.com/2019/05/ethcapetown-blockchain-winning-applications/). We are actively applying for a number of grants from Raiden and others which will provide additional traction.

Screenshot 2019-06-05 at 21 03 14

  1. Ricardo — Ricardo of TribalNeed was the first performer to ever use dTok—broadcasting his live music performance on dTok during the ETHCapeTown hackathon. We are now working closely with him to enable him to stream his live performance across the world via dTok (See: https://twitter.com/bneiluj/status/1119937357044699136 and https://medium.com/stakecapital/ethcapetown-hackathon-winners-168520fdefec). His next performace, in Berlin in July, will be streamed via dTok’s pay-as-you-go platform.

Screenshot 2019-06-05 at 21 06 51

  1. Champion League Final — We ran an initial proof-of-concept of the alpha Dai Card-based version of the dTok system by streaming the Champions League Final on June 1. We provided pre-funded links enabling people to easily on-board by simply clicking a link to begin watching the stream—no existing wallet, plugin, or prior knowledge of crypto required. We received a very positive response from the community and will be streaming more sporting events going forward. (See: https://twitter.com/StakeCapital/status/1134916344628023296)

Screenshot 2019-06-07 at 12 30 59

  1. Joel livestream — We are working alongside Joel Kruger (https://twitter.com/JoelKruger, 28k followers) to move his daily crypto-focused show onto dTok. He will deliver a more engaging experience for his viewers via the dTok platform—enabling him to easily monetize his show as well as experiment with other crypto-based viewer interactions (e.g. interacting with L2 dApps such as voting or polling during a show).

Screenshot 2019-06-07 at 14 08 40

  1. ETHBerlinZwei, we are working alongside with Matteo to provide Livestream coverage of EthBerlinZwei this August and other coming Ethereum’s events. He was the livestream operator and manager of DappCon 2018, EthMagicians, Status and Devcon4. We have been looking into building different features such as landing page with multi-cams: one for stage, or connect EthBerlin2’s main website with livestream links for each stage. That depends on the availability of volunteers and which Organization’s will to partner for this B) cover only one Stage and put up a live poll/question for presenters C) Partner with the Music/Chillout room (last Devcon4 was brilliantly set-up) and livestream from there. These possibilities depend on whether or not EB2 has already a livestream partner (last Devcon4 was SlidesLive), but in any case, Matteo plans to be there volunteering FT and is happy to help out with dTok.

Screenshot 2019-06-07 at 14 08 22

Our plan is to continue leveraging these partnerships and use cases to increase community traction around dTok, thereby driving significant early adoption to dTok.

@bneiluj bneiluj reopened this Jun 7, 2019
@RaffiSapire
Copy link
Contributor

RaffiSapire commented Jun 17, 2019

This all looks good, I have a few questions that are easier by phone, so just sent you an email to schedule a time.
Some ideas for an additional phase which is usage based milestones to discuss as well via call:

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?
@bneiluj

@RaffiSapire
Copy link
Contributor

Hey there- what is the latest? I'd like to keep the grant to sub 3000 LPT, so let me know if all this is doable, or if there is a smaller scope youd like to hone in on for this first grant. @bneiluj

@bneiluj
Copy link
Contributor Author

bneiluj commented Jul 19, 2019

Hi @RaffiSapire, we should refine it to a smaller scope.

@bneiluj bneiluj closed this as completed Jul 25, 2019
@bneiluj bneiluj reopened this Jul 25, 2019
@chrishobcroft
Copy link

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?

@RaffiSapire
Copy link
Contributor

@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.

@chrishobcroft
Copy link

chrishobcroft commented Jul 25, 2019

@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?

@bneiluj
Copy link
Contributor Author

bneiluj commented Jul 26, 2019

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.

  • 1500 LPT for Phase 1 - Research, Design + 3 Uses Cases (8 weeks)
    Status: DONE
  • 1500 LPT DAI for Phase 2 - Build Live Multi-Stream for Berlin Blockchain Week with @Matteo as operator (End of August)
    Status: ON-GOING

dTok Gitbook

  1. We will create documented and tested process for how a broadcaster can monetise their stream using dTok.
  2. Viewer user interface for paying to watch, including process to create / close payment channel.
  3. Instructions for how to set up end-to-end dTok pay-as-you-go livestreaming platform including Livepeer, Connext, Burner Wallet etc.
  4. Instructions for setting up local development environment to allow anyone to extend dTok.

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 🙌

@RaffiSapire
Copy link
Contributor

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.

@RaffiSapire
Copy link
Contributor

Super, so if you can maybe share updates every week or so on progress towards phase two, and keep us posted, that would be great.

@bneiluj
Copy link
Contributor Author

bneiluj commented Jul 29, 2019

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:

  1. The scope and length is overly broad, breaking the work into multiple smaller proposals will result in objectives that can be more easily tracked and assessed.
  2. The initially requested amount of resources (amount of LPT requested) is a significant underestimation.

Given these two conclusions, we propose the following:

  1. Focusing this proposal entirely on the Phase I functionality from the original proposal.
  2. Breaking down the content of this re-focused proposal (original Phase I material) into two smaller phases.

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).

Deliverables:

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.

Deliverables:

  • A broadcaster will be able to initiate a stream Pay-Per-View or Tipping by submitting their stream URL to the dTok multi-streams smart contract.
  • Multiple broadcasters will be able to stream content (on one deployment of the dTok dApp) at the same time.
  • A viewer will be able to switch between the different streams that are running concurrently.
  • A multi-day event (see above) will be streamed via dTok at the end of August using tipping functionality.
    -Extensive and detailed documentation will be available for both viewers and broadcaster to understand and correctly operate both sides of the dTok workflow.
  • A suite of both back-end (for the multi-streams smart contract) and front-end (for the dTok dApp UI) tests.
  • Technical architecture designed to enable third party dTok-streaming based application extensions (e.g. enabling prediction markets or live chat functionality on top of the underlying dTok Streaming platform).
  • Upgrade payment channel architecture to facilitate third party application extension smart contract calls.

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 🙌

@ericxtang
Copy link

Hi Julien,

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:

  1. Allow anyone to easily start a broadcast using OBS (for example, applications like Twitch allows the broadcaster to create an ingest RTMP URL)
  2. Allow scaled viewing of the broadcast streams by sending them through a CDN (so hundreds or thousands of people can view the stream)

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 :)

@RaffiSapire
Copy link
Contributor

This grant is not granted yet since you're still iterating and haven't gotten a final go ahead since adjusting the scope, and I'm just checking in Julien on whether you have an update to us based on Eric's feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants