UniversalDot dApp Overview

UNIVERSALDOT
UniversalDot
Published in
6 min readJan 24, 2022

--

Vision

The Vision of the UNIVERSALDOT FOUNDATION is to create new structures of organization within society that improve productivity, social mobility, and socialization between people who have a common vision and goals.

Motivated by this vision, UNIVERSALDOT FOUNDATION has provided a template implementation of an application that intends to organize people to interact in a novel way. This new proposed system architecture will enable users to digitally connect with others through tasks. Through the creation of tasks and digital organizations, people will be able to fulfill their own common visions.

This article provides a brief overview of the functionality that is implemented within the UDOT Application.

Why A Decentralized Solution?

There are many already existing freelancing applications on the market, but they all rely on a centralized architecture. In a centralized system where a single organization has control over all servers, the organization that controls all data has full control over the system and can manage access, authorization, and authentication of the user and their interactions.

As evidenced throughout history, every centralized system has a single point of failure. Furthermore, centralized systems have an easily exposed attack surface which makes them vulnerable to outside attacks. Centralized systems also tend to lead to corruption since systems that have power, never wish to delegate their power to external systems.

Decentralized systems have none of these shortcomings. UDOT application is a community-oriented application and is implemented for the common good. For these reasons, the UDOT application is completely decentralized and will exist as long as users run nodes and maintain the network.

Architecture

Architecture Design

UDOT Architecture level is comprised of 3 levels:

  1. Data Tier that deals with immutable and mutable data storage.
  2. Logic Tier which creates the business logic for the application.
  3. Presentation Tier allows users to interact with the application through an intuitive User Interface.

UDOT Application is built using Substrate Blockchain Framework.

Substrate provides the foundational libraries for networking, consensus building, security and was evaluated as the best-in-class framework for building decentralized applications. On top of the existing Framework and Runtime, UNIVERSALDOT FOUNDATION has built custom pallets that provide custom behavior that we will elaborate on in the sections below.

All blockchain data is stored in RocksDB which is the default data storage for Substrate. Off-chain data will be stored in IPFS.

The User Interface is implemented through a React front-end application. Using an intuitive UI will make the interaction with the underlying business logic much easier.

Profile

Most blockchain implementations don’t associate personalized data that is linked to a public key. However, in our application there arises a need to personalize keys with unique user data such as personal interests, reputation, etc. All personalized data in the application is stored in a Profile. Each public key can have only one Profile. Furthermore, Profiles are necessary for further interaction with the application.

By specifying personal interests, users are able to see Tasks and Organizations that are based on their personal interests. Personalized interaction is required since with the growing complexity of the application, it becomes impossible for users to navigate through the system by searching for Tasks and organizations. Instead of Users seeking Tasks, Tasks will find them. In a later iteration of the system, the personalized recommendations will be provided through a Machine Learning Module.

In the current implementation, all Profiles have the following metadata associated with their Profile:

  • Interests: Personal Interests of the User
  • Reputation: Social Score for the User
  • Balance: Personal funds

Profile Actions

Use Case — Profiles

The user is allowed 3 types of actions when interacting with the Application.

  • Create Profile: A User can create a single profile
  • Update Profile: A User can update an existing profile
  • Delete Profile: User can delete their profile.

Task

A Task represents a unit of work in the application. Tasks are how the users interact with one another. By the creation of a task, a user demands that a certain amount of work be done by another user in the application. The user who creates a task and initiates it is called Initiator. The user who undertakes a task with the intention to complete is called a volunteer. Any user can become a task initiator or a task volunteer.

In the current implementation, all Tasks have the following metadata associated with each Task:

  • Initiator: User that created the task
  • Volunteer: User that undertakes a task
  • Requirements: The task Requirements
  • Status: Current task status [Created, InProgress, Closed]
  • Budget: The value assigned to a task
  • Deadline: The deadline until the task has to be completed
  • Current Owner: The user that is assigned the task at the present moment

When Tasks are created by the Initiator, the balance of the task is locked into an escrow account. This ensures that the Initiator can only create a limited number of tasks based on the available balance. Once the tasks have been completed and approved, the budgeted funds will be moved from the escrow account into the balance of the volunteer who completed the tasks.

In cases when the task has not been completed within a given deadline, the budgeted funds from the escrow will be debited to the original account of the Initiator. This ensures that no funds are lost.

In order to prevent spamming the network, at each task action, UDOT will charge a small fee. This will disincentivize users from creating unnecessary tasks but also commit to tasks that they can complete. The funds from the small fees will go into a Treasury account which will then be used to support the community.

Task Actions

Use Case — Actions

There are two types of Users when dealing with Tasks: Initiator and Volunteer.

The initiator is the one who can create tasks and remove them. The volunteer is the one who is able to start a task and complete it.

Organization (DAO)

Oftentimes Tasks might be too complex to be completed by a single individual. For this reason, a larger organizational structure is needed which can fulfill a larger vision and long-term goals. Organizations are created when the task requirements are fairly complex and necessitate multiple people, many different skills, and long time durations. Just as organizations are created in the real world to organize people, organizations can be created in the UDOT application to organize people virtually.

In the application, all organizations are organized around a common vision. A Visionary is something who has a vision for a better future and proposes such vision to the community. The Visions that have the support of the community will likely be implemented, thus fulfilling the Vision of the Visionary. Anyone in the application can be a Visionary and submit their own vision for a better future.

All users will be able to see the current visions available in the system. User can indicate their support for the Vision by signing the Vision Document. Signing a vision implies that a user is interested in joining the organization and contributing to the tasks of the organization.

In the current implementation, Each organization will have the following metadata associated with it:

  • Vision: Explains the overall vision, goals, and roadmap for the organization.
  • Members: Users who are currently members of the organization.
  • Tasks: Tasks that aim at fulfilling the organizational vision.

Organization Actions

Use Case — Organizations

In terms of Organizations, there are two types of users who interact with an organization: Visionary and Member.

The visionary can perform many actions. Namely, they can:

  • Create/Remove Vision documents
  • Create/Dissolve Organizations
  • Add/Remove Members

The Member can:

  • Sign/ Unsign Vision documents

The overall solution is provided under Apache 2.0 License. For more details regarding the implementation, please visit our GitHub repository.

UNIVERSALDOT FOUNDATION
KENNEDYPLEIN 200
5611 ZT, EINDHOVEN
THE NETHERLANDS
https://universaldot.foundation

UNIVERSALDOT LOGO (All Rights Reserved)

--

--

UNIVERSALDOT
UniversalDot

UniversalDot.Foundation is focused on creating applications for the decentralised internet.