搭建以太坊私链, 部署智能合约常用的三个工具:Truffle,Ganache 和 remix-ide。
Truffle 是最流行的开发框架,能够在本地编译、部署智能合约,使命是让开发更容易。
Truffle的源代码地址
https://github.com/trufflesuite/truffle
(1)安装 Truffle 4.0
依赖环境:
安装很简单:
npm install -g truffle
#查看安装的版本:
truffle version
(2)初始化一个 Truffle 项目
truffle init #可以初始化一个默认的以太坊代币合约项目
编译合约
truffle compile #仅默认编译自上次编译后被修改过的文件
truffle compile --all #编译全部文件
Truffle需要定义的合约名称和文件名准确匹配,这种匹配是区分大小写的,也就是说大小写也要一致。推荐大写每一个开头字母
(3)部署
默认network [development]
truffle migrate
truffle migrate --reset #重新执行
指定network
truffle migrate --network poa
(4)启动控制台 (需要在工程目录下执行。)
#使用默认网络来调起一个控制台
truffle console
#指定network
truffle console --network poa
#启动带本地私有开发链的控制台
truffle develop
#监听地址为: http://127.0.0.1:9545
测试部署成功的智能合约
#输入以下命令打开truffle控制台,测试刚才我们部署的Hello_mshk_top合约:
truffle(development)> var contract;
undefined
truffle(development)> Hello_mshk_top.deployed().then(function(instance){contract= instance;}); //将Hello_mshk_top合约主体,传递给contract变量
undefined
truffle(development)> contract.say()
'Hello mshk.top'
truffle(development)> contract.print("https://mshk.top")
'https://mshk.top'
(5)使用zeppelin-solidity库
npm install zeppelin-solidity
#生成package.json文件
npm init
#根据package.json自动下载库
npm install
(6)下载模板
truffle unbox <box-name>
开发时的太坊客户端Ganache
,ganache-cli
将智能合约部署到 TestRPC(内存中的区块链) 中测试 (TestRPC已更名为ganache)
它是一个完整的在内存中的区块链仅仅存在于你开发的设备上。
相对于 Geth,TestRPC 它在执行交易时是实时返回,而不等待默认的出块时间,这样你可以快速验证你新写的代码,当出现错误时,也能即时反馈给你。
它同时还是一个支持自动化测试的功能强大的客户端
(1)Ganache (带ui)
下载
https://truffleframework.org/ganache/
监听地址为: http://127.0.0.1:7545
(1)ganache-cli
#安装
npm install -g ganache-cli
#运行
ganache-cli --gasLimit 0x800000000
#监听地址为 127.0.0.1:8545
(2)TestRPC (TestRPC已更名为ganache)
#安装
npm install -g ethereumjs-testrpc
#启动 TestRPC
testrpc --gasLimit 0x800000000
监听地址为 localhost:8545
安装 remix-ide
windows
#先安装node.js
https://nodejs.org/en/
#再
npm install remix-ide -g --allow-root
#运行 cd到开发合约目录下
remix-ide
linux
npm install remix-ide -g --allow-root
remix-ide
#如果外网访问不了
vim /root/remix-ide/bin/remix-ide
#修改
server.listen(8080, ‘127.0.0.1’, function () {})
#为
server.listen(8080, ‘0.0.0.0’, function () {})
UUencode编码起先用在unix网络中,先是Unix系统下将二进制的资料借由uucp邮件系...
Windows 10中的WinX菜单是指通过按Windows键 + X快捷键或右键单击任务栏中的开始...
下面给大家介绍下小程序弹窗禁止页面滚动的效果: 在小程序弹窗时,外部页面 禁...
据悉,偶数已于近期完成新一轮融资,投资方为金山云。在此之前,偶数曾获得红杉中...
今天来探讨一下如何模拟不同网段的之间的 ip 连接的路由配置 让我们开门见山 首...
服务器监控工具对系统管理员的重要性不言而喻。今天给大家介绍6个服务器监控工具...
2021年4月全国招收程序员456577人。2021年4月全国程序员平均工资14596元工资中位...
微软正在为其SwiftKey移动键盘应用开发一项新功能,该功能将改变Windows 10上剪...
来自WL的报道称,知情人士称,微软即将签署Windows 10 21H1的RTM,或者说某种程...
java生成随机字符串的两种方法 文章目录 java生成随机字符串的两种方法 提示以下...