以太坊学习(4)开发编译部署调用智能合约

本文根据汪晓明的视频资料整理,ubuntu16.04测试正确。
1.打开geth控制台

~$ geth --datadir ~/pengfan/eth --dev

在另一个终端输入

~$ geth --dev console 2>>file_to_log_output

2.查看、设置编译器

> eth.getCompilers()
[]

设置solc为编译器

> admin.setSolc("/usr/local/bin/solc")
Error: exit status 1
    at web3.js:3119:20
    at web3.js:6023:15
    at web3.js:4995:36
    at <anonymous>:1:1

提示错误,更改路径成“/usr/bin/solc”

~$ whereis solc
solc: /usr/bin/solc /usr/local/bin/solc
> admin.setSolc("/usr/bin/solc")
"solc, the solidity compiler commandline interface\nVersion: 0.4.7+commit.822622cf.Linux.g++\n"

再次查看

>eth.getCompilers()
["Solidity"]

3.编写智能合约

>source="contract test { function multiply(uint a) returns(uint d) { return a * 7; }}"

4.编译智能合约

> contract = eth.compile.solidity(source).test

这里写图片描述

code——编译后的EVM字节码
info——编译器返回的原数据
abiDefinition——应用程序二进制接口定义
compilerOptions——编译参数

5.准备工作:创建账户并激活

在以太坊上创建智能合约就是使用一个外部账户(EOA)向区块链中发送一个交易。

> personal.newAccount("123456")
"0x733bf98c0e218b430db0fe1d4c9ef04341444a82"
> personal.listAccounts
["0x733bf98c0e218b430db0fe1d4c9ef04341444a82"]
> eth.getBalance(personal.listAccounts[0])
0
> miner.start()
true
> eth.blockNumber
2
> eth.getBalance(personal.listAccounts[0])
15000000000000000000
> address=eth.accounts[0]
"0x733bf98c0e218b430db0fe1d4c9ef04341444a82"
> personal.unlockAccount(address,"123456",10000)
true

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值