Author Topic: PROPOSAL: Fair and Distributed Delegates  (Read 6609 times)

0 Members and 1 Guest are viewing this topic.

Offline bdnoble

  • Full Member
  • ***
  • Posts: 116
    • View Profile
    • Home Page
Ok. How about this:

Self correcting system. Based on a delegate % of missed blocks, you let in a random potential candidate for a block.

So a delegate drops down to 80% of reliability. In the future with a 20% chance you give their block to a delegate waiting in line.

That will motivate delegates to be 100% and also self correct if they are down for some reason.

That is a little better. But:
Problem 1: 80% reliability doesn't account for last 100 blocks missed of 100000 which would work out to 99.9% reliable but still bad.
Problem 2: You can't guarantee that the new delegates will be able to produce blocks so it could be bad to let in new delegates all the time.

It sounds to me like you just want the ability to punish delegates for missing blocks. Negative voting?!  ;D Plus automatic voting actually.

:)

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile

I'm trying to make sure that if a delegate has 5% of the votes, they get to produce 5% of the blocks. Some services run a good cause and pay for a node regardless this can help them offset that cost even if it doesn't fully pay it.

I understand the concern of running 1000 nodes instead of 100. But come one $50k/mo is nothing when the network grows.

Also as far as voting goes these numbers should be votes by the community and not hard coded let the market decide how many delegates we need.

No no no, that just can't be. All of the potentially good delegates with 5% will be right alongside the crappy/evil delegates that were good long enough to get more votes and havent gone back down to 0% yet. It may be okay to adjust the number of delegates but that needs to not allow for all potential delegates to get a chance. Bad idea! And it also can't screw over the really awesome delegates with 90% of the vote but can randomly not get to produce blocks and not be able to predict the income that they need in order to be such an awesome delegate.

To be honest if I'm a delegate and my rate starts going down I would rather not have bad reliability % and be paused and my slot given to someone else temporarily until I say it's ok to go again.

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
Ok. How about this:

Self correcting system. Based on a delegate % of missed blocks, you let in a random potential candidate for a block.

So a delegate drops down to 80% of reliability. In the future with a 20% chance you give their block to a delegate waiting in line.

That will motivate delegates to be 100% and also self correct if they are down for some reason.

Offline bdnoble

  • Full Member
  • ***
  • Posts: 116
    • View Profile
    • Home Page
I'm trying to make sure that if a delegate has 5% of the votes, they get to produce 5% of the blocks. Some services run a good cause and pay for a node regardless this can help them offset that cost even if it doesn't fully pay it.

I understand the concern of running 1000 nodes instead of 100. But come one $50k/mo is nothing when the network grows.

Also as far as voting goes these numbers should be votes by the community and not hard coded let the market decide how many delegates we need.

No no no, that just can't be. All of the potentially good delegates with 5% will be right alongside the crappy/evil delegates that were good long enough to get more votes and havent gone back down to 0% yet. It may be okay to adjust the number of delegates but that needs to not allow for all potential delegates to get a chance. Bad idea! And it also can't screw over the really awesome delegates with 90% of the vote but can randomly not get to produce blocks and not be able to predict the income that they need in order to be such an awesome delegate.
:)

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
I'm trying to make sure that if a delegate has 5% of the votes, they get to produce 5% of the blocks. Some services run a good cause and pay for a node regardless this can help them offset that cost even if it doesn't fully pay it.

I understand the concern of running 1000 nodes instead of 100. But come one $50k/mo is nothing when the network grows.

Also as far as voting goes these numbers should be votes by the community and not hard coded let the market decide how many delegates we need.

Offline toast

  • Hero Member
  • *****
  • Posts: 4001
    • View Profile
  • BitShares: nikolai
He doesn't have to validate blocks he missed because he won't be included in the batch selection if he has marked himself as I'm no longer running.

In fact you kinda already have that. If I edit my account could I remove the delegate portion? If yes then you have what I'm talking about. I'm not sure if one can make themselves not a delegate and then later reregister. And if they lose the votes in the process.

To check that block N is valid you have to check that block N-1 is valid. So if you miss X blocks you have to validate all X before you validate "your" block. Right now you can un-register yourself as a delegate and also right now every single client is a full validator. This is a discussion about scale in the long term when you can only have a small number of full validators, like how bitcoin's full nodes number in the hundreds at less than 10 trx/s.

