我正在一步一步地发现区块链世界,但我面临着一个我无法解决的问题。
我正在使用 Solidity 文档中的这个简单的智能合约:
pragma solidity >=0.4.0 <0.7.0;
contract SimpleStorage {
uint storedData;
function set(uint x) public {
storedData = x;
}
function get() public view returns (uint) {
return storedData;
}
}
我用 Remix 编译代码,当我在 JavascriptVM 上部署它时,一切正常,我可以更改存储的值。
但是,当我将它部署在私有 geth 节点上(使用 web3deploy)时,合约被成功挖掘,但是当我尝试使用 set 函数时( storage.set(4,{from:eth.accounts[0]}))它即使帐户有足够的资金,也总是返回“所需的气体超过配额或总是失败的交易”。
我觉得我错过了一些重要的东西,但我无法弄清楚。有人帮助将不胜感激!谢谢!