diff --git a/README.md b/README.md index 4930ed01d8..88d3b449c7 100644 --- a/README.md +++ b/README.md @@ -258,6 +258,7 @@ The environment is a specific blockchain configuration that can be managed at co chains: chains_staging.json network_id: 0 console: true + geth_extra_opts: --vmdebug account: init: false address: 0x123 diff --git a/boilerplate/Gruntfile.coffee b/boilerplate/Gruntfile.coffee index 150ff37214..279c1816b8 100644 --- a/boilerplate/Gruntfile.coffee +++ b/boilerplate/Gruntfile.coffee @@ -1,5 +1,6 @@ module.exports = (grunt) -> + grunt.option 'stack', true grunt.loadNpmTasks "grunt-embark" grunt.loadTasks "tasks" @@ -111,4 +112,3 @@ module.exports = (grunt) -> grunt.registerTask "deploy", ["coffee", "deploy_contracts", "concat", "copy", "server", "watch"] grunt.registerTask "build", ["clean", "deploy_contracts", "coffee", "concat", "uglify", "copy"] - diff --git a/lib/blockchain.js b/lib/blockchain.js index 9ab37a5c9a..88f0c5db9f 100644 --- a/lib/blockchain.js +++ b/lib/blockchain.js @@ -16,6 +16,10 @@ Blockchain.prototype.generate_basic_command = function() { cmd += "--logfile=\"" + config.datadir + ".log\" "; } + if (config.geth_extra_opts) { + cmd += config.geth_extra_opts + " "; + } + cmd += "--port " + config.port + " "; cmd += "--rpc "; cmd += "--rpcport " + config.rpcPort + " "; diff --git a/lib/chain_manager.js b/lib/chain_manager.js index edc48bbdef..abd0aea9be 100644 --- a/lib/chain_manager.js +++ b/lib/chain_manager.js @@ -28,7 +28,11 @@ ChainManager.prototype.loadConfig = function(config) { ChainManager.prototype.init = function(env, config) { web3.setProvider(new web3.providers.HttpProvider("http://" + config.rpcHost + ":" + config.rpcPort)); - var chainId = web3.eth.getBlock(0).hash; + var block = web3.eth.getBlock(0); + if(!block){ + throw new Error("Cannot get the genesis block, is embark blockchain running ?"); + } + var chainId = block.hash; if (this.chainManagerConfig[chainId] === undefined) { this.chainManagerConfig[chainId] = {contracts: {}}; diff --git a/lib/config/blockchain.js b/lib/config/blockchain.js index d0dcdd50fb..5af4395a63 100644 --- a/lib/config/blockchain.js +++ b/lib/config/blockchain.js @@ -48,7 +48,8 @@ BlockchainConfig.prototype.config = function(env) { console_toggle: config.console || false, mine_when_needed: config.mine_when_needed || false, whisper: config.whisper || false, - account: config.account + account: config.account, + geth_extra_opts: config.geth_extra_opts } return config;