Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement missed block store (or completely remove them as a metric?) #2254

Closed
faustbrian opened this issue Mar 18, 2019 · 8 comments
Closed
Assignees

Comments

@faustbrian
Copy link
Contributor

faustbrian commented Mar 18, 2019

Is your feature request related to a problem? Please describe.
In 2.3 we drop the wallets table from the database as we haven't been using it since the release of 2.0 in November 2018 which means we no longer store missed and produced blocks. This results skewed missed blocks and productivity via public API.

Describe the solution you'd like
Basically something like the state storage in core-blockchain but for missed blocks. We could keep the data in-memory and then dump it on shutdown with something like https://github.com/typicode/lowdb as the size of the data would be very small.

Describe alternatives you've considered

  1. Keeping the wallets table, which is irrational as missed blocks and productivity are just arbitrary values without any real meaning or use for consensus.
  2. Completely removing missed blocks and productivity because as mentioned before they are just arbitrary values without any use for consensus.
@dated
Copy link
Contributor

dated commented Mar 18, 2019

From alessio / fun:

I would personally favour the 2nd proposed alternative. As noted in the issue, they are arbitrary and meaningless numbers that play no role in consensus but what's more, they are a psychological DDoS risk. By that, I mean someone may be incentivised to purposely try targeting highly productive delegates just to sabotage their statistics and productivity rankings. I run the top two most productive delegates on mainnet and I am constantly paranoid that someone will try attacking my nodes purely because of that, especially because actually doing so is really easy, so I would welcome their removal to take the target off of my back. Moreover if there is a network outage or bugs in the core that result in missed blocks then it's not really fair for a delegate to take a hit in that regard either as it makes them look like bad operators when it's not their fault, so all in all I would be in favour of the second alternative in the issue to scrap missed blocks and productivity counters altogether. I hope you'll seriously consider it.

@faustbrian
Copy link
Contributor Author

Agree with all of that, pretty much my initial thoughts when I made plans to remove the wallets table.

Downtimes caused by bugs or attacks are not the fault of a node maintainer and especially from v1 days some people might look like bad maintainers while it was simply software bugs that caused the downtimes.

If more people share that opinion I will remove the relics of all productivity related code.

@dated
Copy link
Contributor

dated commented Mar 18, 2019

In favour of removing here 👋

@samharperpittam
Copy link

I'm in agreement here too

@roks0n
Copy link

roks0n commented Mar 18, 2019

+1 for removing

@moazzamak
Copy link

+1, should be removed

@faustbrian
Copy link
Contributor Author

Resolved by #2257

@geopsllc
Copy link

I still think we need some kind of metric of how reliable a delegate is. Might not be that applicable to ARK atm but it's very handy for forks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants