Notes on Steem Proposal System

in #steem5 years ago (edited)

@blocktrades announced that the initial version of SPS is ready for public testing three days ago.

For those we don't know, SPS is a proposal system allows funding STEEM accounts based on the proposed projects. Stakeholders decide if the proposal should get funds or not. It is similar to witness voting, in that perspective.

After the discussions about where should the money come from, the first version uses a donation system to feed the proposals. This may change with a new hard fork (e.g using the inflation) if that model doesn't work.

Reviewing SPS

After the CTA about public testing, I have spent some time reviewing the changes. Even though, there is a public testnet available I wanted to have a private testnet for the SPS. This was the first time I have been running a private testnet, and it was a great learning experience. (literally bugged @inertia in every 5mins, about tinman :P)

I have already reported a bug and proposed a small design change. Both of the issues are addressed in a timely manner. Things are changing and progressing fast on the project these days.

Resources

General Notes

  • Payments are done daily with SBDs.
  • There is a proposal creation fee to prevent spam proposals.
  • A proposal includes these fields:
{
  "creator": string, 
  "receiver": string, 
  "start_date": date iso string, 
  "end_date": date iso string, 
  "daily_pay": asset, 
  "subject": string, 
  "permlink": string (permlink)
}

The fields are pretty obvious. permlink is unique together with authors in STEEM context, so it can be @creator/permlink or @receiver/permlink. The creator account has the priority in case of any conflict.

  • A treasury account is allocated to hold the funds. (steem.dao at the moment.)

Using Lightsteem to broadcast SPS operations

Here is a small script to create a proposal in the public testnet.


from lightsteem.client import Client

from lightsteem.helpers.amount import Amount
from lightsteem.datastructures import Operation


USER = ('emrebeyler', '<posting_key>')
NODE = 'http://sps-blocktrades-testnet-api.blocktrades.info:8090'

# monkey patch Amount class
Amount.ASSETS.update({
    "TBD": {
        "nai": "@@000000013",
        "precision": 3
    }
})


def create_proposal():
    c = Client(
        nodes=[NODE,],
        keys=[USER[1]],
        chain=dict(
            chain_id="18dcf0a285365fc58b71f18b3d3fec954aa0c141c44e4e5cb4cf777b9eab274e",
            prefix="TST",
        ),
    )

    # Assuming the USER[0] has a Comment with relevant permlink
    op = Operation('create_proposal', {
        "creator": USER[0],
        "receiver": USER[0],
        "start_date": "1970-01-01T00:00:00",
        "end_date": "2019-06-01T00:00:00",
        "daily_pay": "10000.000 TBD",
        "subject": "testing stuff",
        "permlink": "hi-i-am-meeseeks-look-at-me"
    })
    c.broadcast(op)

if __name__ == '__main__':
    create_proposal()

Since Lightsteem follows a generic approach to send requests to STEEM nodes, there is no update required. There are also steemjs and steem-python branches available to test related RPC endpoints or broadcasts SPS ops.


Overall, I am excited about the Steem Proposal System. I will be following its development closely. It's good to see the project has good progress, so far.

Vote for my witness


If you like what I do, consider casting a vote on Steemconnect or on Steemit

Sort:  

Thanks for the excellent update on the project!

This post has been included in the latest edition of SoS Daily News - a digest of all the latest news on the Steem blockchain.

There's absolutely nothing here I can understand - nothing.
I've been using computers and the internet since day 1, I've owned businesses online, websites, administered forums of 100k+ members, and taught myself to program some basic languages over the years. I was considered genius level by several professors and IQ testers etc.
And yet there's zero here for me. You literally lost me in the first sentence, and yes, I did go to the link and try to understand that, too.
All I get from it, is that something may have happened or may soon happen, and it may or may not involve me as a simple content creator.
Please, if there's anything of importance here for the average user of Steem, will you consider rephrasing it?
If not, please let me know so I can ignore this. Thanks!

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.033
BTC 64513.89
ETH 3155.04
USDT 1.00
SBD 4.00