Skip to content

Releases: livepeer/go-livepeer

v0.5.15

15 Mar 20:27
Compare
Choose a tag to compare

Summary

This release includes an important fix for a bug that could cause transcoding to become stuck for certain corrupt or unsupported source segments. As a result of this bug, some operators saw a high number of sessions in metrics reporting on their orchestrators or transcoders despite receiving a low amount of streams in practice. We strongly recommend that all orchestrator and transcoder operators upgrade to this version as soon as possible to access this bug fix.

Thanks everyone that submitted bug reports and assisted in testing!

Upcoming Changes

  • The following flags are pending deprecation and will be removed in the next release:
    • -gasPrice
    • -s3bucket
    • -s3creds
    • -gsbucket
    • -gskey

Features ⚒

General

Broadcaster

  • #1754 Count bytes of video data received/sent per stream and expose via the /status endpoint (@darkdragon)
  • #1764 Mark all input errors in LPMS as non-retryable during transcoding (@jailuthra)

Orchestrator

  • #1731 Add support for webhook to authenticate and set prices for broadcasters at the start of a session (@kyriediculous)
  • #1761 Add a livepeer_router binary that can route broadcasters to different orchestrators (@yondonfu)

Bug Fixes 🐞

General

  • #1729 Make sure the block watcher service can process multiple blocks in a single polling interval (@kyriediculous)
  • #1795 Fix Darwin build by changing optimization flag used for gnutls dependency (@iameli)

Broadcaster

Transcoder

  • #1775 Fix transcoder load balancer race condition around session cleanup (@jailuthra)
  • #1784 Use auth token sessionID to index into sessions map in transcoder load balancer (@jailuthra)

Full list of changes

Verifying Release

sha256 hashes for release archives:

  • livepeer-darwin-amd64.tar.gz: 633e427d61a7f44d7c7613dc82843cdfdde2ff4f57285590e7245785e93f56b0
  • livepeer-linux-amd64.tar.gz: 1c34bc5424cf9c7f5cf546068e9f79c76a8406262a7dc4898dd18aae5d471db3
  • livepeer-windows-amd64.zip: e82ab83b238937129a6b70252d63aff720c4dabd8110d0d72632a0d012c2c7d5

Generate the sha256 hash:

shasum -a 256 livepeer-<PLATFORM>-amd64.<EXTENSION>

v0.5.14

03 Feb 19:04
Compare
Choose a tag to compare

Summary

This release includes a few important bug fixes as well as some improvements to the consistency and reliability of the transcoding workflow between broadcasters and orchestrators. We strongly recommend that orchestrator operators upgrade to this version to access the bug fixes.

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

Features ⚒

