A view over Blackcomb mountain, skiing in Whistler BC. Photo by me.
Well, it’s been a while since I’ve last written a proper witness update, hasn’t it? But since I’ll be joining @aggroed’s Witness Forum this weekend, I figured now was a good time to summarize what I’ve been up to these past few months. I’m excited to show you what I’ve been working on!
You can check out my previous updates here and here.
To begin, here’s an overview of what I’ve been up to. You can find more information on each item below (arranged by number).
- We launched steemcleaners.com, our new website and reporting interface.
- Updates and bug fixes to @cheetah -- better performance, fewer errors!
- Updates to @guard, the bot I made to address phishing.
- A formal proof, along with some discussion, about 'Vote Incentivization' and how it degrades Delegated Proof of Stake.
- Some back end library updates (common use from @cheetah, @guard, @mack-bot, @spaminator, and more).
- Busy with real life!
1 - Steemcleaners.com
We contractually hired not one, but two developers to build and integrate our new site steemcleaners.com with our workflow. We are now properly integrated with our own database for logging reports, and have automated a lot of actions to speed up our work. The actual reporting part seen by non-members hasn’t changed much (see here), but the back end processing of reports is now much, much smoother.
Special thanks to the @steemcleaners crew for their hard work, as well as our hired devs -- the project can’t exist without all of them!
We’ve got a bunch of future plans in the pipeline (such as improving our ‘blacklist’ or ‘bad-actor’ lists, and enabling others to query these lists via API), so stay tuned for more progress on this front.
2 - Cheetah Updates
Cheetah has always required maintenance and updates, and these past few months have been no different. There has been a recurrent issue with non-english content -- let’s just say she’s been, uh, rather lonely, and linking to some interesting websites. While possibly not completely fixed, I mostly have a wrangle on stopping it from occurring. If you find any @cheetah comment with completely unrelated content, please report it to someone on the steemcleaners team in our discord. All negative examples help me improve her accuracy!
Fun fact, did you know the actual false positive rate recently is about 1 per 1000, or in other words, she is ~99.9% accurate?
3 - Guard Updates
While we previously highlighted the launch of @guard in our joint witness update on @steemcleaners, I figured I’d add in a bit more info here about updates since release. As time sensitivity for addressing phishing is critical to prevent the spread of any attack, I have focused a lot of effort on performance. The code has been drastically improved since the announcement, with the average latency being now no more than one block. That’s right -- if there’s a phishing comment, @guard will be able to respond basically immediately!
There were also a lot more ‘under the hood’ updates that made this possible, including things like asynchronous and parallel handling, and dynamic caching, but I won't bore you with the details.
4 - How Vote Incentivization Degrades DPoS.
I specifically want to highlight this post. If you’re reading this update but haven’t read my previous post, I encourage you to go check it out! I formally looked at would happen if voters prioritized their own financial greed over security in DPoS, and I showed how it degrades the entire structure of the system.
I think it’s an important post for fellow witnesses here on Steem to read, since the security of our system should be our primary concern.
5 - Back End & Library Updates
Something you may not know is that a lot of the abuse-related bots on Steem are linked into code that I wrote and continue to maintain, and is used by far more than just @guard and @cheetah. Most of my recent updates to this code are more ‘back end’ stuff, so again I won’t bore you with too many details. Mostly, I’ve been making a bunch of refactoring changes, specifically in preparation for Appbase. I’ve been running a secondary private api node and testing out unstable Appbase changes, for my hopefully reasonable goal of "when it comes out, make sure everything won’t be broken."
6 - Real life
Holy shit taxes. Hoooooly shit taxes.
As it turns out, when tax season came around I was woefully unprepared. It was time to start taking everything seriously, and I ended up getting myself a lawyer, an accountant, a bookkeeper, and more. The added complexities of income and capital gains rules and guidelines (and lack thereof) for cryptocurrencies here in Canada made the whole thing a nightmare, especially regarding the income and expenses of my witness (another fun fact: I likely have the largest operating expenses out of any witness here on Steem. Cheetah, for example, had a peak use of about $300 per day last year.). Fortunately, I have learned a lot from this experience, and next year should not be nearly as complex.
Some other fun stuff with my real life:
- Work on my Ph.D. continues, with some progress towards a new publication. I am starting to see the light at the end of the tunnel, and now I really can’t wait until I can be fully focused on blockchain projects.
- I recently moved, and started a new internship for the summer. Over the past few years I’ve been spending my summers at big name tech companies in research divisions, and this year is no different.
- Finally, I joined up with @jesta for @greymass, which you can read more about here, and in @jesta's latest update here. I’ve been wanting to formalize my plans post-Ph.D., and my foray into full-time blockchain, towards something more ‘real.’ I think partnering with someone as amazing as @jesta and building an entrepreneurial/startup-style team together for our future blockchain projects will be an amazing way to do it!