Coder Social home page Coder Social logo

public-awesome / stargaze Goto Github PK

View Code? Open in Web Editor NEW
247.0 12.0 88.0 21.73 MB

Stargaze Cosmos proof-of-stake blockchain

Home Page: https://stargaze.zone

License: Apache License 2.0

Makefile 1.02% Go 91.73% Shell 6.93% Dockerfile 0.31%
cosmos-sdk ibc blockchain proof-of-stake cosmwasm go stargaze

stargaze's Introduction

Stargaze

Build Status Go Report Card

Stargaze is a Cosmos zone (layer 1 proof-of-stake blockchain). It is the base layer node software for the Stargaze NFT Marketplace.

Install

Run a local, single-node chain

Requires Go.

make install

./startnode.sh

Test smart contracts

See ./scripts/wasm/README.md.

Disclaimer

STARGAZE SOFTWARE IS PROVIDED “AS IS”, AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND. No developer or entity involved in running Stargaze software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of Stargaze, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value. Although Public Awesome, LLC and it's affiliates developed the initial code for Stargaze, it does not own or control the Stargaze network, which is run by a decentralized validator set.

stargaze's People

Contributors

aljo242 avatar closeobserve avatar costcould avatar de-husk avatar dependabot-preview[bot] avatar dependabot[bot] avatar faddat avatar gjermundgaraba avatar jakehartnell avatar jhernandezb avatar jtieri avatar mohitmamoria avatar reecepbcups avatar saisunkari19 avatar shanev avatar spoo-bar avatar tasiov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stargaze's Issues

Stake module ABCI

  • query all delegations
  • query delegations by post and vendor ids
  • update app.go
  • create custom SimApp for testing
  • post test
  • delegation test
  • abci end blocker + tests
  • client cli
  • client rest
  • genesis state

Figure out how to handle the result of governance moderation

Options:

  • Fork the Cosmos Governance module, adding a new proposal type for content moderation. Add events to signal the result of governance votes, so rewards can be paid out (or slashed). Furthermore, the post and upvotes have to be either deleted or flagged, or curation has to resume, accounting for the moderation delay.
  • See if just a text proposal is enough, but if its possible to hook into the results to do the redistribution.

Add negative staking for moderation

  • keep track of vote direction (upvote/downvote)
  • add downvote to MsgDelegate
  • embed staking Delegation in a stake Delegation that includes a downvote
  • store this new type in the queue as another key

Make post creator optional and don't assign it to the curator during an upvote

adding a comment to this part (for some reason can't comment)

err = k.CreatePost(ctx, vendorID, postID, "", deposit, curator, rewardAccount)

Now that I think it , shouldn't the post already exists ? I mean if the post doesn't previously exists on chain a transaction should be submitted before from the creator with reward_address = curator

The conflict is that the post would not contain the real author address

Originally posted by @jhernandezb in https://github.com/public-awesome/stakebird/pull/64/files

Mint token from bonding curve with Bancor formula

Currently we're minting 1 new token for each ATOM that goes into the community pool. This is fine for early testnets. But since we want to incentivize early adopters, new tokens should be minted on a curve.

Background reading:

  1. https://blog.relevant.community/how-to-make-bonding-curves-for-continuous-token-models-3784653f8b17
  2. https://blog.relevant.community/bonding-curves-in-depth-intuition-parametrization-d3905a681e0a
  3. https://yos.io/2018/11/10/bonding-curves/

The last article includes Solidity contracts that can be ported over to Go.

Todo

  • Implement creating many curves for different assets using the Bancor formula (with reserve ratio)
  • Implement buying from curve, making sure all math is deterministic. Use sdk.Dec.Power() instead of float calculations, for example.
  • Write tests, comparing against a model such as https://www.desmos.com/calculator/8gxacjujal.

Other related Cosmos implementations:

Proto for MsgPost

Yeah I don't think embedding is actually possible golang/protobuf#192 (comment)

The only work around I see is duplicating fields, its a bit boilerplate but that would make it work, I'm ok duplicating that unless you think there is some methods attached to MsgDelegate that would requite to also be copied to MsgPost ?

Originally posted by @jhernandezb in #15 (comment)

automate releases

  • Build and release assets on tags
  • Build and release containers on tags

Curator rewards

  • retrieve staking reward amount
  • amplify staking reward with a bonus from the reward pool
  • add param for bonus multiplier

Stake module CRUD

  • scaffold code
  • delegation msg, handler, client
  • delegation queue type
  • delegation queue keys
  • add to queue on delegation

Stake module TODO

  • check if expected events are fired in abci functions
  • add Msgs to proto
  • update README
  • issue with exported validator type

Scale quadratic matching pool by governance or chain params

Need to think of params or chain properties can be used to scale the matching pool.

The matching pool is currently unbounded. So it’s possible that if enough upvotes happen, it’ll empty up the reward pool and the chain will halt.

Lock ATOM as collateral

  • relayer scripts to do an IBC xfer of ATOM from Cosmos Hub to a Stakebird account
  • lock ATOM in a module account representing the reserve token for the curve

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.