HelloZeroNet / HelloZeroNet/ZeroNet
Updates of cert-based content.json's may be lost
- 主要语言
- JavaScript
- 星标
- 18.8k
- 派生
- 2.3k
- PR 合并指标
- 30 天内没有已合并 PR
描述
ZeroNet version: rev 4462, from the official docker image
### Describe the problem:
On a long-running ZeroNet instance, that periodically goes offline for long time intervals as well, I noticed, that some sites miss the content available on several fresh ZeroNet instances.
I've looked through the source code, and as far as I could understand, here is the place where we prefer to save the network traffic and time at the risk of getting an incomplete update:
```
if since is None: # No since defined, download from last modification time-1day
since = self.settings.get("modified", 60 * 60 * 24) - 60 * 60 * 24
```
So, looks like we actually get incomplete updates. On long-running instances, those incomplete updates tend to accumulate, and the user silently misses an undetermined amount of the cert-based data, such as forum posts, comments, likes etc.
#### Steps to reproduce:
Command: `zeroframe.cmd("siteUpdate", ["1TaLkFrMwvbNsooF4ioKAY9EuxTBTjipT"])`
Result: no files to update
Command: `zeroframe.cmd("siteUpdate", ["1TaLkFrMwvbNsooF4ioKAY9EuxTBTjipT", false, 0])`
Result: "Updating: 70 left"
Command: `zeroframe.cmd("siteUpdate", ["1Apr5ba6u9Nz6eFASmFrefGvyBKkM76QgE"])`
Result: no files to update
Command: `zeroframe.cmd("siteUpdate", ["1Apr5ba6u9Nz6eFASmFrefGvyBKkM76QgE", false, 0])`
Result: "Updating: 160 left"
Command: `zeroframe.cmd("siteUpdate", ["1SunAWK2VUT9GQK32MpwRfFPVgcBSJN9a"])`
Result: no files to update
Command: `zeroframe.cmd("siteUpdate", ["1SunAWK2VUT9GQK32MpwRfFPVgcBSJN9a", false, 0])`
Result: "Updating: 70 left"
And so on.
Currently, I found no way to force the core to make the full update from UI.
* ZeroHello -> site -> Update doesn't work. (Fetches no missing files.)
* ZeroHello -> site -> Check files doesn't work either.
The only way to force the full update is to run `zeroframe.cmd("siteUpdate", ["address", false, 0])` from the browser console.
贡献指南
这个仓库没有索引到贡献指南
调研方向
从通过 zeroframe.cmd 调用的 siteUpdate 入口点开始,检查使用已修改设置时的 since 计算。重现默认更新与显式传入 false, 0 的调用之间的差异,然后验证普通更新不再遗漏基于证书的内容,并确认 UI 提供等效的完整更新路径。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- distributed-systems
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100