我正在尝试使用以太坊钱包客户端(雾)在专用网络中部署智能合约。虽然我有足够的资金申请,但我仍然没有足够的资金用于*汽油价格+价值。
智能合约代码:
pragma solidity ^0.4.18;
contract HelloWorld {
uint256 counter = 0;
/* Constructor */
function Increase() public {
counter++;
}
function Decrease() public {
counter--;
}
function GetCounter() public constant returns(uint256){
return counter;
}
}
** genesis.json **
{
"config": {
"chainId": 0,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"alloc" : {},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x20000",
"extraData" : "",
"gasLimit" : "0x2fefd8",
"nonce" : "0x0000000000000041",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00"
}
Geth命令:
geth --datadir =。/ chaindata
注意:我是以太坊区块链发展的新手,所以试图通过创建私人网络获得实践经验
答案 0 :(得分:0)
有一些问题......
您提到您的帐户有资金。你是如何在私人区块链上为你的账户添加以太币的?没有迹象表明在genesis.json配置中初始化了资金。你应该有这样的东西:
{
...
"alloc": {
"ACCOUNT_ADDRESS": {
"balance": "30000000000000000000000000000"
}
}
}
这将为您的帐户播种300以太。您需要先在私有区块链上创建一个帐户,然后在配置文件中使用该帐户。
其次,您在genesis.json中将网络ID设置为0。选择其他ID。
第三,正如我的评论所述,您没有连接到您的专用网络。您需要在启动geth时添加--networkid
选项,并传入您在genesis.json中设置的网络ID。启动geth时,您应该在输出中看到类似的内容:
INFO [01-11 | 14:21:03]初始化以太坊协议
versions =“[63 62]”network = 1
网络ID是你在genesis.json中设置的。如果您看到network=1
,则表示您正在连接到主网络。
如果您刚开始使用Solidity,您可能还想考虑不创建私有区块链。您可以将Remix用于完全沙盒化的开发环境,或使用Ropsten测试网络。