智能合约开发涉及知识纷繁复杂,合约开发的官方推荐语言是solidity,而合约的前端产品化需要用到web3与以太坊网络交互。今天我们从0开始,在本地电脑搭建一个以太坊测试网络,并在上面部署一个简单的智能合约。
环境部署
以太坊开发官方推荐的套件叫做truffle,Truffle是针对基于以太坊的Solidity语言的一套开发框架。本身基于Javascript。使用它开发,测试,部署一行命令都可以搞定。
安装 truffle
npm install -g truffle
初始一个智能合约项目
为了方便开发,truffle开发框架给我们提供了很多种子项目供我们参考使用,称作Box,有了这神器,干脆我们就发个币吧,叫做metaCoin
mkdir MetaCoin
cd MetaCoin
truffle unbox metacoin
如果你想初始一个空项目
truffle init
现在你的代码库中有了以下几个文件
- contracts/: Solidity 合约目录
- migrations/: 合约的部署脚本
- test/: 测试文件目录
- truffle.js: truffle的配置文件
Ok,至于合约的内容暂且不表,我们先部署到以太的测试网络
启动测试网络
truffle develop
将metaCoin 部署到刚刚启动的区块链网络上
- 编译
truffle compile
- 部署
truffle migrate
至此,我们已经把Meta币部署到本地的测试网络了,下面我们用js与区块链数据交互。
var account_one = "0x1234..."; // an address
var account_two = "0xabcd..."; // another address
var meta;
MetaCoin.deployed().then(function(instance) {
meta = instance;//获得合约实例
return meta.sendCoin(account_two, 10, {from: account_one});
}).then(function(result) {
// 成功发送一笔交易
alert("Transaction successful!")
}).catch(function(e) {
// 错误处理
})
通过web3Js与智能合约进行交互就可以进行所有操作了,查看余额、转账、执行合约方法。 附metacoin源码:https://github.com/truffle-box/metacoin-box
网友评论