v0.5.5
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)
- The
- 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)
Verifying Release
md5 hashes for release binaries:
livepeer
(Linux): 7ee126424d559925e0864433abe34caelivepeer_cli
(Linux): b108edb62364380e72cbd8e43cdd134blivepeer
(Darwin): fec6e8b1aaaf07588e10a27063000fcdlivepeer_cli
(Darwin): 118520601994acce9628bca8df50edf0livepeer.exe
(Windows): be1cc61e6ee44086874168f64ecd9974livepeer_cli.exe
(Windows): 294b75cd2fb486d8b548b5284702ced5
Generate the md5 hash:
md5sum livepeer
md5sum livepeer_cli
sha256 hashes for release binaries:
livepeer
(Linux): ef593400e3eecd449a323a0a498b4254fea32171c36b05a79e15f13e9b97f47flivepeer_cli
(Linux): cbc64cb0e5192ae3f48f483570982ebff37a83802042d5ac62daaec7a58f2f51livepeer
(Darwin): 341cf6d4c84c45dfe82b519b846ab67eba245637a3e4ee74d52d27fe19afe66dlivepeer_cli
(Darwin): f5d620342ac6da674bae6f04b5965773ccafbb178cb8cc2b010a8966d6c72aeflivepeer.exe
(Windows): 351ad49cde877a75418d1d4e4f71e45adff826969861ce3046cffdcdd609ec64livepeer_cli.exe
(Windows): 61f4e0caf3190cc6bf74ae5a4fc829a650091fc262edf3141323c82e8165ee3c
Generate the sha256 hash:
shasum -a 256 livepeer
shasum -a 256 livepeer_cli