I submitted my first hardfork pull request to the Steem blockchain! (Updates to the SBD print rate.)

I have talked to a lot of stakeholders about their concerns for Steem. One of the things that has come up a lot is the fact that we are too dependent on Steemit, Inc. to develop hardforks and other significant changes to the Steem blockchain.

This creates a few problems:

  • If for any reason Steemit, Inc. were to up-and-disappear, there would a very large void to fill as far as continuing the development of the blockchain.
  • If the community really wants a change to be made, but Steemit, Inc. does not see it as a priority, then we don't really have any good options to make the change happen.

Steemit, Inc. is a very important stakeholder and participant in our ecosystem, but they are not the only stakeholder/participant. The community should not have to rely on them to do 100% of the blockchain development, nor should we expect that they are going to work on every change we want them to (unless they agree that it is a priority).

The best solution to this problem (IMO) is to get more talented community developers working on changes to the Steem blockchain code.

This is where I come in :) I have been spending a lot of time learning how the Steem blockchain code works, and have have been figuring out how to develop changes for the blockchain.

Today, I submitted my first pull request to implement a change as part of hardfork 20! (Details below.)

My views on community developers

I do want to make it clear, that I do not see myself (or other community developers) becoming a replacement for what the Steemit, Inc. developers are doing (at least anytime soon). I fully expect that that they continue to be one of the major contributors to the code for the foreseeable future.

Since they are still the ones who are doing most of the work on the blockchain code, my goal is to work with them as much as possible. My plan is to work on changes that add value in addition to whatever they are doing. Part of this includes trying to develop my changes in such a way that causes the least amount of disruption to the changes that are already in progress.

Over time, I hope to increase my skills, so I can work on more complicated changes. After I become more proficient, I also plan to write a 'blockchain development tips guide' for other developers who are interested in learning to do this as well.

Where I see this heading is that a situation where the Steemit developers and community developers are co-existing and both making positive contributions to the Steem blockchain code.

SBD Print Rate Change

As many people know, SBD has been trading above $1 USD for quite some time now. There are a lot of theories on this, but basically what it boils down to is that there is more demand for SBD than there is supply.

One of the things that is contributing to that, is that the way the SBD print rate works.

If an author chooses 50/50 rewards on their post, they get 50% of the post as SP, and the other 50% as "liquid payout". For the liquid payout, this typically comes in the form of SBD, but not always..

Currently the rules are:

  • When the STEEM/SBD debt ratio is between 0% and 2%: The blockchain pays the liquid portion as0% STEEM, 100% SBD.
  • When the STEEM/SBD debt ratio is between 2% and 5%: The liquid portion of the payout linearly changes from 0% STEEM, 100% SBD to 100% STEEM, 0% SBD.
  • When the STEEM/SBD debt ratio is greater than 5%: The blockchain pays the liquid portion as100% STEEM, 0% SBD.

Because of this, when the debt ratio is above 2%, we are currently printing less SBD even though there is still clearly enough demand for SBD to support the peg at/above $1 USD. This also puts unnecessary downward pressure on STEEM, because we are adding additional STEEM supply to the market, even though we could still be paying authors in SBD.

I submitted pull request 2503 to include a change in HF 20 that updates the rules to:

  • When the STEEM/SBD debt ratio is between 0% and 9%: The blockchain pays the liquid portion as0% STEEM, 100% SBD.
  • When the STEEM/SBD debt ratio is between 9% and 10%: The liquid portion of the payout linearly changes from 0% STEEM, 100% SBD to 100% STEEM, 0% SBD.
  • When the STEEM/SBD debt ratio is greater than 10%: The blockchain pays the liquid portion as100% STEEM, 0% SBD.

This will accomplish two things during times when the debt ratio is between 2% and 9%:

  • There will be less STEEM printed, which means less downward pressure on STEEM whenever SBD is still trading above $1 USD.
  • There will be more SBD put in the hands of Steemians.

When will these changes take effect?

It is important to make clear that even though I have done the development for these changes, they will not take effect unless they are accepted by a super-majority (17/21) of the witnesses.

Also, because my PR is attempting to merge these changes as part of HF 20 (which Steemit is developing) - it will still be up to Steemit, Inc. as far as whether or not to accept these changes as part of the hardfork and merge them into the "official" repository.

I plan to do my best to work with the appropriate parties to try and get the changes accepted and into production. Please be aware though - there is no guarantee they will.

What's next?

Next I plan to begin working on changes for issue 2022. This will update the beneficiaries payout logic to pay beneficiaries using the same payout option that the author selected, rather than always defaulting to 100% SP. There are more details in the GitHub issue for those who are interested.

As mentioned above, I am also collecting a list of "lessons learned" through this whole process, so I can put together a tips guide for other developers who are interested in working on similar changes.

I have a few ideas for changes that I will work on next, but I will wait to share more details on them until I get more input from stakeholders and am ready to take them up.

H2
H3
H4
3 columns
2 columns
1 column
197 Comments