Skip to content

v0.37.0

Compare
Choose a tag to compare
@jackrobison jackrobison released this 14 May 03:59

[0.37.0] - 2019-05-13

Seekable downloads and range request support

  • This release adds seekable streaming downloads and playback via HTTP range requests at http://<streaming_server>/stream/<sd_hash>, as well as new configuration settings streaming_server (default: localhost:5280) and streaming_get (default: True). For convenience, File type api response objects have a new streaming_url string at which the partial content stream can be requested. Only files already in the file manager can be streamed via range requests, if given an sd hash of an unknown stream the server will respond with a 404 error.
  • Provided thestreaming_get setting is not disabled, new streams can be requested from a claim name and optional claim id at http://<streaming_server>/get/<name> or http://<streaming_server>/get/<name>/<claim_id>. These will internally call the api method get and return an http redirect to the /stream endpoint.
  • Writing downloads to the file system can now be disabled or enabled by default using the new save_files setting. The existing get command will follow this setting but can be overridden with the new save_file argument.
  • The added file_save command will explicitly save a file to disk.

Memory only blobs

  • This release adds a save_blobs setting (default: True) to toggle whether blobs should be saved into memory only (for immediate one-time usage) or to disk (for hosting and replay).
  • The default mode - save_files=true and save_blobs=true - replicates past behavior of get with the addition of seekable access via range requests.
  • The default mode will change in a future release to save_files=false and save_blobs=true, since the files can be reconstructed from the blobs on the fly and only the blobs are needed for hosting.
  • Users with limited space can run in streaming only mode, using the settings save_blobs=false and save_files=false. This will require redownloading blobs as they are needed by the browser/range request client - no files will be written unless arguments are provided to do so.

Significant changes have been made to publish command bringing its behavior in-line with pre-0.34.0 versions, see section on backwards incompatible changes for more. (#2058)

Backwards Incompatible Changes

  • [database] migrated database from revision 10 to 11. Once migrated, databases version 11 and up can not be run with older versions of lbrynet. (#2095)
  • [api] block_show command is no longer available in the API, users should run a full node if they need access to blocks (#2063)
  • [api] publish now behaves like the pre-0.34.0 versions of the command (when updating a stream claim), where all values are required to be passed in (use stream_update without --replace flag if you only want to update specific values without having to pass all values again) (#2058)
  • [api] removed --clear_tags, --clear_languages and --clear_locations from publish command, this command now uses --replace mode on by default (this is the pre-0.34.0 behavior of publish command). (#2058)

DHT

  • [improvement] improve iterative find (#2125) by shyba
  • [bug] fix deadlock in routing table when adding a peer (#2124) by shyba
  • [bug] fixed cases where the peer search junction can lock up (#2100) by shyba
  • [refactor] refactor and fix blob announcer (#2093) by shyba

API

  • [improvement] added logging to publish command (#2106) by eukreign
  • [improvement] correctly format lat/long and fee amounts in JSON RPC response (#2104) by eukreign
  • [bug] fixed hanging API requests blocking shutdown (#2102) by shyba
  • [improvement] stream_update --replace also clears the channel if one was set previously (#2101) by eukreign
  • [improvement] account_list defaults to 0 confirmations for balance (#2081) by eukreign
  • [improvement] add timestamp and rename depth to confirmations for output of commands resolve and file list (#2067) by shyba
  • [refactor] removed block_show command from API (#2063) by eukreign
  • [improvement] added timestamp field to transaction output results from JSON RPC calls (#2062) by eukreign
  • [bug] fixed --preview mode on stream_create/stream_update (#2061) by eukreign
  • [bug] fixed signing streams using --channel_name argument (#2060) by eukreign
  • [new feature] added --replace option to stream_update and channel_update, publish defaults to --replace (#2058) by eukreign
  • [new feature] added --clear_fee ability to stream update command (#2056) by eukreign
  • [new feature] added listing claims in channel via --channel_name argument to claim search command (#2055) by shyba
  • [new feature] support HTTP 206 partial content requests for streaming downloads (#2020) by jackrobison

Blob exchange

  • [improvement] fix blob writer race condition and stuck downloads (#2076) by shyba

Claims

  • [refactor] switched from SHA-256 for unencrypted file hash to SHA-384 (#2069) by eukreign

Config

  • [improvement] add streaming_server and streaming_get settings to configure the interface/port of the media server and if it supports the /get endpoint (#2128) by jackrobison
  • [improvement] changed the default peer_connect_timeout to 3 and the default for max_connections_per_download to 4 (#2048) by tzarebczan

Database

  • [improvement] add saved_file and content_fee columns to file table (#2095) by jackrobison
  • [bug] Set should_announce=1 to head and descriptor blobs when saving a stream to database (#2092) by shyba

Devops

  • [bug] time-to-first-byte script fixes (#2045) by shyba

Files

  • [improvement] add streaming_url field to File api response type (#2127) by jackrobison
  • [improvement] stop running streams after ten times the blob_download_timeout seconds of no read activity (not being saved or streamed) (#2123) by jackrobison
  • [bug] fix incorrect media-type of .cbr archives (#2082) by btzr-io
  • [bug] fix file list synchronization bug causing saved claims not to update after a subsequent resolve (#2066) by shyba
  • [bug] updating stream claim with new file now correctly updates file list by removing old file (#2059) by eukreign
  • [new feature] support HTTP 206 partial content requests for streaming downloads (#2020) by jackrobison

Wallet

  • [bug] fixed bug where lbrynet failed to start with single-key accounts in the wallet (#2080) by eukreign

Wallet server

  • [improvement] install uvloop on wallet server docker image and default to it (#2054) by shyba