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

ECBP-1076: Mining algorithm change process #187

Merged
merged 4 commits into from
Nov 17, 2019
Merged

ECBP-1076: Mining algorithm change process #187

merged 4 commits into from
Nov 17, 2019

Conversation

soc1c
Copy link
Contributor

@soc1c soc1c commented Nov 16, 2019

This meta document is agnostic to any mining algorithm. Its sole purpose is specifying a process how to openly determine and select a mining algorithm for Ethereum Classic.

ref #174

@bobsummerwill
Copy link
Member

bobsummerwill commented Nov 16, 2019

My primary objection to this process as stated is that it puts the decision-making on change of mining algorithm purely in the hands of the miners.

They are not the only stakeholders and should not be the ones making that decision. Yes, miners need their voice, but other stakeholders need their voice too.

Miners will vote in their own interests, which do not necessarily coincide with the needs of the network. Gaslimit voting for ETH1 is a primary example of this, where gaslimit has been voted beyond the limits of the client software to cope - resulting is massive centralization.

There is no counter-balance there, and there is no counter-balance here.

@soc1c
Copy link
Contributor Author

soc1c commented Nov 16, 2019

this is a draft. please add as many steps to the process as you wish

@phyro
Copy link
Member

phyro commented Nov 16, 2019

I agree with @bobsummerwill . This kind of voting/signaling has the same incentive flaw as the DAO carbon vote. Miners are incentivized to optimize for themselves in a similar way that the DAO token holders were incentivized to bail themselves out.
The nice thing about this is that it is automated though. I don't know of any better automated way tbh.

@soc1c
Copy link
Contributor Author

soc1c commented Nov 16, 2019

I will champion this proposal unless you come up with a better idea. And I am open for suggestions or adding additional signals.

Nobody wants to spend tens of hours on calls.

_specs/ecip-10746.md Outdated Show resolved Hide resolved
@sorpaas
Copy link
Contributor

sorpaas commented Nov 16, 2019

ECBP-1076 is basically MINERVOTE. But TBH, if we're going to the route of letting miners decide PoW algorithm change, then I'd suggest we do something more sophisticated, such as 27-MINERVOTE, rather than ad hoc process that still involves human factors. https://specs.that.world/27-minervote/

If you are a miner, I would guess the most important thing you want to review are:

  • Voting range: in ECBP-1076 this is unspecified (?). In 27-MINERVOTE this is a known recurrence period, usually several weeks to a month.
  • Activation time: in ECBP-1076 this is 6 months (!). In 27-MINERVOTE this is again, usually several weeks to a month.
  • Threshold: in ECBP-1076 this is 70%, meaning there may be still 30% of the miners against a particular algorithm change. In 27-MINERVOTE we don't have a fixed number, but for things controversial like this we may want a higher threshold, such as 90%.

@soc1c
Copy link
Contributor Author

soc1c commented Nov 16, 2019

Thanks for the feedback.

  • The voting range is indefinite. Any block that reachs the threshold should be considered as threshold block. Happy to talk about a sensible range though, I just cannot imagine any, yet.
  • It's six months because the change is substantial and we need all clients to implement it. You cannot switch to Keccak256 in a couple of weeks.
  • It makes sense to bump this to 90% if it appears to be controversial. However, this would mean that Ethash ASIC producers only need 10% of the ETC hashrate to ensure a change will never happen. It might be sensible to go with 70%.

@sorpaas sorpaas changed the title ecbp-1076: mining algorithm change process ECBP-1076: Mining algorithm change process Nov 16, 2019
@YazzyYaz YazzyYaz merged commit 889ada9 into master Nov 17, 2019
@YazzyYaz YazzyYaz deleted the s1-ecbp-1076 branch November 17, 2019 15:43
This meta document is agnostic to any mining algorithm. Its sole purpose is specifying a process how to openly determine and select a mining algorithm for Ethereum Classic.

### Motivation
The decision to change the Ethereum Classic mining algorithm - or to keep it as is - is not an easy one to make. It should be done by broad consensus with all stakeholders involved - miners, investors, application and core developers, and anyone else who feels having a stake in ETC. This meta document proposes a process of how to facilitate the potential change of the mining algorithm and parameters.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and anyone else who feels having a stake in ETC
Should this be?
and anyone else who feels they have a stake in ETC

- `08` (`0x30 0x38`): reject ECIP-1047 client defaults, explicitly supporting the 8 million gas block gas limit defaults
- `99` (`0x39 0x39`): any other number between `00` and `99` suggests a competing default block gas limit

In addition to the numeric vote on the gas limit with the extra data field, mining nodes are encouraged to utilized block gas target limit voting with the suitable configuration flags for their mining nodes.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are encouraged to utilized
Should be ?
are encouraged to utilize

Eventually, the community has to decide on one.

### Process
The following process facilitates all stakeholders in various stages.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The following process facilitates all stakeholders in various stages.
The following process facilitates all stakeholders in various stages, with "Tech Stage" and the "Miner Stage" to occur in parallel:


This stage is finished once all proposals are either in "Last Call," "Withdrawn," or "Rejected" state.

2. _"Miner Stage."_ Solo miners, mining farms, and mining pools can signal support by adjusting their mining node to signal in favor of one of the proposals that was promoted to "Last Call" state in the previous stage. Details on the signaling can be found in the subsequent section.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
2. _"Miner Stage."_ Solo miners, mining farms, and mining pools can signal support by adjusting their mining node to signal in favor of one of the proposals that was promoted to "Last Call" state in the previous stage. Details on the signaling can be found in the subsequent section.
2. _"Miner Stage."_ Solo miners, mining farms, and mining pools can signal support by adjusting their mining node to signal in favor of one of the proposals specified here. Details on the signaling can be found in the subsequent section.

@soc1c
Copy link
Contributor Author

soc1c commented Nov 21, 2019

@zmitton can you review #194 instead?

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

Successfully merging this pull request may close these issues.

8 participants