Downloads list should be unique by outpoint/key, not claimid #1327

Closed
opened 2018-04-16 19:48:50 +02:00 by tzarebczan · 5 comments
tzarebczan commented 2018-04-16 19:48:50 +02:00 (Migrated from github.com)

The Issue

You get the below console warning if two downloads have the same claim id (which is normal if a claim is updated with a new file). Currently, both claims will show the same content as it is pulled up by the claimid, but it should really use the outpoint or key from file_list. This may be somewhat related to https://github.com/lbryio/lbry-app/issues/1203

 C:\Users\SoloDolo\Desktop\new3\lbry-app\node_modules\fbjs\lib\warning.js:33 Warning: Encountered two children with the same key, `lbry://one#008401a48cecef2a13cf5376b696169bb36b18c6`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted — the behavior is unsupported and could change in a future version.
    in div (created by FileList)
    in section (created by FileList)
    in FileList (created by Connect(FileList))
    in Connect(FileList) (created by FileListDownloaded)
    in main (created by Page)
    in Page (created by Connect(Page))
    in Connect(Page) (created by FileListDownloaded)
    in FileListDownloaded (created by Connect(FileListDownloaded))
    in Connect(FileListDownloaded) (created by Router)
    in Router (created by Connect(Router))
    in Connect(Router) (created by App)
    in div (created by App)
    in main (created by App)
    in div (created by App)
    in App (created by Connect(App))
    in Connect(App)
    in div
    in Provider

Steps to Reproduce

  1. Download a claim
  2. Update claim with new data
  3. Download the claim again

Expected Behaviour

Should be able to access both files in the LBRY downloads

Actual Behaviour

Can only access by claim id, which leads to a single file.

Suggested Solutions

Use the outpoint/key

System Configuration

  • LBRY Daemon version:
  • LBRY App version:
  • LBRY Installation ID:
  • Operating system:

Anything Else

Screenshots

<!-- Thanks for reporting an issue to LBRY and helping us improve! To make it possible for us to help you, please fill out below information carefully. Before reporting any issues, please make sure that you're using the latest version. - App releases: https://github.com/lbryio/lbry-app/releases - Standalone daemon: https://github.com/lbryio/lbry/releases We are also available on live chat at https://chat.lbry.io --> ## The Issue You get the below console warning if two downloads have the same claim id (which is normal if a claim is updated with a new file). Currently, both claims will show the same content as it is pulled up by the claimid, but it should really use the outpoint or key from file_list. This may be somewhat related to https://github.com/lbryio/lbry-app/issues/1203 ``` C:\Users\SoloDolo\Desktop\new3\lbry-app\node_modules\fbjs\lib\warning.js:33 Warning: Encountered two children with the same key, `lbry://one#008401a48cecef2a13cf5376b696169bb36b18c6`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted — the behavior is unsupported and could change in a future version. in div (created by FileList) in section (created by FileList) in FileList (created by Connect(FileList)) in Connect(FileList) (created by FileListDownloaded) in main (created by Page) in Page (created by Connect(Page)) in Connect(Page) (created by FileListDownloaded) in FileListDownloaded (created by Connect(FileListDownloaded)) in Connect(FileListDownloaded) (created by Router) in Router (created by Connect(Router)) in Connect(Router) (created by App) in div (created by App) in main (created by App) in div (created by App) in App (created by Connect(App)) in Connect(App) in div in Provider ``` ### Steps to Reproduce 1. Download a claim 2. Update claim with new data 3. Download the claim again ### Expected Behaviour Should be able to access both files in the LBRY downloads ### Actual Behaviour Can only access by claim id, which leads to a single file. ### Suggested Solutions Use the outpoint/key ## System Configuration <!-- For the app, this info is in the About section at the bottom of the Help page. You can include a screenshot instead of typing it out --> <!-- For the daemon, run: curl 'http://localhost:5279' --data '{"method":"version"}' and include the full output --> - LBRY Daemon version: - LBRY App version: - LBRY Installation ID: - Operating system: ## Anything Else <!-- Include anything else that does not fit into the above sections --> ## Screenshots <!-- If a screenshot would help explain the bug, please include one or two here -->
kauffj commented 2018-04-17 15:47:11 +02:00 (Migrated from github.com)

The long-term fix here is not straightforward, though switching to outpoint as a unique key might be an acceptable short term change .

If claim id stays the same, it is supposed to be the publisher saying this is the same piece of content. If the claim id stays the same but the outpoint changes, the user should not have to re-pay a key fee and instead should be prompted to update to the latest version of the content.

Part of the problem is probably that all edits keep the claim id the same, when instead we should ask the creator if the edit is actually a new publish against the same name. And in that case, change the claim id.

The long-term fix here is not straightforward, though switching to outpoint as a unique key might be an acceptable short term change . If claim id stays the same, it is supposed to be the publisher saying this is the same piece of content. If the claim id stays the same but the outpoint changes, the user should not have to re-pay a key fee and instead should be prompted to update to the latest version of the content. Part of the problem is probably that all edits keep the claim id the same, when instead we should ask the creator if the edit is actually a new publish against the same name. And in that case, change the claim id.
tzarebczan commented 2018-04-17 15:50:19 +02:00 (Migrated from github.com)

Even if the file does change on edit, isn't it normal behavior to have the old and the new file? I'm sure we can make this an option in the future where the user chooses to overwrite the existing file or keep it (both on the physical download and on the LBRY downloads list).

Even if the file does change on edit, isn't it normal behavior to have the old and the new file? I'm sure we can make this an option in the future where the user chooses to overwrite the existing file or keep it (both on the physical download and on the LBRY downloads list).
neb-b commented 2018-07-02 20:25:48 +02:00 (Migrated from github.com)

Got rid of the console errors in #1724 but we can keep this open for now for more discussion around claim id behavior on edits vs new publishes

Got rid of the console errors in #1724 but we can keep this open for now for more discussion around claim id behavior on edits vs new publishes
kauffj commented 2018-07-02 20:41:15 +02:00 (Migrated from github.com)

While I agree the user should have access to the old file and should know what's up, I feel very strongly that the ideal solution is not two distinct listings.

Instead, multiple outpoints for the same claim id should be treated/displayed as two different versions of the same content.

While I agree the user should have access to the old file and should know what's up, I feel very strongly that the ideal solution is not two distinct listings. Instead, multiple outpoints for the same claim id should be treated/displayed as two different versions of the same content.
kauffj commented 2018-07-02 20:41:37 +02:00 (Migrated from github.com)

^ If above is unclear I can elaborate

^ If above is unclear I can elaborate
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
LBRYCommunity/lbry-desktop#1327
No description provided.