如何使用Truffle部署智能合约

作者: 链三丰 2021-05-06 09:42:24

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

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

Truffle 部署 智能
上一篇:10亿参数的AI模型SEER「一视同仁」:服务富人,也服务全世界 下一篇:AI模型新革命来了?大脑记忆是旋转的?过去未来竟是「正交」空间
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

自动驾驶需要一场泡沫

十年前是智能手机,现在是智能汽车。作为智能汽车最引人注目的应用,自动驾驶无疑最能撩拨产业界的神经。现在,除了特斯拉、Google、百度这些先行者,连华为也进来了,并放出要吊打特斯拉的豪言。

格隆汇 ·  2021-04-22 14:30:20
传统数据之外,哪里是通往智能之路?

为了实现这种更高阶的人工智能,寻求进步的公司都在积极探索,除了吸收更多数据并更好地管理数据的典型方法之外,我们还需要考虑更多创新的方法。

卿云 ·  2021-04-14 18:58:27
智能AI加持,小米有品众筹YESOUL野小兽高回弹健腹轮

YESOUL高回弹健腹轮将于1 月 7 日上架小米有品开启众筹,仅需199元即可永远原价299元的家庭练腹黑科技。YESOUL高回弹健腹轮搭载新一代AI传感芯片,内置核心回弹技术,更静更稳更耐用,配合专业教练团队研发的521科学训练体系,助你造就强大核心。

佚名 ·  2021-01-07 11:46:02
智能终端AxPOS A8S 不仅仅是硬件的闪光

作为联迪商用2020年度重点打造的新一代智能POS,AxPOS A8S练就了一身“硬功夫”,高性能国产平台、刷脸支付、绚丽屏显、电源智能管理、舒适持握体验等等,亮点颇多。

佚名 ·  2020-12-30 17:27:20
一日六奖!博泰车联网斩获高工智能汽车金球奖

12月15-17日,2020年度(第四届)高工智能汽车年会暨高工金球奖评选颁奖典礼在上海举办,作为年度中国智能网联汽车行业的年终盛典,本次年会吸引了1000余位国内外整车厂、智能网联软硬件企业、汽车零部件供应商、OEM厂商及相关服务技术企业经营齐聚。

佚名 ·  2020-12-18 21:26:46
擎朗智能新品消毒机器人征服海外市场

由于新冠病毒的强传播性,在疫情防控期间,普通老百姓认识到了智能消杀机器人可以真正担当起推动医疗行业智能化升级的重任,机器人在医院隔离病房、隔离缓冲区、重症监护室、手术室、发热门诊、接待室、检验科、实验室、取样间及物料传递间等诸多场合有用武之地。

佚名 ·  2020-12-17 10:53:03
成都首条无人驾驶地铁上线 车头视角如穿越时空

据悉,成都地铁9号线一期总计配车25列,是国内第一个具备全自动运行功能的8A长大编组地铁车辆,全长185米,宽3米,采用铝合金车体。该车最大载客量可达3496人,这是成都地铁目前载客量最大的地铁车辆。

佚名 ·  2020-12-10 19:10:16
引领市场新趋势,百度Apollo智图发布全域智能驾驶地图

12月8日,在广州举办的第二届百度Apollo生态大会上,百度Apollo全面披露了其在智能交通、智能汽车和自动驾驶三大领域的最新进展。

佚名 ·  2020-12-09 11:27:46
Copyright©2005-2021 51CTO.COM 版权所有 未经许可 请勿转载