Author Topic: We should have two types of "delegates"  (Read 3263 times)

0 Members and 1 Guest are viewing this topic.

Offline Ander

  • Hero Member
  • *****
  • Posts: 3506
    • View Profile
  • BitShares: Ander
This has been discussed ad nauseum. Yes, delegate/worker distinction needs to be added. It is a low priority using delegated as a proxy for workers is good enough for now.

Agreed.

Also, I think that by the time every other priority item i taken care of, and we are ready to work on this, it will already have been solved by the marketplace and wont be needed any more.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline arhag

  • Hero Member
  • *****
  • Posts: 1214
    • View Profile
    • My posts on Steem
  • BitShares: arhag
  • GitHub: arhag
If someone is being paid from my delegate's revenue stream and the community wants me to cut off their paycheck and I don't I get fired.

And how do you know the desires of the stakeholders? This is the crucial point which is why I think that eventually workers will need to be a separate concept within the blockchain different from delegates. Let's say you are paying five workers with your delegate. And say some stakeholders are upset with one of those workers but other stakeholders like the worker. How do you decide whether to stop paying that person or not (or maybe to lower their pay)? If you make the wrong decision, the only option stakeholders have is to (reluctantly) vote you out and also kill the funding of the other four workers they liked (most likely only temporarily until those four workers can get on the payroll of another delegate, but that is still an inconvenience they shouldn't have to go through).

These decisions should be more fine-grained. Off-chain voting solutions can really help here. A poll could be created about a proposal to fire that one worker but keep the other four. If enough (based on some percentage threshold of all stake or of just the stake voting for the delegate) approve of that proposal, the delegate will then know what to do (or else they will be voted out). But ideally, this mechanism would exist on the blockchain directly so we wouldn't need the delegate to act as a middleman managing the payroll for other workers since that is an easy task that can be done autonomously by the blockchain and because it simplifies the decisions that voters need to make when voting for the best set of block producers.
« Last Edit: December 01, 2014, 05:05:01 am by arhag »

Offline Riverhead

With the current value of BTS it's tough to distinguish between IT and Worker delegates. I run a 100% delegate for which 95% goes to Bytemaster. So we have one delegate slot for one employee position. Clearly 101 slots are not enough. However once 101 slots becomes an issue (because BTS is in lunar orbit) a person willing to run the IT side of a delegate can pay a number of people with 99% of revenue while keeping 1% for operations.

If we go the route of anyone who wants to get paid by the blockchain needs a delegate we'll quickly run out of slots.

To address teenagecheese's point about IT managing staff: I think it's important to note that the IT side of running a delegate is just that. The managing can still be done by the community. If someone is being paid from my delegate's revenue stream and the community wants me to cut off their paycheck and I don't I get fired. No one works for me. I work for the community and can be fired like any other IT employee.

Offline toast

  • Hero Member
  • *****
  • Posts: 4001
    • View Profile
  • BitShares: nikolai
It is hard to predict what our priorities will be 6 months from now, and hard to predict how well delegates will continue to be able to serve as workers. There are some scenarios where the priority might quickly increase: for example, if there are many more qualified workers than we need delegates, or if delegates encounter legal problems that simple workers don't.
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 arhag

  • Hero Member
  • *****
  • Posts: 1214
    • View Profile
    • My posts on Steem
  • BitShares: arhag
  • GitHub: arhag
This has been discussed ad nauseum. Yes, delegate/worker distinction needs to be added. It is a low priority using delegated as a proxy for workers is good enough for now.

I totally agree that it is low priority and that using delegates as a proxy for workers is good enough for now. But I think the statement "Yes, delegate/worker distinction needs to be added" is significant. I only remember you casually saying something to that effect once before, and also I have never heard bytemaster say that a separate worker system on the blockchain is in the future plans. So are you only speaking for yourself, or does the dev team have plans to eventually address this issue after the many higher priority features are first tackled? Also if there are concrete plans, would the target for those new features be for the mandatory upgrade six months after the version 1.0 release?

Offline teenagecheese

  • Full Member
  • ***
  • Posts: 134
    • View Profile
OK. Sounds reasonable to me. Thanks for the response.

Offline toast

  • Hero Member
  • *****
  • Posts: 4001
    • View Profile
  • BitShares: nikolai
This has been discussed ad nauseum. Yes, delegate/worker distinction needs to be added. It is a low priority using delegated as a proxy for workers is good enough for now.

Sent from my SCH-I535 using Tapatalk

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 joele

  • Sr. Member
  • ****
  • Posts: 467
    • View Profile
The Devs knew about this, I think there still no formula yet how to implement this.

Offline arhag

  • Hero Member
  • *****
  • Posts: 1214
    • View Profile
    • My posts on Steem
  • BitShares: arhag
  • GitHub: arhag
There's a shortage of attention, and asking people to vote on 101 positions is already significant.  The delegates actually running the network should be voted out if they aren't trustworthy anyway, so why is it a problem for them to handle payment to non-technical contributors?

I think it would be easier for the voters if they had straightforward proposals that they could approve or disapprove which did things like hiring a worker at a pay rate of X BitUSD, or firing a worker. Approving up to 110 delegates with varying pay rate percentages that give them varying value of money depending on the price of BTS, making sure they burn the appropriate amount, making sure they pay the worker the delegate is representing, judging the delegates on the combined metric of their performance as a worker (e.g. are they good at marketing or developing) as well as their performance as a block producer (e.g. are they creating blocks on time, are they publishing price feeds) is what makes voting extra confusing for stakeholders in my opinion. If we separate out the roles, I think voting would be easier.

