上次我们用了7行代码,圆了一把ICO的美梦,可惜的是这个梦圆得太迟,不然也能狠狠捞一把。不过没关系,正如我所说的:区块链是工具,要合理的使用,而非商品炒作,我们把开发技术学起来,想捞多少有多少。现在DeFi正要起飞,学好DApp开发正是时候。
我们今天的目标,就是在本地的win10 系统,设定好以太坊DApp开发环境,在本地编译部署,然后透过console 交互。我们的开发环境如下:
- Truffle
- Ganache
- VS code with solidity extended
为什么要选用Truffle 跟Ganache 呢?
Truffle是一个以太坊(Ethereum) DApp开发环境,包括测试框架、部署管道等。使用Truffle ,我们可以快速的入门,进入到我们想要的业务开发阶段。Ganache是一个本地的以太坊(Ethereum)模拟器,或叫仿真器。主要的功能,就是本地运行一个以太坊(Ethereum)的模拟环境,不需要挖矿,不需要再安装以太坊(Ethereum)客户端。然后有UI面板可以直接看到整个本地链的的状态。
Truffle suite有三个主角,Truffle 、Ganache 、Drizzle 。本篇不会提到的Drizzle是跟合约相关的,以后我们深入合约开发时,再来详细说明。
前置作业
Truffle Suite 的工具是建立在node.js 的环境上,所以在开始之前, 需要node.js 8.9.4 以上环境,我建议是直接安装最新的的stable 版本。
开始安装
安装truffle , npm install -g truffle ,如下图
最后提示版本为5.1.41
然后输入truffle version , 看版本
图中出现错误,系统禁止本地运行脚本。
输入get-executionpolicy看一下,出现Restricted 。表示使用严格模式。
更改执行策略,set-executionpolicy remotesigned , 如下图
输入y ,确定更改执行策略。
然后再输入truffle看看是否还会出现错误,如果像上图一样,有显示版本号及命令提示,就是可以执行了。
输入truffle version , 看看完整的版本号,如下图
这里显示了Truffle 、solidity 、NodeJs 、Web3.js 的版本。我们先以预设的版本进行,不在这里更新版本。
接下来,我们使用truffle 提供的范例,来做本地环境的验证,目的是看本地的环境有没有正常运行。如下图
建立MetaCoin目录,进入后输入truffle unbox metacoin ,意思是下载truffle的metacoin范例。
最后这里提示可以Compile编译,Migrate部署,Test测试。
我们用test 试试,看有没有出错,truffle test ./test/TestMetaCoin.sol
没有出错,接下来编译
truffle compile 编译
我们注意到,写入的目录不一样。
接下来,我们先看看metacoin范例有什么东西
Curve Finance定价公式:StableSwap invariant
我们今天要说明的是Curve Finance所使用的定价公式:StableSwap invariant,这是一种混合型恒定加总及恒定乘积公式。说明StableSwap使用的公式之前,会先简介另外三个公式,恒定总和公式C
VSCode 及扩展安装
我们先用VS Code 打开刚刚的目录metacoin
如果你的VSCode 没有安装好solidity 的扩展,可以到marketplace 下载,如下图,输入ext:sol
依个人的喜好来安装。只是扩展而已,不安装也没有关系。我安装是的第一个solidity 0.0.76 这个。
Ganache 安装
我们打算部署在本机,方便查看及debug ,所以安装truffle 。
Ganeche的安装十分简单,官网https://www.trufflesuite.com/ganache下载后直接安装。
运行之后如下图,点选QuickStart
这里按下箭头可以选择要模拟什么网络以太坊(Ethereum)或corda 。我们选ethreum 然后QuickStart。
打开后如下图,注意到我们现在是在Accounts 这个选项底下,可以看到钱包、助记词,及其他资讯
这里我们特别注意到RPC Server 跟Network ID这两栏,然后修改truffle-config.js 的内容,如下图
我们没有指定Network ID,使用了万用符来代替。因为是本机,所以不指定也没有什么太大影响。除非有多个链同时存在,就要确定Network ID。修改后储存。
truffle migrate 开始部署,如下图
这里我们部署了三个合约,可以对照Ganache ,包括交易ID,地址等。
打开Ganache ,切换到Transactios 选项,并对照几个合约之间的关系。
最后,我们使用truffle console 来验证是否部署正确以及使用合约。
我们发现可以收发metacoin , 然后帐号也能查询余额,合约内以太币也能查到。
以上就完成初步的开发环境建立。我们会以这个集成环境,逐步的来开发包括智能合约及Dapp 。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
什么是Dai stablecoin?为什么可以软锚定美元而不脱勾?
Dai是一个标准的ERC-20 Token ,软锚定美元价格的稳定币,由MakerDao创建及管理。任何人都可以透过Maker协议来抵押eth然后生成Dai,这里我就不再深入说明抵押资产的类型区别,
原创文章,作者:掘金K,如若转载,请注明出处:https://www.20on.com/120109.html