Skip to content

Releases: livepeer/go-livepeer

v0.5.5

13 Mar 01:25
ce819a1
Compare
Choose a tag to compare

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

v0.5.4

05 Feb 23:39
eadd64c
Compare
Choose a tag to compare

Summary

This is the second mainnet compatible release after the Streamflow protocol upgrade. In addition to some small bug fixes and enhancements, this release also includes a few notable new features including broadcaster support for multipart/mixed return when using HTTP ingest and message signing in the CLI wizard which enables 3Box profile linking in the explorer. There is also a Windows build! Thanks to everyone that submitted bug reports and assisted in testing!

The features and bug fixes sections below are now divided into sub-sections with information specific to broadcasters, orchestrators or all users.

Features

General

  • Added support for message signing in the CLI wizard using a /signMessage endpoint on the node's webserver (#1063)
  • Updated the CLI wizard to consistently display units (i.e. LPT/ETH) for token values (#1305)
  • Reduced logging level and language of block watcher logs for recoverable errors (#1320)
  • Re-enabled Windows builds that can also be used with GPUs (#1227)
  • Add support for passing in the HIGHEST_CHAIN_TAG environment variable when building a local Docker image (using make localdocker) in order to build the image with support for a particular network i.e. Rinkeby, mainnet (#1340)

Broadcaster

  • Added support for returning transcoded segments in a multipart/mixed response when using HTTP ingest (#1280)
    • Check out the docs for information on how to use this feature
  • Alert the user that a broadcaster's stream will not be transcoded due to the broadcaster being close to its withdraw round (when the user will be able to withdraw funds) by closing the RTMP stream (#1318 #1212)
  • Added a log statement with payment information when payments are created (#1331)
    • The log statement is only visible when the value of the -v flag is >= 5
  • Added a log statement with error information when an orchestrator found during discovery is excluded from selection (#1335)
    • The log statement is only visible when the value of the -v flag is >= 5

Orchestrator

  • Added an active status check when the orchestrator receives a payment to make sure that the orchestrator only accepts payments when it is active since only active orchestrators can redeem payments on-chain (#1291)
  • Enabled 3Box profile linking via message signing in the CLI wizard (#1063)
    • See this forum post for more information on how to link a 3Box profile to your account

Bug Fixes

Broadcaster

  • Fixed a bug where temporary files created for pixel count verification of transcoded segments were not being closed causing the node to eventually crash with a "too many open files" error (#1312)
  • Changed the orchestrator discovery timeout to 3 seconds from 1 hour which was too long (#1319)
  • Fixed a bug where the broadcaster would crash with a nil pointer error during selection when the broadcaster starts up for the first time in on-chain mode and specifies an orchestrator using the -orchAddr flag (#1330)
  • Fixed a bug where the broadcaster would crash with an index out of range error during selection when an orchestrator that is missing stake (could be specified via -orchAddr) is removed (#1330)

Full list of changes

Verifying Release

md5 hashes for release binaries:

  • livepeer (Linux): 51a75d6e06b4dd57278d9a601f97443e
  • livepeer_cli (Linux): 108a6873ff81b24af67fc76e1064dd36
  • livepeer (Darwin): 1ab18bf441b9c1ba7bc220bfd8611628
  • livepeer_cli (Darwin): 11dc802d81e6e4a7c6478592c0e8a528
  • livepeer.exe (Windows): 31f6156648afd318436b749668d44cfb
  • livepeer_cli.exe (Windows): 54b0a17764e993918f4a5f1d2d56ac5b

Generate the md5 hash:

md5sum livepeer
md5sum livepeer_cli

sha256 hashes for release binaries:

  • livepeer (Linux): a669d75ad1bfb1a992eaac40a1b4f519c592b178feedfc1f48f057d03e152937
  • livepeer_cli (Linux): d8aaa47a2a7855d2c273de2ee0b7fc3793382863e1b638ee5681249b60281253
  • livepeer (Darwin): 75353fb31479dd56f58d89166e2e4381f7909e439c09a495c0129975b56a2dab
  • livepeer_cli (Darwin): 480fdacdfa77edf0a67783c57786eb3bdcbff166c79feaab975272dfc9e635cf
  • livepeer.exe (Windows): 82aa9ffd2d07654f9f397086a0d8a352e0da0f593341deb269c048f9635fd837
  • livepeer_cli.exe (Windows): c047a3c2a0e9ac78be246916ba672874ab210ed8f70d55bea4a13d0411649902

Generate the sha256 hash:

shasum -a 256 livepeer
shasum -a 256 livepeer_cli

v0.5.3

13 Jan 23:57
Compare
Choose a tag to compare

Summary

This is the first mainnet compatible release that supports the Streamflow protocol upgrade.

Existing transcoders (now called orchestrators post-Streamflow upgrade) should check out the upgrade guide for instructions on re-joining the active set.

For more information on the Streamflow protocol upgrade, check out the following resources:

Features

  • Changed the default DB file name from lp.sqlite3 to lpdb.sqlite (#1299)
    • As a result of this update, if you are upgrading from a previous go-livepeer release you do not need to delete your existing DB file prior to upgrading

Full list of changes

Verifying Release

md5 hashes for release binaries:

  • livepeer (Linux): bf4ee3a984023dad2b75b4902b90e3be
  • livepeer_cli (Linux): d3b3549d91bf0591d25d8a83f568d242
  • livepeer (Darwin): f210f44b252e46d6bd623ea0a2784bff
  • livepeer_cli (Darwin): 261519967fc89bbcfe7cbc05095a5111

Generate the md5 hash on Linux:

md5sum livepeer
md5sum livepeer_cli

Generate the md5 hash on OSX:

md5 livepeer
md5 livepeer_cli

sha256 hashes for release binaries:

  • livepeer (Linux): a843648c0153cd7b03b68363e43214d8eee9c2f7f7e320f88bb198cb38e62ce5
  • livepeer_cli (Linux): 0beecc3ed126fca8f877886a6aaf7eab3ea35c382a0ee641a418857034aa2bd7
  • livepeer (Darwin): b03111b64e56e7027b3bec388d1ffe2a79142414080d15cab7c57125a669119f
  • livepeer_cli (Darwin): 6e67a0e6ff04e7aa3e3fd256579ee22aa0ec4df3e305bc83101e1e2c99c7f40a

Generate the sha256 hash on Linux and OSX:

sha256 livepeer
sha256 livepeer_cli

v0.5.2

11 Jan 01:04
Compare
Choose a tag to compare
v0.5.2 Pre-release
Pre-release

Summary

This is the last Rinkeby only go-livepeer release before the Streamflow upgrade on mainnet. The next release will be mainnet compatible.

Existing transcoders should check out the upgrade guide to make sure that they are prepared to run mainnet compatible nodes.

Breaking Changes

If you are upgrading from a previous release, you will need to delete your DB file prior to upgrading. The DB file can be found at <DATA_DIR>/<NETWORK_NAME>/lp.sqlite3. By default the DB file is located at ~/.lpData/rinkeby/lp.sqlite3.

  • The stake column has been added to the orchestrators table in the DB (#1216)

Features

  • Added support for caching the stake of active orchestrators when running as a broadcaster (#1216)
  • Added error logging when a user requests LPT from the Rinkeby faucet more than once in an hour (#1251)
  • Updated the /setOrchestratorConfig endpoint to not update the on-chain reward cut and fee share if the values would be unchanged (#1230)
  • Updated transaction signing to use EIP-155 by default (#1266)
  • Updated the CLI wizard to always print the list of preset video profiles in the same order (#1267)
  • Added support for passing in the password for an ETH account via text file (#1268)
  • Added support for passing in an orchestrator's shared secret (used by transcoders for authentication) via text file (#1275)
  • Enable custom video profiles for broadcasters (#1242)
  • Updated the CLI wizard to properly format LPT/ETH balances (#1285)
  • Added support for stake/latency based orchestrator selection for broadcasters (#1241)
  • Added support for experimental transcoding verification for broadcasters (#1096)
    • If you're interesting in trying out this experimental feature, check out the docs
  • Added support for load balanced transcoding across multiple GPUs enabled by session based transcoding in LPMS (#1124)

Bug Fixes

  • Fixed a bug where the Docker image was not built with the correct Rinkeby compatibility build tag (#1248)
  • Fixed a bug where Linux binary was not built with the correct Rinkeby compatibility build tag (#1260)
  • Fixed a bug where floating point conversion from ETH to wei would lead to rounding errors in the values included in transactions (#1243)
  • Fixed a bug where the node would crash due to a concurrent map write (#1288)

Full list of changes

v0.5.1

03 Dec 16:40
Compare
Choose a tag to compare
v0.5.1 Pre-release
Pre-release

Summary

Breaking Changes

If you are upgrading from a release < 0.5.1, you will need to delete your DB file prior to upgrading. The DB file can be found at <DATA_DIR>/<NETWORK_NAME>/lp.sqlite3. By default the DB file is located at ~/.lpData/rinkeby/lp.sqlite3.

  • The following activationRound and deactivationRound columns have been added to the orchestrators table in the DB. (#1171)

Features

  • Added support for active orchestrator set tracking by watching for events emitted by the BondingManager contract (#1157 #1180 #1173 #1171 #1182)
  • Added support for monitoring on-chain service URI updates by watching for events emitted by the ServiceRegistry contract (#1181)
  • Added support for broadcaster encoding fee estimation. The broadcaster will now estimate the encoding fee for a segment and use the estimate to determine the number of tickets to send as payment. (#1199)
  • Included actual values when logging max faceValue and max EV related errors (#1201)

Bug Fixes

  • Fixed a bug where the price per pixel in the CLI wizard was displayed as X pixels / Y wei instead of X wei / Y pixels. (#1169)
  • Fixed two flaky unit tests in the pm and eth packages that caused CI to fail sometimes. (#1189)
  • Compare the max faceValue for a broadcaster against the faceValue of a single ticket instead of the sum of the faceValues of all tickets in a batch. (#1201)
  • Orchestrators will now check if a broadcaster is close to the end of its unlock period and if so will stop working with the broadcaster. (#1210)

Full list of changes

v0.5.0

29 Oct 00:58
Compare
Choose a tag to compare
v0.5.0 Pre-release
Pre-release

This is the first go-livepeer release that is compatible with the Streamflow public testnet. This release supports the following features:

  • Scaling an orchestrator by running multiple attached transcoders
  • Basic off-chain orchestrator selection with price filtering
  • Working with multiple orchestrators to transcode a stream
  • Paying for transcoding using off-chain probabilistic micropayments
  • Pricing transcoding based on the number of pixels processed

This is just the first of many releases to come in the near future that will not only improve the node's stability and reliability on the public testnet, but also introduce additional important features. Follow along in the issues.

Infura Endpoint Update

26 Mar 23:22
Compare
Choose a tag to compare

Please ignore this release if you are running your own Ethereum node.

Infura is sunsetting its old endpoint versions. This release updates the Infura provider endpoints to v3.

MVS Release (Test-Only. Not Compatible With Mainnet)

19 Feb 15:19
Compare
Choose a tag to compare

This is a test release that's only compatible with the pre-released Streamflow upgrade. It's for testing ONLY. If you would like to run Livepeer on the Ethereum mainnet, please download version 0.3.1.

Bug fix: EOF bug

06 Sep 18:05
Compare
Choose a tag to compare

This is a bug fix release for an issue caused by a heavy query to the Eth data provider (often times it's Infura).

We have received some bug reports that when starting a new node, they see a "EOF" error and stops. This release addresses that issue by skipping the heavy query when starting a brand new node.

Tributary Release

22 Aug 20:15
Compare
Choose a tag to compare

This release contains the following changes:

  • Transcoders will register their service URI onchain
  • Transcoders can partially unbond based on LIP-8
  • Broadcasters connect directly to transcoders
  • Broadcasters will receive transcoded segments and be responsible for serving the video
  • Broadcasters will attempt to re-use old jobs when receiving a new stream to save on gas cost

Please visit the livepeer documentation for more information.