Introducing @deadwitnesses - Easily see the activity of witnesses you vote for

in #witness6 years ago (edited)

tl;dr

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:

https://api.steemjs.com/get_witness_count

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.

Introducting @deadwitnesses

logo.png

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.

1_day.png

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

review.png

Then, you'll see a list of all the witnesses you currently vote for.

results.png

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.

What's next?

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.

Resteem

Please consider resteeming this to help me get a little more visibility and help everyone review their witness votes!

Sort:  

Good job! That API thing was cool. What other stuff can you run?

Thanks! I'm using steem-js which can do most everything available on the blockchain.

This is a great tool! I've checked mine, and all my votes are still standing, but than again; I am rather picky about who I have been voting for.

It's good to be a little picky, this is no small role. Thanks for the support!

Congratulations! Your post has been selected as a daily Steemit truffle! It is listed on rank 12 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 36 SBD worth and should receive 119 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 beginning to understand how witness voting works and the roles they play. As you're probably aware, it's kind of hard for someone new to that aspect of the blockchain to evaluate candidates, this will surely help. Thanks!

As far as feedback goes, I'm not sure how hard it would be to implement, but I would certainly enjoy the ability to opt-in and receive a notice if any of my witnesses fall off the wagon. I can easily see myself forgetting to check.

Awesome, I'm glad you found this helpful.

the ability to opt-in and receive a notice if any of my witnesses fall off the wagon

This is an awesome idea I am definitely going to implement!

I really like this new tool! I had been meaning to look over my witness choices and I don't know how I would have determined their activity without this. Thanks!

A few questions, if you care to reply. :)

Could you add a counter of how many witnesses a person has voted for, as well as the total number of witnesses one could possibly vote for.

What language and library did you use on this project?

Is this, and/or your other projects Open Source?

Thanks again and best wishes!

Thanks, I'm glad you find it useful!

Each account can vote up to 30 witnesses and a total and votes remaining definitely makes sense.

I've written everything in steem-js for this, which is all javascript.

I don't have much open source yet but the Just My Tags project is pretty cool.

I am so happy that you are here, deadwitnesses! I wish you a very inspired experience here in this loving and caring community :) Enjoy the friendship!

By the way, there are several groups you as a newcomer can join. They will stay with you for your journey, helping and mentoring along the way.

@greetersguild invite link https://discord.gg/AkzNSKx
@newbieresteemday invite link https://discord.gg/2ZcAxsU

What about witnesses that use different accounts for normal activity and witness activity?

That's a great point and part of the reason why I've noted we should definitely click through to review the witness more directly.

Might be worth checking the last activity of the related accounts?

lukestokes
ats.david
Followbtcnews+crimsonclad
Steemcommunity-abh12345&paulag
Sircork+rhondak
Etc :)

Yeah, some witnesses write blocks from one account and actually post and 'do stuff' from another so I wanna find some way to show that.

I'm also thinking about how to handle proxies as well, maybe just show how your proxy is voting.

I just put together a new update to handle this. I'd appreciate any additional feedback you might have.

A neat little project. Here's my question for you:

How is this better or different than @drakos's steemian.info?

So far, I see that it tracks the Witness's social movement in terms of last vote/post activity. This is not an attack. This is a chance for the creator to explain or divulge future directions of this project.

Thanks for the support!

steemian.info just outlines all the witnesses among themselves, this shows exactly who you are voting for.

I mentioned you should definitely click through and see what the witness has been up to and use this more as a red flags indicator.

Impressive!! Great of you to create this.

Thanks so much for your support!

I like the tool - and I just unvoted @wackou as a result. H/she was my only dead/ inactive witness so I don't think I was doing too badly!

Cheers,

Karl.

I'm glad you found this useful! I hope this helps keep us all a little more aware of the status of our votes.