Truffle是一个开发环境(提供用于编译,部署,测试和构建的命令行工具),框架(提供各种程序包以使其易于编写测试,部署代码,构建客户端等)和资产管道(发布软件包并使用其他人发布的软件包来构建基于以太坊的DApp。

 如何使用Truffle部署智能合约(怎么部署智能合约) Truffle 部署 智能 第1张

本文转载自微信公众号「区块链研究实验室」,作者链三丰。转载本文请联系区块链研究实验室公众号。

Truffle是一个开发环境(提供用于编译,部署,测试和构建的命令行工具),框架(提供各种程序包以使其易于编写测试,部署代码,构建客户端等)和资产管道(发布软件包并使用其他人发布的软件包来构建基于以太坊的DApp。

使用Truffle,您可以获得:

  • 内置的智能合约编译,链接,部署和二进制管理。
  • 与Mocha和Chai进行自动化合同测试。
  • 可配置的构建管道,支持自定义构建过程。
  • 可编写脚本的部署和迁移框架。
  • 网络管理,用于部署到许多公共和专用网络。
  • 用于直接合同通信的交互式控制台。
  • 在开发过程中立即重建资产。
  • 外部脚本运行程序,在Truffle环境中执行脚本。

要使用大多数Truffle命令,您需要在现有的Truffle项目上运行它们。因此,第一步是创建一个Truffle项目,让我们从安装Truffle开始:

  1. $npminstall-gtruffle

确保已安装:

  1. $truffle
  2. Trufflev3.2.1-adevelopmentframeworkforEthereum
  3. Usage:truffle[options]
  4. Commands:
  5. initInitializenewEthereumprojectwithexamplecontractsandtests
  6. ...

然后创建项目:

  1. $mkdirstorage_smart_contract_example
  2. $cdstorage_smart_contract_example
  3. $truffleinit

在这里,您可以运行Truffle编译,Truffle迁移和Truffle测试来编译您的合同,将这些合同部署到网络中,并运行其关联的单元测试。

Truffle与本地开发区块链服务器捆绑在一起,当您调用上述命令时,该服务器会自动启动。如果您想配置更高级的开发环境,我们建议您通过在命令行上运行npm install -g ganache-cli来单独安装区块链服务器。

ganache-cli:Truffle的区块链服务器的命令行版本。

ganache:服务器的GUI,显示您的交易历史记录和链状态。

 如何使用Truffle部署智能合约(怎么部署智能合约) Truffle 部署 智能 第2张

Truffle项目的结构

您创建的Truffle文件夹如下所示:

1.合同

  • ConvertLib.sol
  • MetaCoin.sol
  • Migrations.so

2.迁移

  • 1_initial_migration.js
  • 2_deploy_contracts.js

3.测试

  • TestMetacoin.sol
  • metacoin.js

4. Truffle-config.js

5. truffle.js

现在进一步编写代码,您将看到Truffle为我们创建了文件结构。转到合同文件夹并创建Storage.sol文件,然后在其中写入智能合同的代码。

  1. pragmasolidity^0.4.8;
  2. contractStorage{
  3. uint256storedData;
  4. functionset(uint256data){
  5. storedData=data;
  6. }
  7. functionget()constantreturns(uint256){
  8. returnstoredData;
  9. }
  10. }

现在转到migrations / 2_deploy_contracts.js并将其修改为如下所示:

  1. varStorage=artifacts.require("./Storage.sol");
  2. module.exports=function(deployer){
  3. deployer.deploy(Storage);
  4. };

现在我们已经有了基本的设置,我们需要将其部署到区块链上,让我们使用testrpc可以很好地完成测试开发目的,在一个单独的选项卡上,键入以下命令:

  1. $npminstall-gethereumjs-testrpc
  2. $testrpc
  3. EthereumJSTestRPCv3.0.3
  4. AvailableAccounts
  5. ==================

然后返回运行Truffle项目的选项卡:

  1. $trufflecompile
  2. $trufflemigrate

这样我们就完成了合同的部署,让我们检查一下我们是否能够调用合同功能。

  1. $truffleconsole
  2. truffle(development)>
  3. Storage.deployed().then(instance=>instance.get.call()).then(result=>storeData=result)
  4. {[String:'0']s:1,e:0,c:[0]}
  5. truffle(development)>storeData.toString()
  6. '0'

现在让我们看看是否可以将storeData设置为值99。

  1. truffle(development)>
  2. Storage.deployed().then(instance=>instance.set.sendTransaction(99)).then(result=>newStorageData=result)'0xc5e2f9c9da4cf9f563c8e59073d5b6ca9458f112a6dcfc14aaea7c16a99422d4'
  3. truffle(development)>Storage.deployed().then(instance=>instance.get.call()).then(result=>storeData=result)
  4. {[String:'99']s:1,e:1,c:[99]}
  5. truffle(development)>storeData.toString()'99'

目前为止,我们已经成功的部署和测试了Truffle项目合同,如有任何疑问请在留言区进行留言。

转载请说明出处
知优网 » 如何使用Truffle部署智能合约(怎么部署智能合约)

发表评论

您需要后才能发表评论