Joystream / Joystream/joystream
QN: More efficient text edit semantics
- Dominant language
- Rust
- Stars
- 1.4k
- Forks
- 116
- PR merge metrics
- No merged PRs in 30d
Description
# Background
There are multiple metaprotocol standards that involve creating or editing some text encoded object, like a forum post, a video comment and now soon a creator token page. Every time such an object is created, an entirely new copy of the full object is published on chain. This leads to three problems
1. The encoded size of the largets object is constrained by the block level size constrains.
2. Editing the object, even by a very small amount, require resubmitting a new full object copy, which results in large chain load and high user fees.
3. The data content has very low entropy, such as human language, and thus could be substantially decreased in size using various lossless text compression techniques, which would reduce chain load and costs to users.
# Proposal
Make some version of this metaprotocol which has higher order editing semantic which in some way capture the idea of publishing edits, for example [Myers Diff Algorithm](https://blog.robertelder.org/diff-algorithm/) which has many implementations
- https://www.npmjs.com/package/fast-myers-diff
- https://www.npmjs.com/package/diff
and which also uses a suitable lossless (already suggested here https://github.com/Joystream/joystream/issues/2554).
Another really important goal here is to somehow formulate this standard so that it can be reused gracefully across a range of other metaprotocol, forum, etc. The primary immediate use case is the creator token page.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.