无法将Ganache与Truffle / Npm Dev服务器连接

时间:2018-03-20 09:09:48

标签: npm blockchain ethereum truffle consensys-truffle

我能够使用Truffle和Ganache-cli。已经部署了合同,可以使用松露控制台玩

truffle(development)> 
Voting.deployed().then(function(contractInstance) 
{contractInstance.voteForCandidate('Rama').then(function(v) 
{console.log(v)})})
undefined
truffle(development)> { tx: 
'0xe4f8d00f7732c09df9e832bba0be9f37c3e2f594d3fbb8aba93fcb7faa0f441d',
  receipt: 
   { transactionHash: 
'0xe4f8d00f7732c09df9e832bba0be9f37c3e2f594d3fbb8aba93fcb7faa0f441d',
     transactionIndex: 0,
     blockHash: 
'0x639482c03dba071973c162668903ab98fb6ba4dbd8878e15ec7539b83f0e888f',
     blockNumber: 10,
     gasUsed: 28387,
     cumulativeGasUsed: 28387,
     contractAddress: null,
     logs: [],
     status: '0x01',
     logsBloom: ... }

现在,当我使用“npm run dev”启动服务器时。服务器启动正常但未与区块链连接

我收到错误

Uncaught (in promise) Error: Contract has not been deployed to detected network (network/artifact mismatch)

这是我的truffle.js

// Allows us to use ES6 in our migrations and tests.
require('babel-register')

module.exports = {
 networks: {
    development: {
      host: '127.0.0.1',
      port: 8545,
      network_id: '*', // Match any network id
      gas: 1470000

    }
  }
}

你能指导我如何连接吗?

2 个答案:

答案 0 :(得分:0)

truffle.js中,将8545更改为7545

,在Ganache(GUI)中,点击右上角的齿轮,将端口号从7545更改为8545,然后重新启动。使用ganache-cli在启动时使用-p 8545选项将8545设置为要侦听的端口。

无论哪种方式,错配似乎都是问题;这些数字应该匹配。这是一个常见问题。

也可以随时查看ethereum.stackexchange.com。如果您希望将问题移到那里,您可以标记它并为主持人留言。

答案 1 :(得分:0)

解决问题。

问题是在currentProvider上,我给了ganache区块链提供商的网址,但是它有效。

{{1}}