v0.37.0
[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 settingsstreaming_server
(default:localhost:5280
) andstreaming_get
(default:True
). For convenience,File
type api response objects have a newstreaming_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 the
streaming_get
setting is not disabled, new streams can be requested from a claim name and optional claim id athttp://<streaming_server>/get/<name>
orhttp://<streaming_server>/get/<name>/<claim_id>
. These will internally call the api methodget
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 existingget
command will follow this setting but can be overridden with the newsave_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
andsave_blobs=true
- replicates past behavior ofget
with the addition of seekable access via range requests. - The default mode will change in a future release to
save_files=false
andsave_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
andsave_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 (usestream_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
frompublish
command, this command now uses--replace
mode on by default (this is the pre-0.34.0 behavior ofpublish
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 renamedepth
toconfirmations
for output of commandsresolve
andfile 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 onstream_create
/stream_update
(#2061) by eukreign - [bug] fixed signing streams using
--channel_name
argument (#2060) by eukreign - [new feature] added
--replace
option tostream_update
andchannel_update
,publish
defaults to--replace
(#2058) by eukreign - [new feature] added
--clear_fee
ability tostream update
command (#2056) by eukreign - [new feature] added listing claims in channel via
--channel_name
argument toclaim 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
andstreaming_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 formax_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 toFile
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 subsequentresolve
(#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