Upgrade Ethereum node
BotC core tech team discovered a general issue which may affect some outgoing ETH transactions.
It's still not clear the reason why some cashouts fail.
After some investigation, we've realised the version of Ethereum node we are running is quite old, so it's necessary to upgrade it in order to do debugging on a current latest stable version.
Upgrading Ethereum node may require changes on the wallet code, so we should evaulate if the process could be tracked publicly or on our internal tools.
Update: we've decided to migrate to Geth
since it's a very mature and well developed software, and after our tests we've discovered it's a drop-in replacement for Parity
and no changes to our code are needed.
Migration checklist:
-
Ensure that API code does not use Parity-specific namespace methods -
Ensure that Wallet code does not use Parity-specific namespace methods -
Ensure that API code does not use Parity-specific response fields -
Ensure that Wallet code does not use Parity-specific response fields -
Ensure that API code does not rely on Parity-specific API responses for bad requests -
Ensure that Wallet code does not rely on Parity-specific API responses for bad requests -
Ensure that API code does not rely on Parity-specific error codes -
Ensure that Wallet code does not rely on Parity-specific error codes -
Set up Geth infrastructure -
Set up Geth software to run on a different port, in parallel with the Parity node -
Notify users about maintenance window -
On maintenance window, point the BotC API to the Geth port (change API config) and verify -
On maintenance window, import private keys from Parity -
On successful traffic, switch over all traffic to Geth and monitor for a period (weeks) -
After successful switch, shut down Parity node