鹅厂之区块链(5)-智能合约部署

私链完成之后需要进行智能合约的部署,一种方案是通过Mist钱包进行编译、部署。另一种方案是通过命令行进行部署。

方案一的自行忽略;

方案二:每个以太坊合约编译之后都会得到ABI接口,通过使用ABI码来创建合约。在线编译器:https://remix.ethereum.org 获得ABI代码;

注:编译之后的ABI代码存放在 WEB3DEPLOY 中,在ABI栏中并不能看到ABI码;

获取ABI接口后,接下来利用命令行进行部署:(以下命令在geth中执行)

var mycontractContract = web3.eth.contract([{"constant":false,"inputs":[],"name":"getSum","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]);

以上命令中web3.eth.contract(*)的 *是指通过编译器得到的abi;

var mycontract = mycontractContract.new(   {     from: web3.eth.accounts[0],      data: '0x6080604052348015600f57600080fd5b5060868061001e6000396000f300608060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063569c5f6d146044575b600080fd5b348015604f57600080fd5b5060566058565b005b5600a165627a7a723058203d6f886778e7b74f6e760c8b071bc5e31c848dac02751dcdee57f75514f6d4570029',      gas: '4700000'   }, function (e, contract){    console.log(e, contract);    if (typeof contract.address !== 'undefined') {         console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);    } })

以上命令中from :指创建合约的账户。其他数据均为编译器所得。

在开启new()时,需要开启挖矿模式:


你可能感兴趣的:(鹅厂之区块链(5)-智能合约部署)