General

  • Support multiple segments in flight on both broadcasters and orchestrators (#1735 #1749)
    • The broadcaster will support multiple segments in flight for an orchestrator as long as the oldest segment is within the maximum in-flight time requirement which is currently set to the duration of the segment

Broadcaster

  • Record metrics when using the stream recording feature (#1710)
  • Record a metric for the number of swaps to different orchestrators for a stream (#1735)
  • Classify additional segment upload errors as timeouts when recording upload error metrics (#1717)
  • Reduce orchestrator discovery related logs by removing redundant logs and using the DEBUG logging level for certain logs (#1732)
  • Treat no keyframe errors from orchestrators as non-retryable errors (#1745)

Bug Fixes 🐞

Broadcaster

  • Fix 500 errors caused by concurrent HTTP push sessions that use the same internal manifestID (provided by a webhook) (#1706)

Orchestrator

  • Ensure that advertised ticket face values cover the estimated redemption tx cost (#1751)

Transcoder

  • Fix an issue where transcoding could get stuck if a segment without keyframes is received. Now, a no keyframe error is returned in stead (#1745 livepeer/lpms#220)
  • Fix an issue where Nvidia transcoding could get stuck if a segment contains invalid packets that trigger a Nvidia driver/CUDA error (#1753 livepeer/lpms#223)

Full list of changes

Verifying Release

sha256 hashes for release archives:

  • livepeer-darwin-amd64.tar.gz: a8156d54d3de5402b9b1d925591251a7c88e310d3155795c13ff6542fe09e3b8
  • livepeer-linux-amd64.tar.gz: 738a4919d88eca90b1f5f80c2f98ea47fbfac28a888c83dc6d93b9dacdb8c880
  • livepeer-windows-amd64.zip: d88ffe928d804571813e968b6a5e5a1addfd842cfde5a026105c9d101dcce2a9

Generate the sha256 hash:

shasum -a 256 livepeer-<PLATFORM>-amd64.<EXTENSION>

v0.5.13

14 Dec 21:22
Compare
Choose a tag to compare

Summary

This release includes a reduction in the # of ETH RPC requests (in the reward and round initializer services) required for an orchestrator (which should help when using ETH RPC providers such as Infura that have rate limit based usage plans), a new transcoding benchmarking tool livepeer_bench that orchestrators/transcoders can use to quantify their transcoding speed and set transcoding session limits, and a number of new node metrics that can be scraped using Prometheus. The adventurous can also check out a new experimental feature for broadcasters to record livestreams.

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

Features

General

  • Add support for generic URL based object store syntax (#1582)
    • The -s3bucket/-s3creds and gsbucket/gskey flags are deprecated in favor of the -objectStore flag
  • Add livepeer_bench executable which can be used for transcoding benchmarking (#1676)
  • Clean up logging from ffmpeg libraries (#1678 livepeer/lpms#214)
  • Build Darwin and Linux binaries using >= go1.15.5 (#1677)
    • The go version for the Windows binary will be updated as will in a future release

Broadcaster

  • Record time to download renditions from orchestrator metric (#1654)
  • Return map of external manifestID (i.e. streamID) to internal manifestID (i.e. webhook manifestID) in /status response (#1662)
  • Add support for recording streams using a configurable recording object store using the -recordObjectStore flag or an objectStore field specified in an auth webhook response (#1582)
  • Add support for joining playlists for multiple transcoding sessions when generating a recording (#1674 #1679)

Orchestrator

  • Refactor reward service to reduce the # of ETH RPC requests required (#1696)
  • Refactor round initializer service to reduce the # of ETH RPC requests required (#1702)
  • Record time to transcode when using a remote transcoder metric (#1655)
  • Record time to download renditions from remote transcoder metric (#1655)
  • Record source segment duration metric (#1670)
  • Record time to download source segment from broadcaster metric (#1670)
  • Record transcode score (source segment duration / transcode time) metric (#1670)

Transcoder

  • Record time to transcode when using a Nvidia GPU metric (#1655)
  • Record time to upload renditions to orchestrator metric (#1655)

Full list of changes

Verifying Release

Note: As of this release, only the sha256 hash of the archive (containing all release binaries i.e. livepeer, livepeer_cli and livepeer_bench) will be published as a part of a release.

sha256 hashes for release archives:

  • livepeer-darwin-amd64.tar.gz: a4c7a946291389913f5d7f75657a89e4c2607cc54f22f055776b101be10cde65
  • livepeer-linux-amd64.tar.gz: b4ec825424c2298b8858d64c55faa8be7e6229efce3537f326e910d8705a909c
  • livepeer-windows-amd64.zip: 289b9a1ac211a16d19cf3ca3497b862b160c9ddc68f9c635b3664d08d69dee4f

Generate the sha256 hash:

shasum -a 256 livepeer-<PLATFORM>-amd64.<EXTENSION>

v0.5.12

30 Oct 22:06
Compare
Choose a tag to compare

Summary

This release fixes a bug in livepeer_cli that prevented the registartion/activation of new orchestrators and also includes a few minor bug fixes and updates.

If you do not need to register/activate an orchestrator then you, then upgrading to this release is not urgent (although take a look at the release notes to see if any of the fixed bugs might affect your workflow).

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

Features

Broadcaster

  • Include the timeout used for transcode requests (#1642)

Orchestrator

  • Record transcoding latency metric when using a remote transcoder (#1650)

Transcoder

  • Enable the CLI webserver (#1650)

Bug Fixes

Broadcaster

  • Fix a bug where the broadcaster hangs during TLS negotiation with an orchestrator that does not respond in the TLS negotiation for some reason resulting in a TCP connection that is never closed (#1645)
  • Fix a memory leak when a timeout is encountered during orchestrator discovery (#1644)
  • Fix a panic that was previously triggered when the broadcaster connects with an orchestrator in off-chain mode (#1638)

Orchestrator

  • Fix a bug in livepeer_cli that prevented activation of new orchestrators (#1649)

Full list of changes

Verifying Release

md5 hashes for release binaries:

  • livepeer (Linux): 1152691e88623f4dd3da73503d0a51f6
  • livepeer_cli (Linux): 131b88c13dacbd9c7a8e82d5af7761a1
  • livepeer (Darwin): 448ffb42f2b1693f11f66d3d6e828362
  • livepeer_cli (Darwin): 0553a8041297089cea70846ee8163b20
  • livepeer.exe (Windows): d7c6d95035c3ffb17ab54ca1896519d7
  • livepeer_cli.exe (Windows): 473e5b9ed4515f13043fe3a9259ad1d9

Generate the md5 hash:

md5sum livepeer
md5sum livepeer_cli

sha256 hashes for release binaries:

  • livepeer (Linux): f4ab3dd2d307c0b137e1e8c80228387721d1cdfe2e52653392d49ff40c14abe2
  • livepeer_cli (Linux): 396b868bc8a915b74dab958ab3e5166d766256bc6507655daf966c92f5085372
  • livepeer (Darwin): 12950ebe28b825ada10f644d1d50990f510d564ce377f0662495533ea1b98ce4
  • livepeer_cli (Darwin): 0942adefb75311f35d1dbb864517c30418c515fd4e2c4999cfefc9eaa0640b20
  • livepeer.exe (Windows): c28d06b33522921263df525b60496e9c40c9598c267c5bbf0645f549cd76e9cb
  • livepeer_cli.exe (Windows): fc26e545f783ad31da28c963e5941adc18ec978a93f6b9a4550ef6e0e9de9fc7

Generate the sha256 hash:

shasum -a 256 livepeer
shasum -a 256 livepeer_cli

v0.5.11

22 Oct 19:33
Compare
Choose a tag to compare

Summary

This release includes a breaking change to the broadcaster <> orchestrator transcoding networking protocol that improves orchestrator stream management.

Other highlights of this release include a bug fix to prevent orchestrators from redeeming expired winning tickets, updates to livepeer_cli based on the recent deployment of LIP-40, LIP-36 and LIP-52 to mainnet as well as many other bug fixes and improvements to node operator UX.

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

Breaking Changes 🚨🚨

  • The new auth token feature (see the "Features" section for more details) is a mandatory capability for both broadcasters and orchestrators. This means that any node running this release will not be able to connect to a node running an older release. So, it is crucial for all node operators to upgrade to this release ASAP to ensure that their nodes are compatible with as many nodes as possible in the rest of the network

Features

General

  • Add an auth token to the broadcaster <> orchestrator transcoding networking protocol which is generated by an orchestrator during discovery (#1613)
    • This also fixed some longstanding issues around how an orchestrator keeps track of streams
  • Show the transaction hash in livepeer_cli after successfully voting in a poll (#1570)
  • Check that values for -maxPricePerUnit and -pricePerUnit are valid integers (#1570)
  • Remove the manual claim earnings option in livepeer_cli since earnings no longer need to be manually claimed after the LIP-36 and LIP-52 deployment (#1637)

Broadcaster

  • Allow form fields for the /setBroadcasterConfig endpoint to be optional (#1597)
    • This allows an operator to programmatically update broadcaster configuration options such as the max price per pixel while the node is running
  • Add the -localVerify flag which can toggle local verification (pixel count verification and signature verification) on/off (#1588)
    • This can be useful when connected to a trusted orchestrator to reduce computational overhead for the broadcaster
  • Update integration with the latest version of the verification-classifier API which is used when experimental transcoding verification is enabled (#1577)
  • Update the orchestrator selection strategy to select the fastest orchestrator to respond during discovery out of orchestrators that use the same ETH address (#1617)
  • Add additional metrics for source segment duration, HTTP push client timeouts and real-time transcoding ratios (#1630)

Orchestrator

  • Allow form fields for the /setOrchestratorConfig endpoint to be optional (#1597)
    • This allows an operator to programmatically update orchestrator configuration options such as the price per pixel while the node is running
  • Return a clearer error when an audio-only segment is received (currently will not transcode this type of segment) (livepeer/lpms#207 #1608)
  • Allow the price per unit to be set to 0 to transcode for free (#1616)
  • Return clearer errors for orchestrator registration and configuration setting in livepeer_cli (#1570)
  • Fetch and pre-populate the orchestrator configuration prompt in livepeer_cli with the current reward cut and fee share values for the orchestrator (#1570)
  • Remove overly verbose gas price caching log statement (#1634)

Bug Fixes

General

  • Fix incorrect Minter contract parameter values displayed in livepeer_cli after the LIP-40 deployment (#1606)
  • Fix a bug where non-whole second duration metrics were incorrectly truncated when recorded (#1630)

Broadcaster

  • Fix bug where transcoding via the HTTP push fails when the manifestID returned by a configured webhook is different from the manifestID extracted from the segment URL provided in the HTTP push request (#1627)

Orchestrator

  • Fix a busy loop that caused CPU usage to shoot up to 100% after receiving a ticket (#1619)
  • Fix a bug that could cause the orchestrator to repeatedly try to redeem expired winning tickets (#1598)

Full list of changes

Verifying Release

md5 hashes for release binaries:

  • livepeer (Linux): e176899fd322e4171d6a37d787660cf1
  • livepeer_cli (Linux): dd42130a0a5d1510b6e7f54bff551c13
  • livepeer (Darwin): ffafeaa5752da9ce93eba6f1f50de5fa
  • livepeer_cli (Darwin): 173a35554ab8e1e569c0658834c18da8
  • livepeer.exe (Windows): b7089b46f05e263fcca35a480d9068fe
  • livepeer_cli.exe (Windows): 9181bbad2f8ba870fcc64ce3c80664a6

Generate the md5 hash:

md5sum livepeer
md5sum livepeer_cli

sha256 hashes for release binaries:

  • livepeer (Linux): 9eaa35177999df84eefadc694512e5f5ef3639f104afeca6b7dd40811687a42c
  • livepeer_cli (Linux): f9e0108147399d08aa968f86d1fee98d898eb2c17d102ccb7ef72e1cb2d44de4
  • livepeer (Darwin): 4a14bd74c90a7f6ffcaa1581c3d1b33d6e68c2ce637fd139d3cab2c955129b54
  • livepeer_cli (Darwin): 452e494b8c9ac5a949d9183529d0569ce0189dd1e969ab734f5ba73b41d7f654
  • livepeer.exe (Windows): 46b3100d858d79ddc6acafc7f98ba4b7718b35ea9a8d8ee7abc85fbe3d58ad8d
  • livepeer_cli.exe (Windows): 8bbf7c2148a6ca95cbfeb59d8078660f49a498bd6b7a748ed5b26e2b8bef2f14

Generate the sha256 hash:

shasum -a 256 livepeer
shasum -a 256 livepeer_cli

v0.5.10

06 Aug 19:30
Compare
Choose a tag to compare

Summary

This release includes support for broadcaster and orchestrator capability discovery which makes it much easier for the network to support a heterogeneous set of nodes that support a mix of features and is a first step towards exploring the possibility of a network that supports more diverse video compute capabilities.

Other highlights of this release include gas cost optimizations for calling reward, a fix for a bug that was causing orchestrators to call reward with higher gas prices than necessary, improvements to orchestrators' ticket workflow and improvements to the transcoding workflow.

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

Features

General

  • Added support for capability discovery between broadcasters and orchestrators (#1539)
    • This feature allows broadcasters to match with orchestrators based on capabilities advertised by orchestrators
    • See the PR for more details on how the feature works under the hood

Broadcaster

  • Added support for specifying transcoding options using a JSON config file (#1558)
    • See the docs for information on specifying transcoding options using a JSON config file

Orchestrator

  • Added support for calling reward with "hints" (the node will do this automatically) in order to reduce the gas costs of the reward transaction (#1566)
    • When reward is called the position of the orchestrator in the on-chain pool that is used to determine which orchestrators will be active when a new round is initialized is updated
    • Submitting the reward transaction with a hint can reduce the amount of computation in the smart contract required to calculate the new position of the orchestrator in the on-chain pool
  • Updated the max float (used to determine the max face value of probabilistic micropayment tickets) calculation strategy for a broadcaster to also take into account a broadcaster's deposit relative to the broadcaster's current float (value of winning tickets redeemed by the orchestrators that have not confirmed on-chain yet) (#1592)
    • This update should also help orchestrators continue to accept segments after redeeming a winning ticket from a broadcaster. Previously, in many cases, orchestrators would stop accepting segments while waiting for a winning ticket redemption to confirm on-chain
  • Updated the ticket redemption strategy so that orchestrators will redeem winning tickets as long as the broadcaster's available funds exceeds the the estimated transaction cost of the redemption (#1596)

Bug Fixes

General

  • Fixed a bug that prevented the node from receiving WinningTicketTransfer events which are used by broadcasters and orchestrators to update their current view of broadcasters' deposit and reserve (#1596)

Orchestrator

  • Fixed a bug that could cause transaction nonce gaps when transaction submission fails (i.e. due to an account having insufficient funds) (#1599)
    • This bug also could cause an orchestrator to continuously bump the gas price of a pending reward transaction despite the transaction never being eligible to be included on-chain due to a nonce gap
  • Fixed a bug that could cause multiple reward transactions to be submitted instead of waiting for the first reward transaction to confirm on-chain (#1599)
  • Fixed a bug that prevented transcoders from accepting out-of-order segments (i.e. segment N + 1 has a smaller timestamp than that of segment N) (#1593 livepeer/lpms#201)
  • Fixed a bug that caused transcoders to produce renditions with timestamps that drift over time (#1593 livepeer/lpms#201)

Full list of changes

Verifying Release

md5 hashes for release binaries:

  • livepeer (Linux): 2ceb584614accdafd886674794c526fa
  • livepeer_cli (Linux): 40196f0d3d6a7e3d6c6f3204e55fac40
  • livepeer (Darwin): 23d6ee8d71aed72f485a87d213a55e27
  • livepeer_cli (Darwin): 901dabc84e45aed7d667eeabd4ca400c
  • livepeer.exe (Windows): b2f818c210b6dd41fbc42f43aa1b8f80
  • livepeer_cli.exe (Windows): f0b09e9137d58dc1cd9fc8d34352934b

Generate the md5 hash:

md5sum livepeer
md5sum livepeer_cli

sha256 hashes for release binaries:

  • livepeer (Linux): 9b234faebfd8d96484605eaa498a08f24e71118485a68a96c8a39e806cf3ee0d
  • livepeer_cli (Linux): 5815acf1dc7d1910e50d19c4a894d8554bc93cc03a3db7c41313eacc24d41e18
  • livepeer (Darwin): e5fd0af98270fa3c022843dbf75552d1faa127b16e3a693d012b479ac6f455a7
  • livepeer_cli (Darwin): 4d0c8a26da0bf5e68b54a5d336f75c38229101802216da3006deafcff2267aed
  • livepeer.exe (Windows): 264398894d9de57f129a88d3b15aa293dd3b597ae81c1bff44f3fb4a6793d94f
  • livepeer_cli.exe (Windows): a9b80db7abac6f898ed2ffe54fa9f20820767dcbb55f4e8b03e4a0e76beef985

Generate the sha256 hash:

shasum -a 256 livepeer
shasum -a 256 livepeer_cli

v0.5.9

06 Jul 22:50
Compare
Choose a tag to compare

Summary

This release includes support for multi-orchestrator node setups, more robust winning ticket management for orchestrators, a number of new transcoding features (fractional FPS, H264 profiles, GOP length) and a few updates/bug fixes.

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

Features

Broadcaster

  • Set orchestrator request timeout based on segment duration (#1477)
    • This feature gives broadcasters more flexibility in sending variable duration segments for transcoding. The current duration cap is 5 minutes
  • Add support for requesting fractional FPS for transcoding (#1525 livepeer/lpms#192)
    • See the docs for information on specifying a fractional FPS using a webhook
  • Add support for requesting H264 profiles for transcoding (#1542 livepeer/lpms#196)
    • See the docs for information on specifying H264 profiles using a webhook
  • Add support for requesting a GOP length for transcoding
  • Export deposit/reserve metrics via Prometheus (#1541)
    • This feature will enable Prometheus integrations to leverage deposit/reserve data for monitoring/alerting

Orchestrator

  • Allow multiple orchestrator nodes using their own addresses to accept payments on behalf of a single on-chain registered address (#1476)
    • See the docs for information on running multiple orchestrator nodes
  • Use a database for more robust winning ticket storage, submission and retries (#1493)
  • Allow orchestrator nodes to submit winning tickets to a node running a ticket redemption service (#1495 #1545 #1521)
    • This feature allows orchestrator nodes to be run with Ethereum addresses without any funds since the orchestrator node will not need to submit any transactions
    • See the docs for information on how the ticket redemption service works
    • See the multi orchestrator docs for information on how to run multiple orchestrator nodes with a ticket redemption service
  • Set remote transcoder request timeout based on segment duration (#1511)
    • This feature gives orchestrators that use remote transcoders more flexibility in transcoding variable duration segments
  • Add support for transcoding with fractional FPS (#1525 livepeer/lpms#192)
  • Add support for transcoding with H264 profiles (#1542 livepeer/lpms#196)
  • Add support for transcoding with a set GOP length (#1551 livepeer/lpms#198)
  • Add a -reward flag that can be used to explicitly enable/disable the reward service which automatically triggers reward calls (to mint LPT rewards) each round that a node is active
    • See the docs for information on -reward flag usage
  • Clear the stored ticket sender nonces tracked per broadcaster after an expiration time which avoids continuous memory usage growth as the orchestrator receives tickets from different broadcasters (#1526)

Bug Fixes

Broadcaster

  • Fix a bug where the fee estimated for a segment when using FPS passthrough (i.e. use the same FPS as the source for the transcoded rendition) was 0 (#1508)

Orchestrator

  • Fix a bug where transcoders were unable to handle segments with a single frame (#1502 livepeer/lpms#189)
  • Fix a bug where the transcoder load balancing cost estimated for a segment when using FPS passthrough (i.e. use the same FPS as the source for the transcoded rendition) was 0 (#1508)
  • Fix a bug where a winning ticket would never be redeemed if an initial redemption transaction failed due to an uninitialized round (#1493)
  • Update the gas cost estimate for a ticket redemption transaction to more accurately reflect the actual gas cost for the transaction (#1553)

Full list of changes

Verifying Release

md5 hashes for release binaries:

  • livepeer (Linux): 0dceaae80750f52d762d549fb3248c0a
  • livepeer_cli (Linux): 62caf581949a659238aa84eb3db65ee3
  • livepeer (Darwin): c00289045c5a38e982503607702b96a3
  • livepeer_cli (Darwin): 1b0575938ef4d3e342f30db0c1384a5e
  • livepeer.exe (Windows): 8f9c05319a50039fc08a4b37a13a3b67
  • livepeer_cli.exe (Windows): 6e3ae7406c9a4b3654a79e7fe727edab

Generate the md5 hash:

md5sum livepeer
md5sum livepeer_cli

sha256 hashes for release binaries:

  • livepeer (Linux): 3589a93df98cb782f1f5ff8c85f4ae2696c9bf1815d661742d8e3589ee35b6db
  • livepeer_cli (Linux): d662489d2ff712374971a981b4e84796bdc3bf7192f892cf187cdea80029eff3
  • livepeer (Darwin): 5dd6c9dfb5282f64c480e1d72e0980597fc963b22be3f8d19769f5c41af455aa
  • livepeer_cli (Darwin): fc0e422aded2e95e9fc6df882e3c8890c12d533d79ecab13ddb193d41fbdc55e
  • livepeer.exe (Windows): 226c44d8e6d1d94774bf4a554b68be92764fa80f4baa3c51304e74083cd11858
  • livepeer_cli.exe (Windows): e2158c55e320edc93d3f5226669e4b10d76a2acf43b982de64408ad3be5b62ba

Generate the sha256 hash:

shasum -a 256 livepeer
shasum -a 256 livepeer_cli

v0.5.8

11 May 18:39
716119b
Compare
Choose a tag to compare

Summary

This release includes support for voting in governance polls. All orchestrators should upgrade to this version as soon as possible so they can use livepeer_cli to vote in the LIP-19 poll.

This release also includes a few minor new features and bug fixes - please refer to the "Features" and "Bug Fixes" sections for more details.

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

Features

Broadcaster

  • Propagate the last error when the max number of transcode attempts is hit (#1475)
    • If the max number of transcode attempts is consistently hit, there is likely a problem with the segment

Orchestrator

  • Added support for voting in governance polls in livepeer_cli (#1461)
    • Check out the docs for more details on how to vote in polls

Bug Fixes

General

  • Embed mime types for some video formats because the mime types are not always loaded from the host machine (#1465)

Orchestrator

  • Fixed the GPU transcoding test on start up for Windows builds (#1471)
    • A Windows based orchestrator and/or transcoder does not need to be run with the -testTranscoder=false flag anymore

Full list of changes

Verifying Release

md5 hashes for release binaries:

  • livepeer (Linux): d7cc8df1549888562f89150c7a205efc
  • livepeer_cli (Linux): c7bea07ac4036a212add9ca4e1bb8daa
  • livepeer (Darwin): e641b8067b31ca0907a0812a36197308
  • livepeer_cli (Darwin): 2a5089a27a31ab57f5240210df012c30
  • livepeer.exe (Windows): 7d03a677d8c37d0385ad8c4de54d28eb
  • livepeer_cli.exe (Windows): b0d96268c4ace1d76684ec3710de93a8

Generate the md5 hash:

md5sum livepeer
md5sum livepeer_cli

sha256 hashes for release binaries:

  • livepeer (Linux): 15faebb5703dd31d2b6353427190db30560b373410ebda2bf5a8aac376a72356
  • livepeer_cli (Linux): 4d851104435811d1ded329035db55c42bb089875940024378a92302ce21dd9ff
  • livepeer (Darwin): 1dcca18eb3f5e7481f345ffa91ec5a2c023254d9ad6c6139a8fbb1b639a951fd
  • livepeer_cli (Darwin): 94738bdf8c4f716747127fa6ea08265480ad07f9f19e6b3c766c973694715cff
  • livepeer.exe (Windows): 98001a865f0d95e76596dbe033b70e68882e4ac28686ac0057fd470c54480370
  • livepeer_cli.exe (Windows): 0a57d96d65e68ea7675de46e9fb6d8f79bd0801283eb6bebaed1a287bf204b24

Generate the sha256 hash:

shasum -a 256 livepeer
shasum -a 256 livepeer_cli

v0.5.7

23 Apr 19:09
ac28889
Compare
Choose a tag to compare

Summary

This release fixes the broken v0.5.5 Windows binary and also includes a small update to the HTTP ingest response format for broadcasters.

If you do not run on Windows and if you do not run a broadcaster with HTTP ingest enabled, then you can safely ignore this release.

There is a known issue with the GPU transcoding test that the Windows binary runs on start up, but transcoding works after start up. This will be fixed in a future release, but for now a Windows based orchestrator and/or transcoder should be started with the -testTranscoder=false flag.

Features

Broadcaster

  • Return the file name in the Content-Type header of the response returned when using HTTP ingest (#1466)

Bug Fixes

General

  • Fixed the Windows build by adding a missing DLL (#1462)

Full list of changes

Verifying Release

md5 hashes for release binaries:

  • livepeer (Linux): fb89aa46ef360e61af83cbb2c2538e22
  • livepeer_cli (Linux): b9ddad630af6d1354a0d6d00a712e450
  • livepeer (Darwin): ff0b93544f761d15c7aef69e1462b8c9
  • livepeer_cli (Darwin): 9b654e81db5fb6ac02563a5ffb6d1796
  • livepeer.exe (Windows): 05607bc81ef925aa94acdfc5d8e8791a
  • livepeer_cli.exe (Windows): 461634e36c63cd865e8a8e9b82c82915

Generate the md5 hash:

md5sum livepeer
md5sum livepeer_cli

sha256 hashes for release binaries:

  • livepeer (Linux): 7074c26e1c754563201a24ff973a6782472061e2eb9e928b850ebe5e4c499367
  • livepeer_cli (Linux): 1f70c4870fff2a868e467ddeb0e7f71efafcb0df8e2d176882870e38e679b103
  • livepeer (Darwin): c7beaf8192a69c2f97f81365a03f7d9dd53cfebaff7a1dbd104ae745213ca9ff
  • livepeer_cli (Darwin): 5a30bb4e581d6d3992ab34e2e37d6e44fa6c4d58e978e0f8c2d7ddf84b08ec98
  • livepeer.exe (Windows): 446f7bce7eaff80b9ab7fd7ec878aec70dff1b46d0f8c452254b15f450a68292
  • livepeer_cli.exe (Windows): 276e014f80eb1c6526d02ef5dc52f3ad90dacc9ff028203ed6c7322864cb516f

Generate the sha256 hash:

shasum -a 256 livepeer
shasum -a 256 livepeer_cli

v0.5.6

21 Apr 12:42
a55045b
Compare
Choose a tag to compare

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

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
  • 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)

Full list of changes

Verifying Release

md5 hashes for release binaries:

  • livepeer (Linux): ee078a01c762643ba9ab593a36166d44
  • livepeer_cli (Linux): 21f0296f689d3e5af5d986fcf4727b89
  • livepeer (Darwin): e44af1510588766031d938a51fd9a697
  • livepeer_cli (Darwin): 6bf5975781ccba3135877fdf4de30935
  • livepeer.exe (Windows): c316f91cc0cfc2d7f3b80c15f834e853
  • livepeer_cli.exe (Windows): d95bd8dddd328abdf4fc84e1696459d2

Generate the md5 hash:

md5sum livepeer
md5sum livepeer_cli

sha256 hashes for release binaries:

  • livepeer (Linux): 19db1c45ef4e1a6dbdf2cbb88b95faae456d96e838c0eb59425d084d26252eb7
  • livepeer_cli (Linux): c6fb76cd2d82cdb2241b1a7786f59edf810d4dcc07d1087f09963f4e91c2f80c
  • livepeer (Darwin): 3b3c1b8e24b4667086e7958084579e0de8084a09268d5080f1f99e0be6eb2c8b
  • livepeer_cli (Darwin): 25295d815736f1aecd385b7778e0e47432fcf4d707df2394eb087f368934d8bf
  • livepeer.exe (Windows): f6754a292f9a0165f2d1bdb189518f21e5f009d90518e225340d534d04722c3b
  • livepeer_cli.exe (Windows): e300fa37d981393e0bb2d1451381a21df745d6217f741a43e2b00b6c43950015

Generate the sha256 hash:

shasum -a 256 livepeer
shasum -a 256 livepeer_cli