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

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项目合同,

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册