Click here and have fun: http://duplibot.com/deadwitnesses/
What are witnesses?
Witnesses are the block producers on the Steem blockchain and their role is beyond important. These are the people that literally write the blocks and keep the blockchain itself online.
Steem operates on Delegated Proof of Stake (DPoS) in which all users vote to determine these witnesses, much like an election. The distinction here is that this election happens moment to moment and your votes never expire. Let me restate that for emphasis:
Your. Votes. Never. Expire.
Once you vote for a witness, that vote sticks with them until you specifically remove it. And the voting interface itself is, to put it politely, lacking. It's tough to know anything about the witnesses you vote on.
And there are a LOT of witnesses. There's even an API endpoint we can call to see how many:
At the time of this writing that returns 14,751 witnesses.
Of course, they're not all active. In fact, there are little more than 100 witnesses actively writing new blocks today.
If these witnesses become inactive, your votes still put them ahead of active witnesses as the blockchain prioritizes who will write the blocks based on our votes. If dead witnesses get a lot of votes, we are risking the stability of the blockchain itself as these producers will be ranked high enough to produce blocks, but they're not ready to write them.
To ensure the long-term stability of the Steem blockchain we need active witnesses and we need to make sure our votes are directed toward those accounts rather than others who are not ready to take on this important responsibility.
So, this is not my first project around blockchain stability. My work began first with @duplibot and most recently with @pleasestop as I focus on reducing superfluous comments and other spam that literally clogs the blockchain.
Flooding the blockchain with junk is one way to risk our stability and another is voting for inactive witnesses. That's where @deadwitnesses comes in.
While witnesses are literally my name, my focus is blockchain stability and all of my work should be viewed in that light. I want to help you easily see the inactive witnesses you vote for and make it simple to remove those votes.
I want to open a larger discussion around witness voting and ways we can support the witness community to ensure the overall stability of Steem and the underlying blockchain itself.
Many people only go to the witness page when they find a new witness to vote for. Few of us take the time to carefully review all of our witness votes and what they've all been up to lately because that's no small task. Or should I say, it was, but today it couldn't be easier.
Review your @deadwitnesses
With @duplibot and especially @pleasestop I've been writing a lot of code and I've gotten pretty comfortable working my way around the Steem blockchain. This project really made me realize how comfortable I am.
I literally came up with this idea yesterday.
Less than 24 hours later I've built this: Review your witnesses
And let's be clear, this code is SO dirty so there's probably a few hundred bugs! This is so rudamentary today and it will definitely evolve from here. It's working well enough to deploy and get your feedback so let's jump in!
It's pretty simple. Type in your user name, with or without the @ in the front, and click the 'Review' button. You can also just add it directly to the URL like this: http://duplibot.com/deadwitnesses/@deadwitnesses
Then, you'll see a list of all the witnesses you currently vote for.
For each witness you'll get details for all of the following:
- Witness: The witness you voted for
- Last Block (days ago): How many days have past since this witness last wrote a block to the blockchain
- Last Post: Date of last post to the Steem blockchain
- Last Vote: Date of last vote on the Steem blockchain
- Signing Key: A witness can disable the signing key and this notes if the witness has been directly disabled
- Remove: This is a one-click steemconnect.com link to unvote a particular witness
Things in yellow are slightly out of range and red are way beyond normal expectations. This gives you a quick, at a glance view of all your witnesses to outline some that you might want to consider unvoting.
The two key things to be aware of are the Last Block and the Signing Key. If it's been weeks or even months since a witness has produced a block, your vote would be far better off supporting active witnesses. And if the Signing Key is disabled that witness cannot produce any blocks.
Of course, this is all subjective so click on the witness name to look at recent posts and see what they've been up to lately. This is more to point out red flags and witnesses that are obviously inactive.
As I said this idea was born yesterday so I don't have a lot firmed up yet. One thing I definitely want to do is contact larger stakeholders who are voting for inactive witnesses.
What's the best way to go about that? I see a few possible approaches.
- Write a post highlighting a particular account and its votes
- Reply to a recent post or comment
- Send transfer memo spam
Writing a post throws an account right into the spotlight and many people prefer their privacy so I'm hesitant with that. I absolutely hate unsolicited transfer memos and I think that's pretty universal.
Replies are a little intrusive, but I developed a simple way to remove my comment which would minimize that some.
I'm very community driven so please share all your feedback here! What do you like, where do I fall short, what other opportunities do you see?
I hope I can spark a discussion about witnesses to raise awareness and help the entire community make the most valuable witness votes possible.
Please consider resteeming this to help me get a little more visibility and help everyone review their witness votes!