When I started this proposal, I assumed that the smt testing period would last about three months, so I put the end of my proposal in three months, but my proposal is coming to an end and the testing is still ongoing, so I would like to ask for your support on my followup proposal, obviously should the testing end before the end of the proposal, I will cancel the proposal now that it no longer serves a purpose.
Here's a few easy links to vote on it :
Anyways, onto the report
The steemit team worked hard and pushed a fix for the previous bug I found, but alas, it came back with another issue linked to it. So the testnet has been restarted with some additional logging so that we can have more insight on how to fix it for good. I have restarted my testnet killer script (source here : https://github.com/drov0/hf23-testing/blob/master/bulk_full_setup.js) and the testnet should crash in the coming days. Hopefully this will be the last time this script works.
Meanwhile while reading some code I realized that with the emission operation it is possible to set it up so that the chain will emit tokens to an account that doesn't exists.
This wouldn't have any bad effect when the emission object is created, but as soon as the smt launches and the first emission executes itself, the chain won't realize that the account doesn't exists and basically give tokens to a nonexistent account. Which would, as you can expect, would probably crash the network, I didn't put this theory to the test as this would just delay further testing. Chain restarts are quite time consuming.
The reason why is that it's not an obvious flaw since you can set various emission destinations market, vesting, reward pool and founders. And there is quite a bit of code there in order to support those various destinations.
While I was at it and since the steemit team is focused on the other bug, I figured I would to make the fix myself, so I submitted a pull request with the necessary code changes to fix the issue : https://github.com/steemit/steem/pull/3582
it's working but it's lacking some unit tests. So I'll do some more work on it later on.
Doing all this and realizing that the emission target accounts (vesting, reward pool etc etc) system is quite similar for the ICO part, so I've checked it out as well.
And it looks like it does not have one, as you can see here : https://github.com/steemit/steem/blob/master/libraries/chain/smt_evaluator.cpp#L135
This function calls this other function (https://github.com/steemit/steem/blob/master/libraries/chain/smt_evaluator.cpp#L122) to validate all the targets.
So all good on that end.
Anyways that's about it for this report. Please consider voting my followup proposal using these links :
thanks for this blog bro
you have my vote
keep up the good work 👍👍
Nothing worse than an evil twin
hello steemit and i hope that you dont spam me , i need some support from you . i m using this website since two years and i couldnt increase my account at all . peace to you all from north africa .
Good job finding those bugs.
You have my vote.
This is good work and I am supporting the extension.
Another benefit that Steem gets from funding this work is @howo becoming more familiar with the core Steem code, and can be better prepared to start to help with additional development and testing tasks in the future. Having more people with experience working with the code for Steem is a big deal.
I apologize for writing here, but I saw that you are one of the founders of the Steempress platform, and I felt it necessary to inform you that with the help of the @steemcleaners, I started the process of downvoting the @abrikoss account which using your plugin to publish meaningless posts with links to other people's content ... I thought you should know about this.