Skip to content

IdeaHub stack #24

@xoriole

Description

@xoriole

IdeaHub stack

  1. Storage - Libtorrent
  2. Network - DHT/TCP
  3. Smart Contract - Token generation and distribution
  4. REST APIs
  5. Client - Desktop application built with Web/HTML technologies

1. Storage
Each idea is stored as a torrent. All the files (eg. research papers, data, multimedia files) are inside the torrent. Apart from the files representing the idea, a metadata.json file is created & updated by the OSO client which includes the metadata of the idea. Metadata can include fields like title, authors, abstract, keywords, etc. When the files or metadata changes the infohash of the torrent also changes. Therefore, a mechanism is needed to link an idea to the correct up to torrent infohash. This is done on the network layer using Distributed Hash Table (DHT).

2. Network - DHT/TCP
All full nodes in the network make up the DHT network. A major function of DHT is to keep up to date reference of the idea identifier to the latest torrent infohash so that all the clients (other than the author) can get the up to date information about the idea. A signature check is done before updating the DHT at each node to maintain the integrity and ownership of the idea.

3. Smart Contracts - Token generation & Distribution
When an idea is validated by the validators (introduced later), an immutable record of the idea is stored in the blockchain. A record of the idea identifier and the validated infohash of the torrent is written. After that, OSO tokens are generated and distributed to the following stakeholders.

  • Authors
  • Validators
  • OSO foundation

4. REST APIs
Each full node keeps track of all the ideas submitted to the network reading the idea identifier and the infohash from the blockchain. By downloading the torrent, the node indexes the metadata and makes the content available for search via REST APIs. The APIs are consumed by the end clients.

5. End client
The end client is what is shipped to the users. The users can create/update/delete their ideas and search for other ideas in the OSO network. Since every idea is represented as a torrent file, the client will also be a torrent client downloading and seeding files. This will make the idea more accessible to the rest of the community. Since all the ideas in the platform are validated by the validators, we can assume (safely) that being a torrent client will not have negative implications. We're embracing the technology and not its bad use cases.

Validators
Validators are the nodes that validate the ideas before they can be published to the blockchain and rewards can be distributed. It is a way to maintain the quality of the ideas in the network. Validators check that idea identifier is unique and the content of the torrent is original. While validators may not be able to do deep validation, basic educated human validation should prevent several spam ideas. More sophisticated checks can be done later as we move past the PoC.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions