XDagger / xdagj

XDAGJ is an implementation of XDAG in Java. https://xdag.io
MIT License
113 stars 59 forks source link

Creating a XFS ( XDAG Funding System) #172

Open Sofarlemineur opened 3 years ago

Sofarlemineur commented 3 years ago

What is XFS?

The XDAG Funding System is a tool that automates the process of rewards. A contributor should be able to create a proposal, upload and edit a proposal. The proposal should consist of the following:

  1. General task description.
  2. Milestones with detailed tasks to be finished.
  3. Timeline which details an estimated amount of time spent on each task.
  4. Start and end date for the proposal, and each milestone.
  5. Amount of funds required.

Each proposal will be split into a minimum of 2 milestones. Milestones and proposals must have a status:

  1. work-in-progress, 2. in-progress, 3.finished, 4. requires-review, 5. requires-revision.

The definition of these statuses are fairly easy to understand. Payment should only be made once a milestone has been finished with two or more favourable reviews. The community should be able to review proposals, and ask for revisions to current in-progress or under review proposals. Once a proposal has been finished, the remaining funds should be rewarded.

Features include:

  1. Easy overview of proposals and their status.
  2. Each proposal has its own page with an interface showing relevant information.
  3. WYSIWYG text editor which supports Markdown formatting.
  4. Funds should be held in escrow. Automatic payment per milestone upon finished review.
  5. A review system where each user has the ability to comment, rate, and ask for revisions. The user should also have some form of trust factor. A higher rank of trust weighs more than a low rank trust. Trust factorneed not be shown to the end user. A clear and concise description of what you want to happen.

Prerequisites & implementation

In this section, I will try to detail what is needed before XFS can be implemented on XDAG.io.

3.1 Prerequisites

  1. XDAG RPC.

3.2 Implementation In this section, I will detail an outline of the preferred implementation.

  1. Develop XFS using an object-oriented programming language, such as Python, C++, or Java. The XFS should also have a frontend.
  2. The XFS code must be made publicly available as open source.
  3. XFS should call the XDAG RPC for payments and balance refreshing.
  4. The wallet should be kept in cold storage and not accessed by third parties for payouts.
  5. XFS should be hosted separately from the XDAG node.
  6. XFS should have a simple UI similar to the block explorer.
  7. Automated wallet and address creation. Suggested methods: (a) A new wallet with a new address for each proposal. (b) The same wallet, but with a new address for each proposal. (c) The same wallet with the same address for each proposal, with a different Tx remark for each proposal.

link to the original file from Mathsw : https://drive.google.com/file/d/1gQysWuuZ3WiT28vAvwFVDxyLMzZa7eq2/view?usp=sharing

Sofarlemineur commented 3 years ago

XFS is based on CCS (Community Crownfunding System) from XMR, you can have a look on it here : https://ccs.getmonero.org/

LucasMLK commented 1 year ago

First of all, I am sure that this is a very good idea. Since the community does not have many funds and developers, I suggest putting it forward in the form of a github issue. We only need a simple text format, because this is simple enough to describe and easy to implement