Handle geth process exit via crash/kill and also via killing `embark blockchain`

First case - run `embark run` which starts a blockchain node, then manually kill the `geth` process. Would throw `{ [Error: connect ECONNREFUSED 127.0.0.1:8543] message: 'connect ECONNREFUSED 127.0.0.1:8543', code: -32603 }` error and ruins the dashboard.

Second case, 1) run `embark blockchain` 2) run `embark run` 3) kill `embark blockchain` throws the error `{ [Error: connect ECONNREFUSED 127.0.0.1:8543] message: 'connect ECONNREFUSED 127.0.0.1:8543', code: -32603 }` and ruins the dashboard.

The first case was solved by having the child blockchain process that spawns geth listen for geth exit, then kill itself.

The second case required updating of `eth-block-tracker` to v4.0.1 inside of the `embark-web3-provider-engine`. v4.0.1 was a major version update and introduced breaking changes. Those changes were handled inside of `embark-web3-provider-engine`, covered in **blocker** PR https://github.com/jrainville/provider-engine/pull/1.
This commit is contained in:
emizzle 2018-06-22 22:52:15 +10:00 committed by Pascal Precht
parent 23eee6e19b
commit 80e323bdd3
No known key found for this signature in database
GPG Key ID: 0EE28D8D6FD85D7D
1 changed files with 8 additions and 0 deletions

View File

@ -235,6 +235,14 @@ class BlockchainConnector {
if (err && err !== NO_NODE) {
return cb(err);
}
else if ((statusObj && statusObj.status === 'off') || err === NO_NODE){
self.provider.stop();
self.events.on('check:backOnline:Ethereum', () => {
self.provider.startWeb3Provider(() => {
self.logger.trace('web3 provider restarted after ethereum node came back online');
});
});
}
cb(statusObj);
});
}, 5000, 'off');