Summary
This release includes a critical fix for a bug that could cause orchestrators to advertise prices different from the prices that they expect payments to be based upon. All orchestrators should upgrade to this version as soon as possible to ensure that they can transcode streams reliably and be paid correctly.
This release also includes a breaking change that will require all node operators to start their nodes with a -ethUrl
flag and the JSON-RPC URL of an Ethereum node. Please refer to the "Breaking Changes" section for more details and instructions for upgrading to this version smoothly.
Other notable updates in this release include a big boost in GPU transcoding performance, improved filtering of faulty orchestrators during discovery for broadcasters and support for transcoding MP4 inputs/outputs.
Thanks to everyone that submitted bug reports and assisted in testing!
Breaking Changes 🚨🚨
- As of this release, a node started without the
-ethUrl
flag will no longer use a default Infura endpoint when connecting to Rinkeby (using the-network rinkeby
flag) or mainnet (using the-network mainnet
flag). When the node connects to Rinkeby or mainnet, the-ethUrl
and the JSON-RPC URL of an Ethereum will be required. Refer to this guide for instructions on connecting to an Ethereum node.- The reasons for this breaking change are:
- At the moment, there are no restrictions on usage for the default Livepeer Inc. sponsored Infura endpoints and as the number of requests increase the higher the subscription costs for maintaining these endpoints. Furthermore, there are request caps for each pricing tier, so high usage from any individual node operator can reduce the number of requests available to other node operators at a given tier. See this blog post and pricing guide for more details on how Infura pricing works
- While there is a free tier for Infura, the cap for the number of requests for these endpoints is not very high so the per day request cap will be hit pretty quickly if all node operators are sharing the same endpoints. At this point, node operators would need to find alternate methods of connecting to an Ethereum node
- There will be a one week grace period before the default Infura endpoints in the node will stop working so all node operators should upgrade to this version during this time and connect to an Ethereum node using the guide mentioned above
- The reasons for this breaking change are:
Features
General
- Removed the default Infura endpoints for the
-ethUrl
flag (#1448)
Broadcaster
- Added a per-stream orchestrator suspension list that is used during discovery to filter out orchestrators that have returned errors which should improve the broadcaster's ability to find reliable orchestrators (#1435)
- Added support for transcoding MP4 inputs/outputs when using HTTP ingest (#1429)
- Check out the docs for more details on how to transcode MP4 inputs/outputs
- Added support for enabling and disabling HTTP ingest (#1446)
- Check out the docs for more details on how to enable and disable HTTP ingest
- Added additional logging when an error is encountered while submitting a segment to an orchestrator (i.e. if the broadcaster is missing a deposit or reserve) (#1430)
Orchestrator
- Enabled filtergraph persistence in between segments during GPU transcoding. This update results in roughly a 30% performance gain when using a GPU to transcode a 1080p input into 720p, 576p, 480p and 360p outputs (#1444)
- With this update, the transcode job serialization introduced in v0.5.5 is no longer needed (as it was a temporary solution for sub-optimal GPU transcoding performance) so that code has been removed
Bug Fixes
General
- Fixed an
invalid ticket creation round
error caused by a broadcaster and orchestrator having different views of the latest Ethereum block. This issue is resolved by having broadcasters set the ticket creation based on the expected ticket creation round advertised by orchestrators (#1428) - Fixed a bug that caused
livepeer_cli
to crash when connecting to a node running in off-chain mode due to incorrect parsing of the chain ID used by the node (#1455)
Orchestrator
- Fixed an overflow bug that could cause an orchestrator to advertise a price different from the price that it expects payments to be based on (#1450)
- This resolves the
invalid ticket recipientRand
error that many orchestrators have been observing in their logs when transcoding streams
- This resolves the
- Fixed a potential race condition bug that could have caused an orchestrator to advertise a price different from the prices that it expects payments to be based on (#1453)
- Fixed a nil pointer error triggered when an orchestrator receives a segment/payment from a broadcaster before an in-memory cache used for validation is populated with the latest Ethereum block (#1425)
Verifying Release
md5 hashes for release binaries:
livepeer
(Linux): ee078a01c762643ba9ab593a36166d44livepeer_cli
(Linux): 21f0296f689d3e5af5d986fcf4727b89livepeer
(Darwin): e44af1510588766031d938a51fd9a697livepeer_cli
(Darwin): 6bf5975781ccba3135877fdf4de30935livepeer.exe
(Windows): c316f91cc0cfc2d7f3b80c15f834e853livepeer_cli.exe
(Windows): d95bd8dddd328abdf4fc84e1696459d2
Generate the md5 hash:
md5sum livepeer
md5sum livepeer_cli
sha256 hashes for release binaries:
livepeer
(Linux): 19db1c45ef4e1a6dbdf2cbb88b95faae456d96e838c0eb59425d084d26252eb7livepeer_cli
(Linux): c6fb76cd2d82cdb2241b1a7786f59edf810d4dcc07d1087f09963f4e91c2f80clivepeer
(Darwin): 3b3c1b8e24b4667086e7958084579e0de8084a09268d5080f1f99e0be6eb2c8blivepeer_cli
(Darwin): 25295d815736f1aecd385b7778e0e47432fcf4d707df2394eb087f368934d8bflivepeer.exe
(Windows): f6754a292f9a0165f2d1bdb189518f21e5f009d90518e225340d534d04722c3blivepeer_cli.exe
(Windows): e300fa37d981393e0bb2d1451381a21df745d6217f741a43e2b00b6c43950015
Generate the sha256 hash:
shasum -a 256 livepeer
shasum -a 256 livepeer_cli