Giter Site home page Giter Site logo

dao's Introduction

dao

Moonstream DAO

NOTE: All important code in this repository has been moved to https://github.com/moonstream-to/web3

Decentralizing Moonstream

Moonstream makes tools which help people build, manage, and maintain their blockchain economies.

Moonstream's off-chain infrastructure is currently hosted and managed by the team at Moonstream.to (https://moonstream.to). We run our own blockchain nodes (currently Ethereum and Polygon), and perform all Moonstream operations through these nodes.

The coming years will bring an explosion of decentralized applications with a presence on multiple blockchains. We aim to bring the value of Moonstream to every major blockchain, and to do so in a truly decentralized manner. No other approach will scale to tens and eventually hundreds of supported blockchains.

Moonstream DAO represents this decentralization. The DAO will reward participants who contribute:

  1. Blockchain node time
  2. Crawler time
  3. Crawler code
  4. Storage for the Moonstream databases
  5. Publicity for Moonstream
  6. Documentation
  7. Moonstream token liquidity

Rewards will be distributed as a share of revenue, represented in Moonstream platform tokens.

As strong believers in decentralization, all our code is already open source and freely licensed (Apache 2.0 and MIT): https://github.com/bugout-dev.

Architecture and deployments

The Moonstream platform token

This is an ERC20 token that represents the value that Moonstream provides our customers, and the value Moonstream participants provide to the DAO.

Terminus

The Terminus whitepaper

This is a decentralized authorization platform, which we use to manage permissions in the Moonstream DAO and our customers use for a variety of use cases, including whitelisting their token sales and representing in-game achievements for on-chain games.

You can find the addresses for all Moonstream DAO contracts on our operations page.

Development

Preparing your development environment

Moonstream DAO is built with Solidity, Python, and shell scripts.

We use brownie to build our smart contracts, deploy them, and perform operations on them.

We use moonworm to generate Python interfaces to our smart contracts from their ABIs.

To set up an environment in which you can develop on Moonstream DAO, first create a Python3 environment.

Using the built in venv module:

python3 -m venv .dao

Then make sure that this new environment is active. If you used venv as above:

source .dao/bin/activate

Install the Python dependencies and developer dependencies for dao:

pip install -e ".[dev]"

Install the Solidity dependencies for Moonstream DAO smart contracts:

brownie pm install OpenZeppelin/[email protected]

Compiling the smart contracts

brownie compile

Generating interfaces to the smart contracts

We use moonworm to generate command-line and Python interfaces to our smart contracts.

Every time you add, remove, or modify an external or public method from a Solidity smart contract in this repository, make sure to regenerate its Python interface.

You can do this by activating your Python development environment and running the following command from the repository root:

moonworm generate-brownie -p . -o dao -n "<name of Solidity contract you modified>"

For example, if you modified the TerminusFacet contract, you would then run this command:

moonworm generate-brownie -p . -o dao -n TerminusFacet

Tests

To run unit tests, run: ./test.sh

Before you do this, you must make sure that a Python environment is available in your shell and that you have installed the development dependencies in this environment.

VSCode setup

If you are using the Solidity extension in VSCode, merge the following snippet into your settings.json:

{
    "solidity.remappings": [
        "@openzeppelin-contracts/=<path to your home directory>/.brownie/packages/OpenZeppelin/[email protected]"
    ]
}

dao's People

Contributors

zomglings avatar yhtiyar avatar peersky avatar uchami-lg avatar ishihssihshihishsi avatar

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.