Releases: livepeer/go-livepeer
v0.5.25
Summary
This release adds support for a new L1 Rinkeby contract deployment used for the Confluence testnet. If you are planning on participating in the testnet you should upgrade to this release. This release does not contain any updates for mainnet.
Breaking Changes 🚨🚨
- The node will no longer connect with the old L1 Rinkeby contract deployment when the
-network rinkeby
flag is used. Instead the node will connect to the new L1 Rinkeby contract deployment when the-network rinkeby
flag is used using a new hardcoded Controller contract address at 0x9a9827455911a858E55f07911904fACC0D66027E.
General
Verifying Release
sha256 hashes for release archives:
livepeer-darwin-amd64.tar.gz
: b76897e4c2d87efd3a50a19a597a6124f12aea8fd84603186e4409c1bae6094elivepeer-linux-amd64.tar.gz
: 723dd535a7c3d24ff20f8569f269f712f4086f7e25092328e1e1ec96b8be21f7livepeer-windows-amd64.zip
: f30a5908728167acfa2d1ce7826b2137092ffc2e088df96056a72bdc69f60eca
Generate the sha256 hash:
shasum -a 256 livepeer-<PLATFORM>-amd64.<EXTENSION>
v0.5.24
Summary
This is a fast follow patch release for v0.5.24 to fix a bug that caused orchestrators to return errors right after a transaction is submitted resulting in the previously active streams to be re-routed from the orchestrators. If you are running an orchestrator you should upgrade to this release as soon as possible.
In order to fix this bug, the feature from v0.5.24 that set the maxFeePerGas
of transactions to -maxGasPrice
is temporarily disabled and will be re-enabled in the next release. The node will continue not submitting transactions if the current expected gas price for a transaction exceeds -maxGasPrice
, but due to the disabling of the aforementioned feature, it is possible for a transaction to be mined at a gas price higher than -maxGasPrice
if the gas price increases quickly after the node performs its -maxGasPrice
check. The next release will ensure that a transaction cannot be mined at a gas price higher than -maxGasPrice
.
Features ⚒
General
Broadcaster
- #1989 Record realtime ratio metric as a histogram (@victorges)
Orchestrator
Bug Fixes 🐞
General
- #2163 Fix Session crashes right after the O sends a tx, revert #2111 Ensure
maxFeePerGas
in all transactions never exceed-masGasPrice
(@leszko)
Verifying Release
sha256 hashes for release archives:
livepeer-darwin-amd64.tar.gz
: e2522bbcc2d10eccd9ad77802dcf8c32ebc4d9017783789eec56bbe402ecff3clivepeer-linux-amd64.tar.gz
: 4efbda6d5e6586e7eb1e6ccbd526da65cdbe2e4e27a01cb76b1f2893fe790fdblivepeer-windows-amd64.zip
: 63e2707854aada3b7626f04f27ce17457e93137c4473656aabfc5004f8ecb87b
Generate the sha256 hash:
shasum -a 256 livepeer-<PLATFORM>-amd64.<EXTENSION>
v0.5.23
Summary
This release includes an important fix for a memory leak that can be triggered when using the CUDA MPEG-7 video signature capability (when using a Nvidia GPU), which is used for fast verification, for orchestrators/transcoders. If you are running an orchestrator or transcoder you should upgrade to this release as soon as possible.
Additional highlights of this release:
- Support for running fast verification on broadcasters
- Support for configuring
livepeer
using a file. See the docs for instructions on using a configuration file - An improvement to the failover behavior in split orchestrator + transcoder setups in the scenario where a transcoder crashes
- Ensure that the the fee per gas for a transaction never exceeds the value set for
-maxGasPrice
Thanks to everyone that submitted bug reports and assisted in testing!
Features ⚒
General
- #2114 Add option to repeat the benchmarking process with
livepeer_bench
(@jailuthra) - #2111 Ensure
maxFeePerGas
in all transactions never exceed-masGasPrice
defined by the user (@leszko) - #2126 Round up bumped gas price for the replacement transactions (@leszko)
- #2051 Removes HTTP and HTTPS protocols from FFmpeg build (@darkdarkdragon)
- #2127 Add warnings to ETH/LPT accounts in Livepeer CLI (@leszko)
- #2121 Add contextual logging (@darkdarkdragon)
- #2137 Support config file (@leszko)
Broadcaster
- #2086 Add support for fast verification (@jailuthra @darkdragon)
- #2085 Set max refresh sessions threshold to 8 (@yondonfu)
- #2083 Return 422 to the push client after max retry attempts for a segment (@jailuthra)
- #2022 Randomize selection of orchestrators in untrusted pool at a random frequency (@yondonfu)
- #2100 Check verified session first while choosing the result from multiple untrusted sessions (@leszko)
- #2103 Suspend sessions that did not pass p-hash verification (@leszko)
- #2110 Transparently support HTTP/2 for segment requests while allowing HTTP/1 via GODEBUG runtime flags (@yondonfu)
- #2124 Do not retry transcoding if HTTP client closed/canceled the connection (@leszko)
- #2122 Add the upload segment timeout to improve failing fast (@leszko)
Transcoder
Bug Fixes 🐞
Broadcaster
- #2067 Add safety checks in selectOrchestrator for auth token and ticket params in OrchestratorInfo (@yondonfu)
Transcoder
- #2108 Fix memory leak in CUDA MPEG-7 video signature filter (@oscar-davids)
Verifying Release
sha256 hashes for release archives:
livepeer-darwin-amd64.tar.gz
: 6ada30329ebae2ef86fd03d8d0381f4e27453f5e3adec17d6e0f7040cbaa6387livepeer-linux-amd64.tar.gz
: c128fafcd9a8f06a22ecbd9a016f0de4d0b57c1e0ad360479303440451d3d0a2livepeer-windows-amd64.zip
: 1703596b0232eec071ae80cdd736c42039544edd0c723ccc1a7bdc7c15ab08c4
Generate the sha256 hash:
shasum -a 256 livepeer-<PLATFORM>-amd64.<EXTENSION>
v0.5.22
Summary
This release includes an important MPEG-7 video signature capability fix, which is used for fast verification, for orchestrators/transcoders running on Windows. If you are running an orchestrator or transcoder on Windows you should upgrade to this release as soon as possible.
Additional highlights of this release:
- Support for EIP-1559 (otherwise known as type 2) Ethereum transactions which results in more predictable transaction confirmation times, reduces the chance of stuck pending transactions and avoids overpaying in gas fees. If you are interested in additional details on the implications of EIP-1559 transactions refer to this resource.
- An improvement in ticket parameter generation for orchestrators to prevent short lived gas price spikes on the Ethereum network from disrupting streams.
- The node will automatically detect if the GPU enters an unrecoverable state and crash. The reason for crashing upon detecting an unrecoverable GPU state is that no transcoding will be possible in this scenario until the node is restarted. We recommend node operators to setup a process for monitoring if their node is still up and starting the node if it has crashed. For reference, a bash script similar to this one can be used to automate restarts of the node in the event of a crash.
Thanks to everyone that submitted bug reports and assisted in testing!
Features ⚒
General
- #2013 Add support for EIP-1559 transactions (@yondonfu)
- #2073 Make filtering orchestrators in the DB that haven't been updated in last day optional (@yondonfu)
Bug Fixes 🐞
Broadcaster
- #2075 Check if track is found in when serving recordings request (@darkdarkdragon)
Orchestrator
- #2071 Update tx cost check when generating ticket params to be more resistant to gas price spikes (@yondonfu)
Transcoder
- #2057 Prevent stuck sessions by crashing on unrecoverable CUDA errors (@jailuthra)
- #2066 Fix filename parsing errors for signature_cuda filter on Windows (@jailuthra)
Verifying Release
sha256 hashes for release archives:
livepeer-darwin-amd64.tar.gz
: 89a2508944ab2725ce82b74597171a505a07423a86eecbdb65331fdd73aa68d7livepeer-linux-amd64.tar.gz
: 0c22bb2ea9413966371886673625395e5597ed903dcded51927dee1dd001aa1clivepeer-windows-amd64.zip
: 5e7e230e52fc5f477f0871efe72c641408afbbb5b7709e6c0f7af8844dc1d7b9
Generate the sha256 hash:
shasum -a 256 livepeer-<PLATFORM>-amd64.<EXTENSION>
v0.5.21
Summary
This release includes a new orchestrator/transcoder MPEG-7 video signature capability which is required for broadcasters to run transcoding verification. The MPEG-7 video signatures are used as perceptual hashes in a "fast verification" algorithm that is described in the Fast and Full Transcoding Verification design. If a CPU is used for transcoding, the video signature computation will occur on the CPU. If a GPU is used for transcoding (i.e. the -nvidia
flag is used), the video signature computation will occur on the GPU. Orchestrators and transcoders should upgrade to this release as soon as possible to ensure that they will be able to continue serving broadcasters that run fast verification (the complete broadcaster implementation will be shipped at a later date).
Orchestrators and transcoders should also make note of the breaking change in this release that drops support for Nvidia GPUs from the Kepler series.
Thanks to everyone that submitted bug reports and assisted in testing!
Breaking Changes 🚨🚨
- #2027 Nvidia GPUs belonging to the Kepler series (GeForce 600, 700 series) and older, are no longer supported by go-livepeer. Cuda 11 is needed for newer GPUs, which only supports the Maxwell series or newer.
Features ⚒
General
Transcoder
- #2036 Generate mpeg7 perceptual hashes for fast verification (@jailuthra)
Bug Fixes 🐞
Transcoder
Verifying Release
sha256 hashes for release archives:
livepeer-darwin-amd64.tar.gz
: 904866395dae2bf5f2dd386d73097ebfbc467c1424e78faf8e178578c806aa04livepeer-linux-amd64.tar.gz
: aa966e0af5599faf04d1c9334da36f59e3f6007ca23fc0f21c7c2379b998f0e4livepeer-windows-amd64.zip
: 5133cea0bed71cde18891e42908aaefa31bbf87b33b1434ba1cb11b260c75db8
Generate the sha256 hash:
shasum -a 256 livepeer-<PLATFORM>-amd64.<EXTENSION>
v0.5.20
Summary
This release includes a few important bug fixes including:
- A fix for winning tickets incorrectly being marked as redeemed in the node's database even though they have not been redeemed yet
- A fix for node crashes due to the submission of a replacement transaction when a max gas price is not configured
- A fix for increased gas usage of reward transactions if an orchestrator did not receive stake updates in the previous round (via a reward call or delegation)
Additionally, this release includes a new -autoAdjustPrice
flag that allows orchestrators to enable/disable automatic price adjustments based on the overhead for ticket redemption (which is determined by the current ETH gas price). Orchestrators can disable automatic price adjustments by setting -autoAdjustPrice=false
(default is true) to ensure that they advertise a constant price to broadcasters avoiding the scenario where they lose all jobs due to a gas price spike that causes their advertised price to exceed the max price set by broadcasters. Refer to the docs for more information. If orchestrators disable automatic price adjustments then it is recommended to also use the -maxGasPrice
flag to set a maximum gas price for transactions to wait to redeem tickets during lower gas prices periods.
We strongly recommend all orchestrator and transcoder operators to upgrade to this version to access this latest set of bug fixes and improvements.
Thanks to everyone that submitted bug reports and assisted in testing!
Features ⚒
Broadcaster
- #1946 Send transcoding stream health events to a metadata queue (@victorges)
Orchestrator
Transcoder
- #1979 Upgrade to ffmpeg v4.4 and improved API for (experimental) AI tasks (@jailuthra)
Bug Fixes 🐞
General
- #1992 Eliminate data races in mediaserver.go (@darkdarkdragon)
- #2011 Configurable delay between sessions in livepeer_bench (@jailuthra)
- #2001 Fix max gas price nil pointer error in replace transaction (@kyriediculous)
Broadcaster
Orchestrator
- #2018 Only mark tickets for failed transactions as redeemed when there is an error checking the transaction (@yondonfu)
- #2029 Fix active total stake calculation when generating hints for rewardWithHint (@yondonfu)
Verifying Release
sha256 hashes for release archives:
livepeer-darwin-amd64.tar.gz
: 22b4a7614d18e82986276c51340bd49515917f4689d146f69dd66e89dde762a0livepeer-linux-amd64.tar.gz
: 9a1e1af0867f1232152d538016515f20ca7c2728e7fe3492a85ec5a617676243livepeer-windows-amd64.zip
: 7ef76ae08da5631bed8b645710ca7a228d1b936083702f234b9885958703ef22
Generate the sha256 hash:
shasum -a 256 livepeer-<PLATFORM>-amd64.<EXTENSION>
v0.5.19
Summary
This release includes another gas price monitoring fix to address additional cases where Ethereum JSON-RPC providers occassionally return really low gas prices for the eth_gasPrice
RPC call, automatic replacements for pending transactions that timeout, fixes for broadcaster stream recording, support for downloading stream recordings as mp4 files as well as variety of other bug fixes and enhancements. We strongly recommend all orchestrator and transcoder operators to upgrade to this version to access this latest set of bug fixes and improvements.
In addition to the gas price monitoring fix and support for automatic replacements for pending transactions that timeout, a few additional configuration options are introduced to give node operators more control over gas prices and transactions:
-maxTransactionReplacements <INTEGER>
can be used to specify the max number of times to replace a pending transaction that times out. The default value is 1.-txTimeout <DURATION>
can be used to specify the timeout duration for a pending transaction after which a replacement transaction would be submitted. The default value is 5m.-minGasPrice <INTEGER>
can be used to specify the minimum gas price (in wei) to use for transactions. The default is 1 gwei on mainnet.
More information about these new flags is accessible via livepeer -help
.
The default value for the -maxTicketEV
flag for broadcasters has been updated to 3000 gwei based on the default value of 1000 gwei for the -ticketEV
flag for orchestrators which is safer for broadcasters. For more information on these default values, refer to the payment docs for video developers and the payment docs for video miners.
An experimental version of a deep neural network (DNN) based scene classification capability is mentioned in the changelog, but please note that while this is the first step towards enabling this capability on the network for video miners, this feature is NOT yet usable on the network today and is undergoing rapid development.
Thanks to everyone that submitted bug reports and assisted in testing!
Features ⚒
General
- #1911 [Experimental] Enable scene classification for Adult/Soccer (@jailuthra, @yondonfu)
- #1915 Use gas price monitor for gas price suggestions for all Ethereum transactions (@kyriediculous)
- #1930 Support custom minimum gas price (@yondonfu)
- #1942 Log min and max gas price when monitoring is enabled (@kyriediculous)
- #1923 Use a transaction manager with better transaction handling and optional replacement transactions instead of the default JSON-RPC client (@kyriediculous)
- #1954 Add signer to Ethereum client config (@kyriediculous)
Broadcaster
- #1877 Refresh TicketParams for the active session before expiry (@kyriediculous)
- #1879 Add mp4 download of recorded stream (@darkdarkdragon)
- #1899 Record million pixels processed metric (@yondonfu)
- #1888 Should not save (when recording) segments with zero video frames (@darkdarkdragon)
- #1908 Prevent Broadcaster from sending low face value PM tickets (@kyriediculous)
- #1934 http push: return 422 for non-retryable errors (@darkdarkdragon)
- #1943 log maximum transcoding price when monitoring is enabled (@kyriediculous)
- #1950 Fix extremely long delay before uploaded segment gets transcoded (@darkdarkdragon)
- #1933 server: Return 0 video frame segments unchanged (@darkdarkdragon)
- #1932 Serialize writes of JSON playlist (@darkdarkdragon)
- #1985 Set default -maxTicketEV to 3000 gwei (@yondonfu)
Orchestrator
- #1931 Bump ticket redemption gas estimate to 350k to account for occasional higher gas usage (@yondonfu)
Transcoder
- #1944 Enable B-frames in Nvidia encoder output (@jailuthra)
Bug Fixes 🐞
General
- #1968 Fix nil pointer error in embedded transaction receipts returned from the TransactionManager (@kyriediculous)
- #1977 Fix error logging for failed replacement transaction (@yondonfu)
Verifying Release
sha256 hashes for release archives:
livepeer-darwin-amd64.tar.gz
: dd907a0760104552bac1b59a453a25bcb1f0175f23ace74e8d3742322151719elivepeer-linux-amd64.tar.gz
: 76be58c81dd41f06c8bab6dacefc9815b4a3c2e85e3c4333ed0dd24c5c4769e5livepeer-windows-amd64.zip
: d1aafb9149bbf2440998918d5377529ee1c1efe88a25d09b162b5707b71f94e8
Generate the sha256 hash:
shasum -a 256 livepeer-<PLATFORM>-amd64.<EXTENSION>
Note: The Windows release was cut from a commit that was created after the v0.5.19 tagged commit because there was a Windows build process issue that needed to be fixed after the v0.5.19 commit. As a result, livepeer.exe -version
will report 0.5.19-b6b17f1
instead of 0.5.19
.
v0.5.18
Summary
This release includes an important fix that allows orchestrators to accurately set ticket face values (previously there were cases where orchestrators would inaccurately set ticket face values to a really low value) by discarding really low non-sensical gas prices returned by Ethereum JSON-RPC providers in the gas price monitor, reductions in the gas cost for staking actions (under certain circumstances) using livepeer_cli
and improvements to split orchestrator and transcoder setups that help remote transcoders retain streams. We strongly recommend all orchestrator and transcoder operators to upgrade to this version as soon as possible to access this latest set of bug fixes and improvements.
Thanks to everyone that submitted bug reports and assisted in testing!
Breaking Changes 🚨🚨
- Payment/ticket metrics are no longer recorded with high cardinality keys (i.e. recipient, manifestID) which means those labels will no longer be available when using a monitoring system such as Prometheus
Features ⚒
General
- #1848 Use fee cut instead of fee share for user facing language in the CLI (@kyriediculous)
- #1854 Allow to pass region in the custom s3 storage URL (@darkdarkdragon)
- #1893 Remove high cardinality keys from payment metrics (@yondonfu)
Broadcaster
- #1875 Update 'trying to transcode' log statement with manifestID (@kyriediculous)
- #1837 Only log discovery errors when request is not cancelled (@yondonfu)
Orchestrator
- #1845 Staking actions with hints (@kyriediculous)
- #1873 Increase TicketParams expiration to 10 blocks (@kyriediculous)
- #1849 Re-use remote transcoders for a stream sessions (@reubenr0d)
Transcoder
- #1840 Automatically use all GPUs when -nvidia=all flag is set (@jailuthra)
Bug Fixes 🐞
Orchestrator
- #1860 Discard low gas prices to prevent insufficient ticket faceValue errors (@kyriediculous)
- #1859 Handle error for invalid inferred orchestrator public IP on node startup (@reubenr0d)
- #1864 Fix OT error handling (@reubenr0d)
Transcoder
- #1862 Report the correct FPS in outputs when FPS passthrough is enabled for GPU transcoding (@jailuthra)
Verifying Release
sha256 hashes for release archives:
livepeer-darwin-amd64.tar.gz
: 710d1318155a3a6b1e58c079900b864fa1163c112058e448a75fbedf748eb31elivepeer-linux-amd64.tar.gz
: bb821290b3a3fa5862ff5d5f804c9f065420d45af8eabf238a3a25cdd333ce54livepeer-windows-amd64.zip
: 59a5029d2f6a7dcc1525e6ea4b1e88cd0fa0207c351d91eaa788ddf16b808bad
Generate the sha256 hash:
shasum -a 256 livepeer-<PLATFORM>-amd64.<EXTENSION>
v0.5.17
Summary
This release includes a few fixes for bugs that could cause nodes to crash due to race conditions and unexpected values returned by third party services (i.e. ETH JSON-RPC providers). We strongly recommend all node operators to upgrade to this version as soon as possible to access these bug fixes.
Thanks to everyone that submitted bug reports and assisted in testing!
Breaking Changes 🚨🚨
- The deprecated
-gasPrice
,-s3bucket
,-s3creds
,-gsbucket
and-gskey
flags are now removed
Features ⚒
General
- #1838 Remove deprecated flags:
-gasPrice
,-s3bucket
,-s3creds
,-gsbucket
,-gskey
(@kyriediculous)
Broadcaster
- #1823 Mark more transcoder errors as NonRetryable (@jailuthra)
Bug Fixes 🐞
General
- #1810 Display "n/a" in CLI when max gas price isn't specified (@kyriediculous)
- #1827 Limit the maximum size of a segment read over HTTP (@jailuthra)
- #1809 Don't log statement that blocks have been backfilled when no blocks have elapsed (@kyriediculous)
- #1809 Avoid nil pointer error in SyncToLatestBlock when no blocks are present in the database (@kyriediculous)
- #1833 Prevent nil pointer errors when fetching transcoder pool size (@kyriediculous)
Orchestrator
- #1830 Handle "zero" or "nil" gas price from gas price monitor (@kyriediculous)
Verifying Release
sha256 hashes for release archives:
livepeer-darwin-amd64.tar.gz
: 4a3d7d84a3c5b3ee68b86e90a9b8c7a85db6326fdb08ef75f26fe74f685781eflivepeer-linux-amd64.tar.gz
: 39dc144285e4ff661068685687d159b721f6f0fdc9d771af05e2f3f805d58f6elivepeer-windows-amd64.zip
: ba866f2a4f34d9af041fd2e3cc8133b9fbda36a6ad458f759fb65f959612093e
Generate the sha256 hash:
shasum -a 256 livepeer-<PLATFORM>-amd64.<EXTENSION>
v0.5.16
Summary
This release includes an important fix for a bug that could cause broadcasters to crash due to missing data in responses from misconfigured orchestrators. We strongly recommend that all broadcaster operators upgrade to this version as soon as possible to access this bug fix.
If you are not a broadcaster operator, then upgrading to this release is not urgent.
Thanks to everyone that submitted bug reports and assisting in testing!
Bug Fixes 🐞
General
- #1813 Check that priceInfo.pixelsPerUnit is not 0 (@kyriediculous)
Broadcaster
- #1782 Fix SegsInFlight data-loss on refreshing O sessions (@darkdragon)
- #1814 Add price checks when caching orchestrator responses during discovery (@yondonfu)
- #1818 Additional checks to avoid nil pointer errors caused by unexpected orchestrator configurations (@kyriediculous)
Verifying Release
sha256 hashes for release archives:
livepeer-darwin-amd64.tar.gz
: d2a04478850a78d3427dc2b41d34b377cbba445def77bb6a44678ad949062ac7livepeer-linux-amd64.tar.gz
: 4de9e303b1ac6fd498da43d18bb74661c21e8b2494f6ace5e99d1621ff4e9c7dlivepeer-windows-amd64.zip
: 92bf96ad391f2ebc3bd8b3132a86592deb46a8764de2c24cf521a7cf30c8b779
Generate the sha256 hash:
shasum -a 256 livepeer-<PLATFORM>-amd64.<EXTENSION>