GP Witness Update: Hardforked

in #witness-category6 years ago (edited)

witness_new_title.png

Most of you know that we're account creators and regularly onboard new users. The account creation parameters are key for us. We're also on the forefront of mitigating rampant abuse and phishing. Take this into consideration as you read this update.

Issues

  • Several missed blocks are the result of having to update the witness without disabling it. Disabling was not possible until the majority of the top witnesses were updated. Most of our missed blocks are because of this or starting off a stopped blockchain.

  • Started out pretty routine until it became apparent that "official" tools were useless. Cli_wallet did not support anything at all and was rendered obsolete. This is a major point of failure.

  • We refactored to use Beem (python), which is @holger80's project, to get commands going. If it wasn't for Beem, no one would've been able to issue new properties.

  • Price feed itself was already correctly calculated and time was saved there.

Parameters

  • Our vision is to limit the new discounted account creation capability until we see how the chain and the users react and observe possible exploitation.

  • Set the parameters to 12 hour half-life decay with a budget of one account per block. This is the closest as reasonable to zero.

  • Account creation fee of 3.000 STEEM (which will be burned).

  • The set_witness_parameters function was and still is incorrectly interpreted by steemd. Got some random crap back from it. We will see if the parameters will have to be reset again.

  • Witness parameters can be found here on Github.

account_creation_fee→ 3.000 STEEM
account_subsidy_budget→ 10000 (one account per block)
account_subsidy_decay→ 12 hour half-life, 3307750 (will adjust upward to speed up if necessary)

These are set based on the thresholds recommended in Github and are interpreted by ourselves as a baseline.

Request

The new system effectively puts all the onus on account creation, through the addition of discounted/"free" accounts, on large stakeholders. The reasoning is 1. large stakeholders have vested interest in Steem and 2. onboarding should be done by entities other than Steemit Inc.

Small stakeholders must generate accounts through burning 3 STEEM. "Burning STEEM" means that 3 STEEM is destroyed when the account is created.

When you're able to, set your account parameters to allow for a reasonably-fast decay and the lower end of the creation budget.

  • This proposal requires Top 20 buy-in to take effect and we recognize that they will not move in a way that limits an enterprise, which would be counter-productive to the Steem ecosystem.

  • We must prevent this from becoming an 'open faucet' for larger stakeholders who are under-the-radar types creating botnets.

Not talking about the guys you know and probably like or don't like, the ones off Trending. I'm talking about the ones you don't see who exploit the blockchain every possible way with the dual prerogative of turning a profit without getting caught.

Set your parameters to reasonably limit the discounted account creation until 2019 to allow the ecosystem to experience and review the possible abuses of the new system, effectively mitigating them.

Mana/Resource Credits (RCs)

Read this Github info sheet first.

  • Mana = (equal to) RCs
  • RCs = (equal to) SP/Vests

Every transaction (action recorded on the blockchain) has a cost to it. This is the source of the issue we're now facing.

To the best of our knowledge, there was no surefire way to calculate all the possible outcomes and costs ahead of the hardfork. In retrospect, we can see issues in the same way that we can see a car crash after we already stoved in. By learning from experience we can increase our defensive driving abilities and prevent future car crashes.

Not going to sit here and blame everyone under the sun while remaining blameless. With the low priority of our witness and exponential server and developer costs, paid projects had to be prioritized. We did not contribute to the testing other than reviewing the code.

Lesson learned: going forward we will set aside a budget to free up machines and the developer. Since our witness is in the mid-60s range, this cost will have to come out of pocket.

Further Reading

Costs and Projects

This is a no-brainer. The cost to the key projects making up the Steem ecosystem has been tremendous. Every project owner is "exhausted" to say the least. Here's a quote from @arcange, shortened a bit, "I worked like crazy to make all my projects (SteemSQL, SteemitBoard, ...) to work ... I'm a bit too exhausted to do PR now."

Our main project, the onboarding of military veterans and verified users, was adapted and re-calculated ahead of time in preparation in terms of process. In terms of execution, every single script will have to be rewritten.

The daily digests/reading lists of #steemsilvergold and #veterans posts will have to wait longer.


Like what we're doing? Support us as a Witness.
Go to https://steemit.com/~witnesses
Select or type in guiltyparties
Click VOTE if typed in


Sort:  

Applying the parameters seems to have worked. However, its only visible in the get_witness return from beem. Steemd and cli_wallet only show the default values for the new witness properties.

>>> Witness('guiltyparties').json()
{'created': '2017-09-02T19:08:24', 'props': {'maximum_block_size': 65536, 'sbd_interest_rate': 0, 'account_subsidy_decay': 3307750, 'account_subsidy_budget': 10000, 'account_creation_fee': {'precision': 3, 'nai': '@@000000021', 'amount': '3000'}}, 'virtual_position': '332713497082428886940084539883832223718', 'url': 'https://guiltyparties.com', 'sbd_exchange_rate': {'quote': {'precision': 3, 'nai': '@@000000021', 'amount': '995'}, 'base': {'precision': 3, 'nai': '@@000000013', 'amount': '877'}}, 'hardfork_time_vote': '2018-09-25T15:00:00', 'owner': 'guiltyparties', 'last_aslot': 26416440, 'last_work': '0000000000000000000000000000000000000000000000000000000000000000', 'hardfork_version_vote': '0.20.0', 'virtual_scheduled_time': '377124827208063661343994537', 'pow_worker': 0, 'running_version': '0.20.3', 'votes': '8974839125598439', 'last_confirmed_block_num': 26322205, 'last_sbd_exchange_update': '2018-09-28T00:00:06', 'virtual_last_update': '377123983864831254948498363', 'total_missed': 105, 'signing_key': 'STM7FGmbPEooM5xbME7F2WUG41zGAh6WPzvHMQvTfABEHKfyuGUu7', 'available_witness_account_subsidies': 0, 'id': 14581}

More testing was needed before going live ... The so called usability issues could have been easily identified. IMHO the following says it all : https://www.captiongenerator.com/1113072/HF20-Failure

Congratulations! Your post has been selected as a daily Steemit truffle! It is listed on rank 3 of all contributions awarded today. You can find the TOP DAILY TRUFFLE PICKS HERE.

I upvoted your contribution because to my mind your post is at least 8 SBD worth and should receive 142 votes. It's now up to the lovely Steemit community to make this come true.

I am TrufflePig, an Artificial Intelligence Bot that helps minnows and content curators using Machine Learning. If you are curious how I select content, you can find an explanation here!

Have a nice day and sincerely yours,
trufflepig
TrufflePig

I'm not 100% clear about the account_creation_fee's impact on the situation. I am informed that the higher the fee is set, the more RCs are available to new users, which means that by setting the account creation fee low, new users basically can't use the blockchain. I think this could be more of a problem even than low level bot spam tbh.

I wrote about that in my post here

I didn't see any correlation between that an new users. The new accounts still need to be delegated either way, which is something most neglect to consider.

Coin Marketplace

STEEM 0.19
TRX 0.14
JST 0.030
BTC 60268.51
ETH 3201.96
USDT 1.00
SBD 2.43