赞
踩
由于执行交易需要消费以太币,因此在正式以太坊网络环境中需要花*购买以太币,在测试以太坊网络环境中需要通过某些渠道获取测试以太币,这比较麻烦且执行交易速度较慢。Ganache是一个本地以太坊网络环境的应用程序,为用户提供了以太坊账户,且为每个账户提供了以太币,这很好的解决了正式和测试以太坊网络环境遇到的问题,非常适用于学习solidity语言。
接下来对Ganache的介绍,仅仅对用到的模块进行介绍。若想要了解更多,请查看官方教程。
注:退出Ganache后,再次打开Ganache,在下图画圈区点选列表项可直接进入已创建好的工作空间
MetaMask (又称为小狐狸) 是一种以太坊钱包,帮助用户管理以太坊账户和资金,并提供查询余额和转账等功能。
MetaMask是一个浏览器插件,支持谷歌浏览器、火狐浏览器,以及国内主流浏览器,如360安全浏览器等。
MetaMask插件完成后,会打开如下图,并在浏览器右上角显示小狐狸头像图标
新的PRC URL:填写Ganache的PRC SERVER,如下图。(注:“HTTP”改为小写);
链ID:填写为1337;
货币符号:填写为ETH;
区块浏览器URL:不用填写;
然后,点击“保存”按钮。
按照上述步骤配置完成后,你可以看到MetaMask以连接上Ganache,并且账户余额显示为100ETH。
在Ganache账户页面可以看到有很多账户,但在MetaMask只可以看到一个账户,这需要手动将其他账户添加进MetaMask中。
添加完成后,点击头像,可以查看到新添加的账户。点击“创建账户”也可以添加新的账户。
目前编写Solidity语言最好的编译器是Remix编译器。Remix是一个基于Web浏览器的编译器(也就是说用户不需要安装编译器软件和配置运行环境,打开Remix网站即可使用),它可以让用户编写Solidity智能合约,然后将智能合约代码编译为智能合约字节码,最后将状态变量和智能合约字节码存储在合约账户里,并且支持用户调用智能合约函数。
点击进入Redix编译器网站地址
Redix官方教程
操作步骤:点击“File explorer”图标,选中“contracts”文件夹,右键点击“New File”,给新建文件命名(注:智能合约的扩展名是“.sol”,在填写名称时要手动填写上扩展名),然后编写智能合约(以编写统计工资StatisticsSalary智能合约为例)。
介绍:在此步骤生成ABI和Bytecode (ABI和Bytecode在“Solidity编程语言进阶知识”教程中详细介绍)。
操作步骤:点击“Solidity compiler”图标,然后点击“Compile xxx.sol”按钮。每次修改智能合约后都需要重新操作此步骤,为避免重复的操作可以勾选“Auto compile”,勾选后编译器可以自动执行编译。
介绍:将编译后的智能合约部署到以太坊网络中。
操作步骤:点击“Deploy & run transactions”图标,然后打开“ENVIRONMENT”的下拉列表并选中“Injected Provider - MetaMask”用于链接MetaMask,再然后打开“Contract(Compiled by remix)”的下拉列表并选中要部署的合约(注意:当源文件中有多个合约时才需要使用此步骤),最后点击“Deploy”按钮。由于部署智能合约是一个“部署合约交易”,因此需要消耗燃料费,在点击“Deploy”按钮后,会弹出MetaMask弹窗用于支付燃料费,在弹窗中点击“确认”按钮,等待部署完成。
智能合约部署成功后,会在Ganache的区块页面生一个区块数据和在交易页面生成一个交易数据。
介绍:调用智能合约本质是对函数的调用。智能合约部署成功后,会在下图花圈处显示已部署的智能合约。
操作步骤:点击图标后,会查看到累加工资accumulateSalary和获取总工资getTotalSalary两个函数;输入参数并点击相应按钮,然后根据情况支付燃料费后会调用相应函数。例如:在“accumulateSalary”按钮后面的输入框输入3200,并点击“accumulateSalary”按钮,这个过程会改变状态变量totalSalary,因此需要支付燃料费,在MetaMask弹窗支付燃料费后,等待调用成功后,会在Ganache的区块页面生一个区块数据和在交易页面生成一个交易数据。点击“getTotalSalary”按钮,由于获取总工资getTotalSalary函数只是从以太坊网络中获取数据,并没有改变账户状态,因此不是交易,不用支付燃料费,也不会产生区块数据和交易数据,会在“getTotalSalary”按钮下面显示总工资3200。
注意:每次点击“Deploy”按钮或点击函数按钮(如:accumulateSalary按钮和getTotalSalary按钮),都会在右侧画圈出显示出更多或更复杂的信息。
智能合约部署后,会生成一个合约账户,可以使用外部账户向和合约账户发送以太币(即外部账户向合约账户转账以太币)。
操作步骤:在value输入框中填写要转账的金额,然后在后面的下列表选择以太币单位,最后按照上述【Redix调用智能合约】步骤操作。
在下图绿色画圈处,显示的是合约账户含有的以太币余额。
在合约中可以声明一个特殊的函数,这个函数是构造函数(在“Solidity编程语言基础知识”教程中详细介绍),构造函数的输入参数必须在部署时输入。
操作步骤:在“Deploy”按钮后的输入框输入数据,然后按照上述【Redix调用智能合约】步骤操作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。