9 ms·
Ethereum Fork Fails on OpenEthereum
- axiosgunnar 5y agoCan somebody explain the significance? Is this related to the conflict between devs and miners where devs want to reduce the mining fees and miners responded by creating a fork?
- robinhoodexe 5y agoNo. It’s “just” a client issue, and OpenEthereum is “only” used by ~11% of the nodes. I believe the former name is Parity, which had a major bug related to frozen coins some years ago. See https://mobile.twitter.com/etherscan/status/1382662485832994816 https://mobile.twitter.com/etherscan/status/1382662485832994...
- DennisP 5y agoAlthough the frozen coins bug wasn't related to the Parity client itself. It was a smart contract multisig wallet made by the same company.
- dcolkitt 5y agoTheoretically there’s a protocol standard, and every client implementation is equal. Functionally, whatever Geth does is the actual standard because a supermajority of nodes run Geth.
- yjftsjthsd-h 5y agohttps://etherscan.io/nodetracker https://etherscan.io/nodetracker only shows 55% on geth; I wouldn't call that a super majority. EDIT: Actually, that page shows 15% on openethereum so we must be looking at different sources. Where did you get 11% on openethereum?
- fjl 5y agoThis is not true, and I can say that because I work on Geth. We take great care to ensure that all clients behave according to the specification, and Geth has had similar faults in the past.
- joosters 5y agoSurely it doesn't matter what the specification says? If the majority of the hashpower is using an implementation which deviates from the spec, then the blockchain will follow that code and not the 'correct' version. By the time the devs have fixed the bugs, it will be too late and too costly to roll back the chain and reverse all the subsequent transactions.
- capableweb 5y agoIn theory you're right, yes. If the majority of the hashpower runs a specific version with specific consensus rules, then that version of the chain would "win". But in reality, developers and others write the specification, which gets implemented in the clients and when a new version is available, the miners usually upgrade to the new version without any qualms what so ever. So in practice, the specification is what controls the network, as developers writing the clients implement things from the specification.
- joosters 5y agoI mean in terms of bugs, rather than a 'rogue' client, i.e. not a deliberate attempt to cause a chain divergence. If a 'broken' transaction gets accepted by a buggy client, and that buggy client has a majority of hash power, then that transaction is, by definition, not actually broken at all and everyone will be forced to accept it (because it will take too long to write a bug fix and re-write the blockchain history)
- splix 5y agoIn practice if an "official" client has a different interpretation of the spec it must be accepted by other clients. Like with mentioned OpenEthereum (ex. Parity) here: https://github.com/openethereum/openethereum/blob/582bca385fedb1af682e989e5bcc6b3b2cf53028/crates/ethcore/types/src/transaction/transaction.rs#L1091 https://github.com/openethereum/openethereum/blob/582bca385f...
- COGlory 5y agoNo, that was not in this fork, that one is slated for July. This fork was not contentious.
- yulaow 5y agoReading the comments seems more like a technical problem on the consensus protocol of some implementation of eth nodes (in particular openethereum and geth)
- erwan 5y agoEthereum has different client software, they must all use the same consensus rules: produce/gossip/accept transactions and blocks that follow a certain format and respect certain invariants. When that specification is updated, a hard-fork occurs. It's not a problem if all clients meet the new spec perfectly but sometimes bug happens and different clients disagree on what constitutes the canon chain. This is what happened here: the OpenEthereum client (11% of the network) has had a bug following the Berlin hard-fork (network upgrade). Nodes runnning this client are stalling at a certain block because they don't recognize the new "post-Berlin" blocks as legitimate because of a bug in the implementation.
- axiosgunnar 5y agoSo are procotol-level changes announced ahead of time with a precise date when they get into force and the clients hard code that date as a transition? Or perhaps a block number is used?
- nodja 5y agoBlock number is used.
- dogman144 5y agoSo this is basically similar to segwit or taproot failing for btc? No idea how ethereum handles these roll outs.
- zionic 5y agoNot at all. It’s like finding out Waterfox didn’t support HTTP3 well on release. Chrome and Firefox are still fine.
- bouncycastle 5y ago> Can somebody explain the significance? These were non-mining nodes, so they were not participating in consensus (block ordering). The chain did not split and nothing really happened, except cause a temporary outage of a "block explorer" website.
- vmception 5y agoIt is only related to the Parity/OpenEthereum team continuing to have distractions on things more important to them like their own blockchain projects Nobody should be using their client software
- joosters 5y agoFork = All NFT holders get another FREE copy of the nothing that they own!
- arberx 5y agoBack up and running: https://forkmon.ethdevops.io/ https://forkmon.ethdevops.io/ Might take a bit to sync
- fjl 5y agoIt's not fixed yet, the OE instance in forkmon was syncing the whole time and hasn't hit the issue yet.
- arberx 5y agoYou sure? Thought it was in a failed state earlier? I think a block recently processed on OE, that's why it's showing as good. But yeah, don't think it's fixed yet.
- fjl 5y agoThe fix is in https://github.com/openethereum/openethereum/pull/364 https://github.com/openethereum/openethereum/pull/364 Actually, it's this commit of the PR: https://github.com/openethereum/openethereum/pull/364/commits/a49cc34d1ce353b2ab7d271dad70e8d81d5f11a3 https://github.com/openethereum/openethereum/pull/364/commit...
- seibelj 5y agoMy former employer (major exchange) switched from Parity / Openethereum after the last major issue. The Parity devs gave it up when they switched to focusing on Polkadot and the community is not super committed to it. Geth is the safer choice.
- throw4738 5y agoEthereum is THE fork. Original is called Ethereum Classic.
- jcpham2 5y agoYou are getting downvoted but the internet has a very short memory. Ethereum's DAO fork and the ETC debacle is why your OG's don't support Ethereum.
- bpodgursky 5y agoAs they say, the winners write the history books (and also the blockchains)
- baobabKoodaa 5y agoNope, Ethereum was forked multiple times BEFORE that fork. So Ethereum Classic is not the "original" chain either (if by "original" you mean a chain that can be validated by running software from a time before the first fork).
- vecio 5y agoFix https://github.com/openethereum/openethereum/pull/366 https://github.com/openethereum/openethereum/pull/366
- CryptoLich 5y agoFireblocks (massive institutional settlement platform for crypto-to-crypto and crypto-to-fiat transactions (like bank-size transactions) is on openethereum too -- all the settlements are completely backed up right now and tether is going really bid
- deleted 5y ago[deleted]
- rfd4sgmk8u 5y agoSatoshi wrote in 2010: "I don't believe a second, compatible implementation of Bitcoin will ever be a good idea. So much of the design depends on all nodes getting exactly identical results in lockstep that a second implementation would be a menace to the network. The MIT license is compatible with all other licenses and commercial uses, so there is no need to rewrite it from a licensing standpoint." https://bitcointalk.org/index.php?topic=195.msg1611#msg1611 https://bitcointalk.org/index.php?topic=195.msg1611#msg1611 In ETH land, the wise guidance of Satoshi is regularly ignored.
- throwaway4good 5y agoSo much for a protocol eh ...
- capableweb 5y ago"In a different blockchain they go by different rules" yeah no shit, of course. Ethereum is not Bitcoin because Ethereum doesn't want to be Bitcoin, otherwise Ethereum wouldn't have existed in the first place. That's like complaining that GCP is not following the advice of AWS "leaders", of course they are not gonna do that, otherwise they would work together, not on two different projects... Also, no matter what Satoshi wrote in 2010, multiple implementations of Bitcoin does exist today, most of them relatively stable: https://en.bitcoin.it/wiki/Clients https://en.bitcoin.it/wiki/Clients And the integrity of the network is not harmed by multiple clients either, just harms the users of that client, not other clients so not sure what the harm is. Yes, it's difficult, but so is a lot of problems in the cryptocurrency space.
- uncletammy 5y ago> Ethereum is not Bitcoin because Ethereum doesn't want to be Bitcoin, otherwise Ethereum wouldn't have existed in the first place This isn't exactly true. Vitalik only created Ethereum because the new core devs ( Blockstream ) were actively limiting what types of things could be done with Bitcoin. They were moving away from programmable money in favor of "digital gold". Source: https://twitter.com/vitalikbuterin/status/929805462052229120?lang=en https://twitter.com/vitalikbuterin/status/929805462052229120... Here's a more detailed telling of the events by one of the Decred developers: https://old.reddit.com/r/decred/comments/6wxueo/your_best_pitch_for_decred/dmcer4d/ https://old.reddit.com/r/decred/comments/6wxueo/your_best_pi... TLDR: Ethereum actually does want to be Bitcoin but that's only because Bitcoin doesn't really want to be Bitcoin anymore. They've dumbed down their protocol. They've dumbed down their infrastructure. Hell, they've even managed to dumb down their users. Ethereum will make a fine Bitcoin.
- deleted 5y ago[deleted]
- m00dy 5y agoThe problematic block https://hash.horse/0xac324366422b3ef181a3f62efd81eee6a3a887cf1ef7ce520d8a5ddc1a210f8e https://hash.horse/0xac324366422b3ef181a3f62efd81eee6a3a887c...
- lucasnortj 5y agowho cares, cryptos are a pointless invention used only by people who have nothing sensible to do with their lives
- elwell 5y agoFix merged: https://github.com/openethereum/openethereum/pull/366#event-4600217874 https://github.com/openethereum/openethereum/pull/366#event-...
- yjftsjthsd-h 5y agoAnd 3.2.3 is now released to use that fix:)
- justinzollars 5y agowell done
- fogof 5y agoIt seems the issue was in how OpenEthereum handled access lists introduced by EIP2929/2930. They were adding built-in contract addresses to access lists in blocks before those addresses were activated.