Skip to content

v0.5.5

Compare
Choose a tag to compare
@yondonfu yondonfu released this 13 Mar 01:25
· 1607 commits to master since this release
ce819a1

Summary

This release includes a number of improvements that improve transcoding reliability including the elimination of payment related errors triggered by dynamic price and/or ticket parameter adjustments mid-stream and a more efficient GPU transcoding work assignment algorithm that decreases transcoding time for multi-profile jobs.

Thanks to everyone that submitted bug reports and assisted in testing!

Features

General

  • Introduced expiring payment parameters to the payment protocol (#1383)
    • This allows an orchestrator to continue accepting payments for work even as it dynamically adjusts its price and/or ticket parameters in response to changing gas prices on the ETH blockchain
    • This removes the notion of acceptable vs. unacceptable payment errors (which was a source of confusion)
  • Added orchestrator prices to the CLI (#1394)
  • Added transaction parameters when logging submitted/failed transactions (#1250)
  • Added a /getLogLevel endpoint that can be used to set/get the current log level (affects the logs displayed to the user) used by the node (#1356)
    • See the docs for usage information.
  • Updated metrics logging (enabled if the -monitor flag is used) to only be displayed when the value of the -v flag is >= 6 (#1357)
  • Updated segment related log messages to consistently include the manifestID (#1363)

Broadcaster

  • Updated the latency score calculation in selection to be based on round trip time instead of transcode time (#1404)
    • This change should allow the broadcaster to select orchestrators based not only on how fast they transcode, but also how fast they download and upload segments
  • Updated the discovery process to shuffle the list of orchestrators prior to sending out requests to randomize the request order when using a fixed list of orchestrators (#1400)
  • Added segment upload and download time to logs (#1339)
  • Added the duration of broadcast session refreshes (executed when the broadcaster needs to find more orchestrators to send segments to) to logs (#1402)
  • Added the duration of auth webhook requests to metrics reporting (#1402)
  • Added the user agent, remote URL and body length to logs when using HTTP push (#1406 #1411)

Orchestrator

  • Added transcode job serialization when using a GPU which improves transcode time by anywhere between 20-60% depending on the hardware and configuration used (#1364)
  • Added a cap on the number of transcoding attempts for a segment which allows a broadcaster to skip a segment if the time window for he segment to be transcoded has already passed (#1392)
    • The -maxAttempts flag can be used to set the maximum number of transcoding attempts (the default value is 3)
  • Updated ticket processing to exit early if the rest of the tickets in a multi-ticket payment would be invalid (#1413)

Bug Fixes

Broadcaster

  • Fixed a bug where orchestrator signatures over segment data were not being verified when a broadcaster uses an external object store (#1393)
  • Fixed a bug where an RTMP stream object was not being closed properly at the end of a stream (#1351)
  • Fixed a bug in the transcoding verification policy (experimental) to ensure that results with incorrect audio are not inserted into a playlist (#1384)

Orchestrator

  • Fixed a bug related to a statically linked GMP library that was causing crashes during GPU transcoding on certain processor types (#1391)

Full list of changes

Verifying Release

md5 hashes for release binaries:

  • livepeer (Linux): 7ee126424d559925e0864433abe34cae
  • livepeer_cli (Linux): b108edb62364380e72cbd8e43cdd134b
  • livepeer (Darwin): fec6e8b1aaaf07588e10a27063000fcd
  • livepeer_cli (Darwin): 118520601994acce9628bca8df50edf0
  • livepeer.exe (Windows): be1cc61e6ee44086874168f64ecd9974
  • livepeer_cli.exe (Windows): 294b75cd2fb486d8b548b5284702ced5

Generate the md5 hash:

md5sum livepeer
md5sum livepeer_cli

sha256 hashes for release binaries:

  • livepeer (Linux): ef593400e3eecd449a323a0a498b4254fea32171c36b05a79e15f13e9b97f47f
  • livepeer_cli (Linux): cbc64cb0e5192ae3f48f483570982ebff37a83802042d5ac62daaec7a58f2f51
  • livepeer (Darwin): 341cf6d4c84c45dfe82b519b846ab67eba245637a3e4ee74d52d27fe19afe66d
  • livepeer_cli (Darwin): f5d620342ac6da674bae6f04b5965773ccafbb178cb8cc2b010a8966d6c72aef
  • livepeer.exe (Windows): 351ad49cde877a75418d1d4e4f71e45adff826969861ce3046cffdcdd609ec64
  • livepeer_cli.exe (Windows): 61f4e0caf3190cc6bf74ae5a4fc829a650091fc262edf3141323c82e8165ee3c

Generate the sha256 hash:

shasum -a 256 livepeer
shasum -a 256 livepeer_cli