geth1.6部署智能合约

首先我们进去geth平台




root@i-colbyo7v:/home/ubuntu# cd private-geth/
root@i-colbyo7v:/home/ubuntu/private-geth# geth --identity "haha" --datadir ./data/00 --networkid 12345  --rpcapi "db,eth,net,web3" --port 61910 --rpcport 8200 console

Welcome to the Geth JavaScript console!

instance: Geth/haha/v1.6.6-stable-10a45cb5/linux-amd64/go1.8.1
coinbase: 0x8260b02ac49855f9c00ff4275dc5291300517e30
at block: 48 (Tue, 11 Jul 2017 15:21:41 CST)
 datadir: /home/ubuntu/private-geth/data/00
 modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

合约部署流程

一般来说,部署智能合约的步骤为
1启动一个以太坊节点 (例如geth或者testrpc)。
2用solc编译智能合约。 => 获得二进制代码。
3编译好的合约部署到网络。(这一步会消耗以太币,还需要使用你的节点的默认地址或者指定地址来给合约签名。) => 获得合约的区块链地址和ABI(合约接口的JSON表示,包括变量,事件和可以调用的方法)。(译注:作者在这里把ABI与合约接口弄混了。ABI是合约接口的二进制表示。)
4 eb3.js提供的JavaScript API来调用合约。(根据调用的类型有可能会消耗以太币。)

部署合约




因为geth1.6版本以后都不支持solidity编译,所以我们在线编译以后再赋值给abi
> address = eth.accounts[0]
"0x8260b02ac49855f9c00ff4275dc5291300517e30"
> personal.unlockAccount(address)
Unlock account 0x8260b02ac49855f9c00ff4275dc5291300517e30
Passphrase: 
true
部署合约就是将编译好的合约字节码通过外部账号发送交易的形式部署到以太坊区块链上。输入以下命令:
>  abi = [{constant:false,inputs:{name:'a',type:'uint256'}}]
[{
    constant: false,
    inputs: {
      name: "a",
      type: "uint256"
    }
}]
> MyContract = eth.contract(abi)
{
  abi: [{
      constant: false,
      inputs: {
        name: "a",
        type: "uint256"
      }
  }],
  eth: {
    accounts: ["0x8260b02ac49855f9c00ff4275dc5291300517e30", "0xf7f54ba52d6226c1f3d4417cc0d700616474681d"],
    blockNumber: 48,
    coinbase: "0x8260b02ac49855f9c00ff4275dc5291300517e30",
    compile: {
      lll: function(),
      serpent: function(),
      solidity: function()
    },
    defaultAccount: undefined,
    defaultBlock: "latest",
    gasPrice: 18000000000,
    hashrate: 0,
    mining: false,
    pendingTransactions: [],
    protocolVersion: "0x3f",
    syncing: false,
    call: function(),
    contract: function(abi),
    estimateGas: function(),
    filter: function(fil, callback),
    getAccounts: function(callback),
    getBalance: function(),
    getBlock: function(),
    getBlockNumber: 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值