Weekly Development Update - August 21st 2019

Hey Livepeer community, here are this week’s updates from the development team - and it’s a big one with a lot of progress towards streamflow!

Last week’s progress:

  • Refactored existing on-chain event watching code to use the new blockwatch package - we’re now handling re-orgs properly
  • Completed most of the work to add a round watcher that caches round information whenever a new round is initialized which will be used to avoid sending additional RPC requests during PM ticket creation/validation
  • Kicked off prototyping and design exploration for the staking contract update to expand the orchestrator set
  • Completed most of the work required to support pixel accounting within the transcoder library that we use (LPMS). The transcoder now returns a count of the pixels encoded and the pixels decoded after each transcode. Streamflow protocol engineering will be able to make use of this data to finalize the payment accounting implementation.
  • Big milestone in our effort to integrate outside GPUs into our internal test harness - our GPU provider is behind a VPN that is proving difficult to work with. We were able to get a setup working from outside the VPN to within our test network. Just need to automate the process now.
  • More exploring boundaries with reliability testing: we’ve been gaining confidence in the node itself by stress testing things under small-scale and controlled environments (one-O, two-O, three-O). We have roughly 99.99-100% transcoding success rate for networks that are configured appropriately, and have a better idea of what the behavior is like for networks that are not configured appropriately.
  • Groundwork for the dual encoding + mining project. Most of the time was spent around getting the necessary software compiled / installed and playing nicely with the hardware. Things are currently close to the point where we can test and start seeing benchmark results.
  • Ongoing progress and testing toward the LivepeerWowza 0.1.0 release
  • Documentation and prep of the above
  • First user testing of 3Box integration; working through a few bugs in cooperation with the 3Box team (see screenshots)

This week’s priorities:

  • Complete the on-chain event watching project. We have a few refactor PRs to review/merge and will be opening PRs for monitoring a broadcaster’s PM deposit/reserve
  • Integrate the new pixel counting features in the transcoder library (LPMS) with go-livepeer so that an orchestrator will be able to report the number of pixels transcoded when it is transcoding by itself and when it is receiving results from a remote transcoder
  • Continue last week’s prototyping and design work for the staking contract update to expand the orchestrator set
  • Complete the project for external GPU integration into our test harness. This is in the home stretch now.
  • Start planning the next phase of scalability testing. Our ultimate goal is to be able to demonstrate transcoding on 1000 concurrent streams at 99.99 % reliability, but there are a number of intermediate steps we need to take before we get there. Those steps need to be defined and tracked.
  • Continue earlier work on resolving the bottleneck we have in GPU transcoding. Setting up and tearing down GPU transcoding sessions is rather expensive, and this is showing as a major scalability bottleneck when additional GPU cards are in the picture. Fixing this requires a large refactor of the transcoder to persist transcode sessions. Doubtful the work will be finished this week, but hopefully will be ready for formal review and further testing by the end of the week.
  • Evaluate the efficiency of transcoding against ethash and various other GPU mining algorithms. This will allow us to get an initial understanding of the performance impact of concurrent mining + transcoding.
  • Aiming to release LivepeerWowza 0.1.0
  • External transcoder integration with 3Box
  • Polish and merging in of the Livepeer Demo Player user experience

Some screenshots of the 3Box integration (allows you to link your transcoder/staking account to a profile - follow it’s progress in the research-3box channel on discord):

As always, please let us know if you have feedback about the content and/or format of the update - we would love to hear from you. You can comment here or find us on Discord, thank you!