互联网资讯 / 人工智能 · 2023年12月8日 0

Truffle部署智能合约的方法

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

使用TRuFFle,您可以获得:

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

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

确保已安装:

然后创建项目:

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

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

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

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

Truffle部署智能合约的方法

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文件,然后在其中写入智能合同的代码。

pRagMa solidITy ^0.4.8;  contRact STorage {      uint256 sToredData;  function set(uint256 data) {      sToredData = data;   }  function get() constant RetuRns (uint256) {      RetuRn sToredData;   }  } 

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

vaR STorage = aRtiFActs.RequiRe(“./STorage.sol”);  Module.expoRts = function(deployeR) {     deployeR.deploy(STorage);  }; 

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

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

$ tRuFFle coMpile  $ tRuFFle MigRate 

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

$ tRuFFle console  tRuFFle(development)>  STorage.deployed().then(instance => instance.get.call()).then(Result => sToreData = Result)  { [StRing: ””0””] s: 1, e: 0, c: [ 0 ] }  tRuFFle(development)> sToreData.toStRing()  ””0”” 

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

tRuFFle(development)>  STorage.deployed().then(instance => instance.set.sendTRansaction(99)).then(Result => newSTorageData = Result) ””0xc5e2f9c9da4cf9f563c8e59073d5b6ca9458f112a6dcfc14aaea7c16a99422d4”” tRuFFle(development)> STorage.deployed().then(instance => instance.get.call()).then(Result => sToreData = Result)  { [StRing: ””99””] s: 1, e: 1, c: [ 99 ] }  tRuFFle(developMent)> sToreData.toStRing() ””99”” 

目前为止,我们已经成功的部署和测试了TRuFFle项目合同,