Skip to content
This repository was archived by the owner on Jun 23, 2022. It is now read-only.
This repository was archived by the owner on Jun 23, 2022. It is now read-only.

Store post in IPFS or OrbitDB #2

@filips123

Description

@filips123

Description

Store post title and content in IPFS and it's hash in contract. Hash can be stored using multihash struct which potentially reduces gas cost.

Post can also be stored in OrbitDB.
If database can be accessed from another computer with it's identifier (hash) it could contain entire blog. This would remove need of using ETH contracts and completely remove gas costs.
There should also be support to protect database so only owner (and authorized persons) can edit blog, but in any device or browser (currently only original node have write access). This could be done with ETH signing and/or decentralized identity projects (see below).

Because OrbitDB is very complex and difficult, at when it comes to that write control, it may be better to use 3Box for this. It also uses OrbitDB and IPFS, but it also adds easy control and access to data. So, author of the blog post could first make a draft, which would be private, and later add public post.

There is also project Vitriol which uses OrbitDB. It could be joined with this project.
Both of them have generally same idea, but it is implemented in different ways, and they have some unique features. It would be great if both can be implemented with OrbitDB and compatible.
See Vitriol issue #3 for details.

It could also be extended to support uPort and 3Box for easier user identity, auth and storage. There are also other possibilities like Blockstack, Peergos, Hydra... For better user experience, multiple providers should be supported.

Context

Deployment and changes of ETH contracts can be expensive because of gas cost. Longer posts will currently be more expensive because more data need to be stored.

Point of this issue is to reduce (or even remove) gas cost of adding and updating blogs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions