There were repercussions felt in the development ecosystem of Ethereum (ETH) after an initial test of the forthcoming software upgrade of the platform, known as the Constantinople, failed to deliver the expected results.
The failed activation revealed unexpected problems in the code
A system-wide change initially designated to go live in 2018, the code release, which meant to introduce five improvements and after the economics of the $20 billion is probably delayed now, following a failure of the activation on the test network Robsten on Saturday, according to the statements of developers.
After the meeting of the open-source developer team of ETH last Friday, in which it was suggested that Constantinople could actually be implemented as early as November, the failed activation from Saturday revealed unexpected problems in the code. Namely, a bug has been discovered by security lead for the Ethereum Foundation Martin Holst Swende, one that caused two different iterations of the same software upgrade to run on testnet.
Although a patch to fix the identified bug was issued since then, the independent developer of ETH, named Lane Rettig, explained that investigations into the events of Constantinople testnet release are continuous.
Rettig said that they should take their time in order to understand what went wrong and how they can avoid problems like this one in the future – not just the low-level code problem, but all of the related issues, such as mining problem, communication problem over the weekend, how it was not caught by the tests, and so on. He claims that there is a lot of forensics still to be done.
Rettig also affirmed that the plans for the release of Constantinople could actually be delayed as if an upgrade produces a fork on the testnet, they would have to put the mainnet release on hold for some minimum time period.
While a set a date for implementation of Constantinople is still about to be set, the ETH community lead and founder of blockchain-based nonprofit known as Giveth, named Griff Green, set mainnet activation for some period in the next year.
Green explained that they would expect it to get delayed to 2019, the blockchain does not take holidays, but developers do. Green also added that if they were to make a wager on a prediction market, they would put their Ethereum in late January and early February.
The rollout of Constantinople to proceed on the main test network of ETH
The core developers of ETH agreed to collectively regroup this coming Friday, over a live-streamed call which is going to find them discussing plans in light of the failed test implementation.
According to the events on Saturday, the rollout of Constantinople was planned to proceed on the main test network of ETH at block number 4,230,000, but, miners failed to upgrade their software following the timed launch.
As it happened much earlier than it was expected, Schoedon said that a lot of developers did not have the availability and were not even aware of the change. Schoedon also added his takeaway from the events, saying never fork on weekends.
This proved to be a problem, as for the hard fork to progress smoothly, all participating nodes or computers which are run by miners, as well as users, needed to upgrade near-simultaneously to the same software.
Following an open call from the developers of ETH on social media, to move the test ahead, the network underwent a second chain split as a result of discrepancies in the code of Constantinople between two major ETH clients, known as Geth and Parity.
A miner that was actively contributing to the Ropsten testnet, named Brian Venture, explained that it seems like the consensus failure has been driven by some changes to the SSTORE opcode in EIP-1283 which were actually implemented differently between Parity and Geth.
One part of the upgrade of Constantinople features new code under ETH improvement proposal or EIP 1283 which is going to change the way in which smart contracts are stored on ETH, as well as reduce the cost to smart contract developers of updating stored contracts.
But, the iteration of EIP 1283 as designed in the code of Constantinople, which was released by Parity, feature refund mechanisms which caused a noticeable disagreement regarding the Ropsten block 4,230,605, as well as the cost for the deployment of this smart contract, as it was highlighted in the official notes of the core developers of ETH.
Upon the discovery of the discrepancies in the code of Constantinople, the core developers of ETH agreed to patch the code of Parity in order to align with code supported by Geth and tried another re-sync in order to correct Ropsten chain.
One part of the plan
However, some still see the failed test as a positive one for general development.
Regarding the attempted rollout of Constantinople on Ropsten on Saturday, the 14th of October, as having achieved the purpose that it had, Rettig tweeted that they broke Ropsten, but it is a testnet, and it is going to be fixed, and this is precisely the point of releasing to a testnet first. He also said that it is entertaining, exciting, as well as reassuring to see this process played our as designed.
Later, he added that he now had more confidence than ever that the right things are happening, in the correct order too, to keep the mainnet of ETH running, as well as secure.
Some other core developers also seem to agree with the sentiment which was shared by Rettig, with the security lead at the ETH Foundation writing in a public Gitter channel that this Saturday was actually a good test, adding that the temporary forked state of Ropsten has had nothing to lose any sleep over.
Alexey Akhunov, who is the core developer of ETH, also wrote in the same channel that while smooth processes are actually good for efficiency, they can instill a false sense of security, adding that the breakages make people more alert than ever.
Going ahead, the plan for all ETH developers, as the release manager of Parity Afri Schoedon explained, actually is to implement bug fixes for relevant clients, as well as bring them all together on the Geth Ropsten chain once again.
He also added that once when this is done, hopefully around Devcon, they will maintain testing Constantinople on Ropsten and finally agree on a primary network fork date.
Schoeden also affirmed that he thinks the most likely outcome is going to be a release date in 2019.
He explained that he sees January next year as a realistic fork date, but only if clients are going to be patched, all tests are prepared and passed, as well as if there are no further problems discovered on Ropsten.