Joystream / Joystream/joystream

QN: More efficient text edit semantics

Open
#4,703 0 comments 0 reactions 1 assignee Claimed by @dobertRowneySr View on GitHub
query-node
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.