This is unless you do something like embed "trusted checkpoints" signed by enough delegates as database diffs into the blockchain directly.
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
He doesn't have to validate blocks he missed because he won't be included in the batch selection if he has marked himself as I'm no longer running.

In fact you kinda already have that. If I edit my account could I remove the delegate portion? If yes then you have what I'm talking about. I'm not sure if one can make themselves not a delegate and then later reregister. And if they lose the votes in the process.

Offline bdnoble

  • Full Member
  • ***
  • Posts: 116
    • View Profile
    • Home Page
Sorry but this is a terrible idea. Unless I'm mistaken what you are proposing would fluctuate all the delegates constantly. You are never guaranteed to stay a delegate and therefore have no incentive to try hard to be a good one.

Ultimately if what you want is just to give more people a chance to try to be a delegate then what if we stop trying to say that voting is broken and start giving people a chance to prove themselves? There could be a "delegate proving grounds" test net that is a clone of the current release so that other people could have a chance to show that they are good at producing blocks. Voting wouldn't be as critical because the shares wouldn't have actual value. Oh wait... That sounds a lot like the test net that we already have!

OR

We can just live with the fact that voting is voting and just give people a good place to promote themselves. I REALLY THINK THIS WOULD SOLVE ALL THE PROBLEMS. People who deserve to be delegates should be able to explain exactly why they deserve to be a delegate. Not just "plz plz plz vote for me! ;P " The problem is that we need to have 1 place where everyone knows and can easily find, where potential delegates can promote themselves. It really should be a part of the main website for BitShares.org .  And what would be REALLY awesome would be if there could be something as simple as a Facebook thumbs up that masses could click on if they like what they see. And it would automatically sync up to the thumbs up link in the delegate page of the GUI wallet. Heck it could even set up a transaction of all your BTSX to yourself and ask you to verify that. Even better would be some kind of HTML code link that could be added to websites or forums that works a lot like the Facebook thumbs up.

All people want is a chance. And everyone wants to see the best delegates get the job. So we just need to let people (active delegates or not) get a legitimate chance to prove themselves and I think all these "voting sux!" problems will go away.

Thoughts on that? I'll probably repost this in it's own thread.


Sent from my iPhone using Tapatalk
:)

Offline liondani

  • Hero Member
  • *****
  • Posts: 3737
  • Inch by inch, play by play
    • View Profile
    • My detailed info
  • BitShares: liondani
  • GitHub: liondani
the system could decrease pay rate to zero for  delegates that choose to "pause" block production and switch back to the original pay rate after they signed the number  of blocks  needed to "pay" the standby delegate that was chosen to sign the "lost" blocks...

PS   so when a delegate "pause" block production because of technical problems for example (or for the opportunity for a  server maintenance),    the network would not miss that blocks, plus we would give the chance to more "players" to prove their abilities... 
« Last Edit: July 22, 2014, 07:23:11 pm by liondani »

Offline toast

  • Hero Member
  • *****
  • Posts: 4001
    • View Profile
  • BitShares: nikolai
It's a flag that says "include me in the considered delegates" only needs to be switched when a delegate WANTS to be considered. Say my servers are down instead of missing blocks and screwing up my stats - like it happened to me I could turn myself off for awhile

He has to come back online and validate all the blocks he missed and so his costs are the same. In the end the cost comes from validating transactions and not making 1 signature. A full validating node is a full validating node no matter how you amortize it
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
It's a flag that says "include me in the considered delegates" only needs to be switched when a delegate WANTS to be considered. Say my servers are down instead of missing blocks and screwing up my stats - like it happened to me I could turn myself off for awhile

Offline bytemaster

Delegate pays a fee which gets destroyed to toggle online presence or in fact set any attribute on their user.

Ok, I suppose there is that option, it would cost them something to maintain that status and they would have to earn it back when the produce a block which means everyone has to pay for it.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
Delegate pays a fee which gets destroyed to toggle online presence or in fact set any attribute on their user.

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile

Offline bytemaster

So implement online presence for delegates and only pick from the ones that are running.

Not viable in a blockchain.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.