Giter VIP home page Giter VIP logo

proposal-inverter's People

Contributors

hackmd-deploy avatar jds3d avatar mzargham avatar patriacaelum avatar theoriginalmar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

proposal-inverter's Issues

Funding milestones

The minimum horizon and allocation per epoch determines the minimum funds that are required before funds can begin being allocated to brokers. There may be other funding goals that need to be met over a longer course of time. This may be out of scope of this project, but may be an important case to consider.

  1. How do we track these funding milestones? For example, the initial minimum funds may be 300 tokens, but over the course of 20 epochs, the funding milestone may total 500 tokens while the project continues development.
  2. What happens if funding milestones are not met? Should there be changes to certain parameters, like decreasing the allocation of funds per epoch to accommodate lower funds? Should the proposal be cancelled altogether?
  3. What happens if funding milestones are met?

Funds should be returned to payers if target not met

Since owners can deploy a proposal without meeting a minimum horizon, the process of the proposal inverter is effectively split into two phases:

  1. The "Fundraising" phase, where the proposal remains stagnant until enough funds have accumulated to meet the minimum requirements.
  2. The "Research" phase, where the proposal begins to allocate funds to the committed brokers.

Should the "Fundraising" phase not reach its target in a timely manner, the owner of the proposal may choose to cancel the proposal. In this case, the funds should be returned to the payers.

  • In the ProposalInverter.cancel() method, if ProposalInverter.started is False, then the funds in the ProposalInverter.payer_contributions should be reallocated to their respective payers and all committed brokers should have have their stake reallocated to them

cadCAD Simulations

Spin up Owners, Brokers, and Payers dynamically per step.

Testing the economics (The flow of value through wallets)

And also the mechanism (Lot's of Owners, Borkers, and Payers)

And having actors with overlapping roles.

Whitelists and Blacklists

The owner should be able to choose a consensus mechanism on initialization

  1. Owner has full authority
  2. Any Payer has authority
  3. Unanimous Payers have authority
  4. Percentage of Payers have authority
  5. Fund-weighted authority

Brokers on the whitelist can be removed

At the moment, the WhitelistMechanism is designed to be a one way system. Once brokers are whitelisted, they stay there permanently. When a vote for a broker is changed, this may affect a broker's whitelist status.

However, this means that a broker that is already committed to a proposal may be removed from the whitelist, but still remain a broker on the proposal. Whether or not the broker should be immediately removed from the proposal is an open question.

  • Keep past voting information in the WhitelistMechanism
  • Add a remove_from_whitelist method
  • When a voter votes, consider what happens if the broker is already in the whitelist. If the minimum condition is not longer met, then the broker is removed from the whitelist and added back to the waitlist
  • Add removing unit tests

Minimum funds for payer to contribute

There may be a minimum amount of funds a payer must pay if they choose to contribute. This is to help ensure payers will not play a long waiting game of trying to contribute as little as possible to get a proposal running.

  • Add a parameter that defines the minimum payer contribution
  • In the ProposalInverter.pay() method, the payer's contribution should be checked to be greater than or equal to the minimum payer contribution

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.