以太坊部署的合约未在 Geth Javascript 控制台中定义

Ethereum deployed contract not defined in Geth Javascript console

我无法从 Geth Javascript 控制台访问私有网络上部署和挖掘的以太坊合约。不确定问题出在哪里,感谢您的帮助。

预先感谢您的宝贵时间。

场景

我如下启动了我的 Geth

geth --datadir ~/.ethereum/myProject --networkid 1234 --rpc --rpcport 8546 --rpcapi "eth,net,web3" --unlock 0 console

我已经部署并挖掘了一个以太坊合约(为了简化事情,我使用了 Truffle 提供的默认 MetaCoin 合约),并且我得到了 trx 和合约地址。 我可以从 Truffle 控制台访问它,但如果我从 Geth Javascript 控制台尝试访问它,我会收到错误消息。

请参考下图:

Truffle console

Geth javascript console

使用的软件

Geth 不知道 MetaCoin。在 Geth 控制台,你需要做:

var MetaCoin = web3.eth.Contract(metaCoinJsonAbi, itsAddress);
// or web3.eth.contract depending on the version of Web3

那你就可以用了。 Refer to this.