如何使用Truffle部署智能合约

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

[[397532]]

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

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

使用Truffle,您可以获得:

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

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

  1. $ npm install -g truffle 

确保已安装:

  1. $ truffle  
  2. Truffle v3.2.1 - a development framework for Ethereum  
  3. Usage: truffle  [options]  
  4. Commands:   
  5. init   Initialize new Ethereum project with example contracts and tests  
  6. ... 

然后创建项目:

  1. $ mkdir storage_smart_contract_example  
  2. $ cd storage_smart_contract_example  
  3. $ truffle init 

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

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

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

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

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. pragma solidity ^0.4.8;  
  2. contract Storage {   
  3.    uint256 storedData;  
  4. function set(uint256 data) {   
  5.    storedData = data;   
  6. }  
  7. function get() constant returns (uint256) {   
  8.    return storedData;   
  9. }  

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

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

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

  1. $ npm install -g ethereumjs-testrpc  
  2. $ testrpc 
  3. EthereumJS TestRPC v3.0.3  
  4. Available Accounts  
  5. ==================  
  6. … 

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

  1. $ truffle compile  
  2. $ truffle migrate 

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

  1. $ truffle console  
  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项目合同,如有任何疑问请在留言区进行留言。

 

责任编辑:武晓燕 来源: 区块链研究实验室
相关推荐

2023-02-24 08:00:00

2021-04-20 12:53:34

Polkadot部署合约

2021-03-25 16:34:10

区块链加密资产技术

2021-03-11 19:13:04

NFT合约智能

2021-03-18 23:04:41

Solidity开发智能

2022-04-20 10:11:45

PythonBrownie编程语言

2022-07-14 09:00:00

区块链数据智能合约

2020-12-17 08:00:00

区块链数据以太坊

2023-07-04 20:15:00

2022-11-03 08:35:35

2023-08-23 09:00:00

区块链以太坊

2023-05-05 08:00:00

2023-02-20 08:00:00

2020-04-22 13:23:46

智能合约区块链比特币

2021-11-02 10:25:19

区块链智能合约

2022-07-04 18:58:43

智能合约区块链

2023-04-21 15:29:30

区块链去中心化自动化合约

2020-04-29 12:50:29

Solidity智能合约区块链

2023-05-12 09:14:34

2021-04-23 10:59:07

区块链货币私钥
点赞
收藏

51CTO技术栈公众号