Let me give you an example. Toast is awesome, but for some reason he is still not publish price feeds (why is that toast?). If I was judging him solely on being a block producer, I might want to vote him out for not publishing price feeds. But because I want him paid to keep develop awesome software for BitShares, I am willing to tolerate the fact that he isn't publishing price feeds.

Let's take another (hypothetical) example. Imagine a scenario where all of the best people to be paid by the blockchain to work on improving the DAC happened to live in the same country, say the US. I am not comfortable with all of the delegates being from a single jurisdiction. So do I compromise the worker performance for the sake of decentralization, or do I compromise decentralization of the blockchain for the sake of picking the ideal people to work on improving the DAC?

So in my opinion the role of the delegates should at most be to produce blocks, provide price feeds (although ideally I would separate out this role as well), and put binding proposals up on the blockchain for a vote by the stakeholders. The last requirement would be a new one which allows the blockchain to adapt (hire/fire workers, change salaries, change other parameters in the blockchain) with enough support by the stakeholders (the definition of enough would depend on the actual topic the proposal is about). The delegates would still use other means (off-chain polls/voting with BTS stake, unofficial polls and other discussion on forums) to decide which proposals the community might be interested in. The delegates would have no power alone to pass the proposal since it would only be ratified if the quorum of stakeholder approval was reached. They would merely act as the method (and I suppose filter / check & balance) to bring the binding proposals into the blockchain to be either approved or disapproved by the stakeholders.
« Last Edit: November 30, 2014, 11:24:52 pm by arhag »

Offline teenagecheese

  • Full Member
  • ***
  • Posts: 134
    • View Profile
It's a problem because then they have to deal with setting up and handling paying other people to do work. You don't ask your I.T. guy to manage your other staff do you?

It could be expanded to multiple people per "employee" also. When you hire a marketing firm to do marketing for your company, you hire them directly and they have their own employees which they manage. This could work the same way. The bitshares bockchain hires a marketing team which is voted for in the same way current delegates are hired. They then manage their employees. Why should they be involved with block validation at all? That is completely unrelated to their duties.

You say there is already too many people to vote for and too much to think about. I agree, a direct democracy voting system is stupid and shareholders should never be expected to do all that work. I believe a solution to that is being worked right now however, as has been discussed, with the development of some sort of delegated slate voting system.

Sticking with the current system is trying to make the blockchain do something it wasn't designed to do. It can work, but it is not optimal because it was not originally inteded to be able to hire and pay people other than traditional delegates. The scope of how what bitshares can do has changed, and so should how it functions.

Offline Troglodactyl

  • Hero Member
  • *****
  • Posts: 960
    • View Profile
It's a pretty minimal use of time to perform the delegate functions, though. And this will be even less once there is a client that doesn't need all these updates. That doesn't take away from the other things these people are spending their time doing.

Maybe right now it is minimal, but as this network grows it's going to be a serious commitment. Think VISA server center. Regardless, I see no reason not to do it, and that is what I am really looking for.

Is there any reason, besides the time it takes to implement in code, not to do this?

There's a shortage of attention, and asking people to vote on 101 positions is already significant.  The delegates actually running the network should be voted out if they aren't trustworthy anyway, so why is it a problem for them to handle payment to non-technical contributors?

Offline teenagecheese

  • Full Member
  • ***
  • Posts: 134
    • View Profile
It's a pretty minimal use of time to perform the delegate functions, though. And this will be even less once there is a client that doesn't need all these updates. That doesn't take away from the other things these people are spending their time doing.

Maybe right now it is minimal, but as this network grows it's going to be a serious commitment. Think VISA server center. Regardless, I see no reason not to do it, and that is what I am really looking for.

Is there any reason, besides the time it takes to implement in code, not to do this?

Offline donkeypong

  • Hero Member
  • *****
  • Posts: 2329
    • View Profile
It's a pretty minimal use of time to perform the delegate functions, though. And this will be even less once there is a client that doesn't need all these updates. That doesn't take away from the other things these people are spending their time doing. 

Offline teenagecheese

  • Full Member
  • ***
  • Posts: 134
    • View Profile
I feel like you are not understanding what I am suggesting.

The function of another type of delegate would to be able to do anything else that is required other than validating the blocks. I chose marketing as an example and my point is that it is inefficient and unnecessary for a marketer to have to go through the process of partnering with someone who can, or learning how to validate blocks and maintain a server, just to be a paid marketer.

This other type of delegate, who I am calling an employee for now, would be paid by dilution or transaction fees, same as current delegates.

My point even holds true for devs who are currently being paid (or campaigning to be paid) by the blockchain. Even though toast, for example, has the technical ability to run a delegate server, even he should not be required to validate the blocks in order to be paid for his development services. It is an unnecessary distraction and waist of his extremely valuable time.  It does not make sense.

Offline donkeypong

  • Hero Member
  • *****
  • Posts: 2329
    • View Profile
BitShares is decentralized. There are no officers, no managers, no employees. The only institution that exists is the delegate, and the delegate performs the critical function of validating the blocks. If there were to be another "type" of delegate, what function would that kind of person perform? Who would pay him/her? The only way to work in this system is to either become a delegate or work for one. Soon, the delegates will be making plenty of money and will be able to hire their own employees and contractors. This is where I see the opportunity arising for marketing people who do not want to be delegates themselves. However, if you are a marketing person and wish to become a delegate, I'm told that even some non-technical people have figured out how to run this delegate thing. Check out the BitShares wiki, which has some good directions. Another option would be to partner with someone who can run the technical aspects of being a delegate for a cut of 5% or 10%, etc., while you keep/spend/invest the rest and focus on building the system, adding value for the BitShares community. The final kind of opportunity in this system would be to create some useful third-party application or service that you can provide to the BitShares community for a price.
« Last Edit: November 30, 2014, 07:37:53 pm by donkeypong »