Comments (21)
No one is rushing to make changes, we are preparing patches early so we have time to test and peer review proposed solutions.
There is no reason currently to implement the defusal until we need to, but we should have something ready when that moment arrives.
from go-ethereum.
Thank you for opening the topic on this subject.
In my opinion, I think we should try to use this opportunity to update anything we need updated in the protocol. To begin we would need a base patch that can be tested. If the base patch proves itself, then people can begin submitting proposals built on top of the base patch to defuse the bomb.
I need more time to review the code to determine if this is the change needed but I encourage others to begin reviewing this proposed fix and if it is not adequate make counter proposals. Once we can agree on a base patch we can move forward from there.
from go-ethereum.
I think that we shouldn't rush to make changes like this. Lots of people might be switching between the two chains, including miners, payment processors. Any change which requires all full nodes to update should be delayed until the dust has settled. Anything else will encourage FUD about incompatibility and lack of direction.
from go-ethereum.
@rawodb I accidentally edited your comment, I'm not sure why I have that ability.
The change will not fork the 'blockchain'.
A very quick skim indicated to me that you may be correct, I will have to look further into the topic but it appears from skimming what you linked we may be able solve the defusal with a soft fork, which in my opinion should shift the priority, we may wish to resolve this sooner if this is possible.
To confirm this we need to look wherever incoming blocks are being validated.
from go-ethereum.
@arvicco I'm confident we will have a solution coded and tested before it affects miners, I encourage everyone to familiarize themselves with the situation so we can increase the number of people looking at this problem.
After it is ready, we will need to coordinate the best way to deploy it. I can say more once I have more information after I investigate it enough to put together a proposal myself.
from go-ethereum.
edit I don't understand why I have the ability to edit this comment. I apologize for accidentally overwriting your message.
from go-ethereum.
Thanks @rawodb , I agree with @whatisgravity.
It will be the right opportunity to change few things about ETC.
from go-ethereum.
@rawodb If you have no already, consider volunteering with the community development initiative. https://github.com/ethereumproject/Volunteer
from go-ethereum.
So far we have one proposal:
#12
from go-ethereum.
If our chain is not able to attract majority of hash power, we will feel the effect of diff bomb much sooner than the dominant chain. Even though there is no rush right now, my understanding is that things become difficult for us by the end of this year. So disarming diff bomb should not be delayed too much. Please keep in mind that we cannot expect EF devs helping us with this change, and the change needs to be synchronous across a range of supported clients.
from go-ethereum.
I've not looked closely at this, but it's another project's defusing.
Definitely needs testing in a simulator type environment.
from go-ethereum.
If Ethereum Classic wont go to POS then miners can mine at higher difficulty(eg with exp bomb) so users(non-mining nodes) will have time to switch to version without the bomb. Otherwise it will lead to chain-fork which is undesirable
from go-ethereum.
Technically this is a hard fork. Miners which adopt the change will sooner or later create a block which will be considered invalid by miners who have not updated (because its difficulty will be considered too low). Someone who does not update will not by default adopt this blockchain (the definition of a successful soft fork).
from go-ethereum.
I agree with @jwg4 and his explanation.
This is a protocol change that should be implemented across all clients in the same way (I am EthereumJ dev). I understand that this might be simple "remove-diff-bomb-code" change, but we need to plan it in a generic way at the protocol-level. I think it is too early for submitting code proposals. However, it's good to know how big the change will be, while planning.
from go-ethereum.
In my opinion the right way to do this is with some form of 'voting' among miners for support for the switch. Not because it is controversial, but because the risk of breaking compatibility is too serious.
from go-ethereum.
We should also consider the ramifications of a scenario where a non-negligible portion of miners and clients do not update to this change, and list all the issues that could arise, and have contingency plans.
from go-ethereum.
If you guys are interested I can set up a voting poll on my pool https://etc.suprnova.cc so that miners can actually vote about the removal of the bomb. I for myself am high encouraging the removal.
from go-ethereum.
If I understand, some people are proposing putting a new "difficulty bomb". I recommend we simply just remove this, imposing arbitrary deadlines does not have any obvious advantages from my perspective.
from go-ethereum.
I created a repo for investigating and testing bomb strategies. The main argument for keeping the exponential diff adjustment is that we are forced to have a discussion with the miners on the topic of PoW vs some other system. If the threat of mutually destruction is removed, there is no incentive for miners to ever move to a system with less payout than PoW gives them.
from go-ethereum.
@realcodywburns: Good points, there are positives and negatives to each action. We should carefully consider them.
Are you familiar with writing tests? Writing a tests for this problem would be incredibly helpful first step.
Once I finish the second release of go-ethereum and finish a first official release of Mist I will jump onto the difficulty bomb situation.
Thanks for taking the initiative on this. Do you think we should just adopt the rearming strategy? How long do you think we should put it off?
from go-ethereum.
from go-ethereum.
Related Issues (20)
- sync problem , it is so slow ..
- Stuck on syncing mainnet HOT 2
- P2P Kad NodeTable pollution vulnerability using p2p neighbor protocol
- Coin faucet on kotti testnet HOT 2
- use of internal package not allowed HOT 1
- Building through Makefile fails HOT 1
- 'make' fails HOT 4
- 'make test' fails - core: not enough arguments in call to set.New HOT 3
- Repo cleanup HOT 3
- Feature request: Submit Block RPC HOT 1
- What is the height of EIP658 hard fork on the main network and morden test network? HOT 4
- Mined blocks rolled back after quit
- getTransactionReceipt's "status" field problem HOT 1
- geth-classic-v6.0.8-linux.tar.gz archive seems to be incorrectly compressed HOT 2
- cannot sync data HOT 1
- Etc are not synchronized HOT 3
- make geth error
- make geth v6.0.9 error HOT 1
- Hash geth-classic-v6.0.9-linux.tar.gz is different with .sha256 HOT 1
- Windows builds? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from go-ethereum.