待补充。
很多朋友照着教程部署合约会遇到一些问题,我觉得主要是在获取abi这一步。
var Multiply7 = eth.contract(contract.info.abiDefinition);
所以这里记录一下用browser-solidity编译。
一、初始化私有链
首先需要准备一个创世区块信息用于初始化私有链,其中difficulty
为挖矿难度,建议设置低一点方便挖矿测试,保存为init.json。
{
"nonce": "0×0000000000000042",
"mixhash": "0×0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0×20000",
"alloc": {},
"coinbase": "0×0000000000000000000000000000000000000000",
"timestamp": "0×00",
"parentHash": "0×0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "blossom",
"gasLimit": "0xffffffff"
}
进入终端,创建私有链。命令中--datadir
后的参数根据你放置init.json
的路径自行更改。
geth --datadir "/home/swb/test" init init.json
进入私有链console。--identity
和--datadir
需要根据你的需要而定。
geth --identity "blossom" --rpc --rpccorsdomain "*" --datadir "/home/swb/test" --port 30303 --rpcapi "db,eth,net,web3" --networkid 123456 console 2>> /home/swb/test/geth.log
二、码合约
这一步不多说,具体的合约代码自己编写。以下是Solidity的官方文档:链接
本文以一个简单的加法合约为例介绍部署步骤。
还可以参考wiki中给的教程案例:Contracts and Transactions
pragma solidity ^0.4.0;
contract test {
/// @notice Will multiply `a` by 7.
function multiply(uint a) returns(uint d) {
return a * 7;
}
}
三,编译合约
如前文中提到的,想要部署合约需要得到合约代码的ABI和EVM code。很多朋友