1.登录infura官网注册,获取API-KEY
Infura是一个托管的以太坊节点集群,可以将你编写的以太坊智能合约部署到infura提供的节点上,而无需自己搭建以太坊节点。

https://infura.io/

2.安装HDWalletProvider
Infura的HDWalletProvider是一个独立的npm软件包,切换到truffle工程目录使用如下命令安装

npm install truffle-hdwallet-provider

然后修改truffle.js或truffle-config.js文件内容如下:

// 定义HDWalletProvider对象
var HDWalletProvider = require("truffle-hdwallet-provider");
// 提供助记词(mnemonic)或私钥 来导入你的账户
var mnemonic = "topic foster find apple famous have bonus month remain middle funny smart";
// 添加Ropsten测试网络定义
module.exports = {networks: {ropsten: {provider: function() {// 定义以太坊节点 https://ropsten.infura.io/your-api-keyreturn new HDWalletProvider(mnemonic, "https://ropsten.infura.io/503fc5af65d64cdaa090d2873201bc5a")},network_id: 3}}
};

3.  增加配置文件.env
Dotenv是一个零依赖模块,用于从".env"文件中导入环境变量到 process.env,对DAPP来说,这样就可以不用上传钱包助记词等核心机密到GITHUB,便于资产安全。

.env file

mnemonic=topic foster find apple famous have bonus month remain middle funny smart
infurakey=xxxxxxxxxxxxxxxxxxxxxxxxxx
prakey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

这样上面代码如下:

// 定义HDWalletProvider对象
var HDWalletProvider = require("truffle-hdwallet-provider");
const reselt=require('dotenv').config(); // 默认读取项目根目录下的.env文件,用process.env.调用
if (result.error) {throw result.error;
}
console.log(result.parsed);module.exports = {networks: {ropsten: {provider: function() {// 定义以太坊节点 https://ropsten.infura.io/your-api-keyreturn new HDWalletProvider(process.env.mnemonic, "https://ropsten.infura.io/"+ process.env.infurakey);},network_id: 3}}
};

4.部署到以太坊网络
执行如下命令,部署到以太坊测试网络ropsten

truffle migrate --network ropsten

若部署时出现 network up to date 原因由于合约移植是懒编译的,如果发现已经发布过,且发布的版本号没有变化就不会再发布,所以使用--reset。使用truffle migrate --reset来强制重编译并发布所有合约.

若部署时候出现类似 node_modules\node-sss\ventor not found 等出错信息 首先安装 npm install node-sss --save ,如果还是出现 用npm rebuild node-sass --save 重建生成即可。

用truffle部署智能合约到以太坊网络(truffle+infura)的简易方法相关推荐

  1. 使用remix和matemask部署智能合约到以太坊测试网络

    目录 1. 平台准备 1.1 网页版remix 1.2 Chrome浏览器插件metamask 2. 部署智能合约 1. 平台准备 1.1 网页版remix 进入网址 https://remix.et ...

  2. MIMIC 以太坊医疗项目开发(5)truffle部署智能合约

    truffle是以太坊开发框架, 本地的用来编译.部署智能合约的工具. 1. Truffle安装 npm install truffle -g 2. Truffle项目开发 创建目录 mkdir Me ...

  3. 链乔教育在线|智能合约学习——以太坊智能合约学习笔记(四)

    链乔教育在线|智能合约学习--以太坊智能合约学习笔记(四) 本笔记记录的是使用matemask钱包连接以太坊私链,并编写一个基本的提币智能合约部署到以太坊私链上,进行调用. 一.浏览器安装metama ...

  4. 以太坊智能合约Java_以太坊:调用已部署的智能合约

    目录 1. 调用已部署的智能合约 相关截图来自: 1.1. ABI是payload编码的依据 ABI,应用二进制接口(Application Binary Interface).它是从区块链外部与合约 ...

  5. solidity智能合约[37]-以太坊虚拟机数据存储

    EVM 当调用solidity函数时,都会在以太坊虚拟机当中来执行.因此了解以太坊虚拟机的细节,了解其数据的存储机制变得尤为重要. 以太坊虚拟机中的空间分为3大部分.分别为storage.stack与 ...

  6. 【web3实践 | 以太坊开发框架Truffle使用】

    Truffle简介 Truffle是一个面向以太坊的开发框架,提供一整套构建.测试.部署以及管理智能合约的开发工具.Truffle可以与以太坊节点交互,使开发人员能够在本地开发.测试和部署智能合约. ...

  7. 区块链学习(3) 以太坊测试环境编译并部署智能合约(mac版)

    选择编写智能合约的语言 Ethereum上的智能合约需要使用solidity语言来撰写.虽然还有其他能用来撰写智能合约的语言如Serpent(类Python).lll(类Fortran),但目前看到所 ...

  8. 代币转账_手把手教你从源代码开始搭建多节点以太坊私链(五)部署智能合约及代币发行...

    一.安装以太坊合约编译环境 安装solc 智能合约代码的编译可以通过第三方平台或者软件.不过,为了安全起见,还是搭建自己的编译器比较好.(But be aware that if the compil ...

  9. 基于以太坊网络的智能合约开发、部署和测试(入门)

    为什么80%的码农都做不了架构师?>>>    基本概念: 以太坊是一个开放的.公开的区块链平台,允许用户构建自己的去中心化应用在上面运行 Solidity是一种语法类似JavaSc ...

最新文章

  1. 第十五届全国大学生智能车竞赛相关LOGO,文化衫,背板图片
  2. Ruby on Rails路径穿越与任意文件读取漏洞分析(CVE-2019-5418)
  3. el-input中设置onkeypress事件是否匹配正则表达式显示输入内容的格式
  4. 快速求幂(Quick Exponentiation)
  5. 新安装的mysql登录不了_mysql 5.6 新安装登录
  6. MooTools教程(4):函数和MooTools
  7. POJ--1300--Door Man【推断无向图欧拉通路】
  8. 苹果Mac专业的字体管理应用:​​​​RightFont
  9. 招投标相关法律及条例
  10. 为什么php在网页中不显示,为什么网页显示不出php代码_后端开发
  11. 游戏服务器系统安装,修复Win10系统游戏服务无法安装错误 0x80073D26(4种方法)...
  12. VS2010SP1dvd1安装失败。
  13. Java实现 蓝桥杯 算法提高 求arccos值
  14. 2011-6-9 有趣的Google能发声音乐电吉他Logo
  15. 苹果系统虚拟机无usb服务器,win10系统苹果电脑运行虚拟机后无法识别显示U盘的详细方案...
  16. java method field_java_解析Java中的Field类和Method类,Field类 Field类中定义了一些方 - phpStudy...
  17. 勒索软件攻击为何越来越多?
  18. 假设检验 正态总体方差的假设检验
  19. 刷流量和刷点击率的方法探讨
  20. 圣斗士星矢243年前的圣战详细介绍

热门文章

  1. EF CodeFirst下的自动迁移
  2. C语言笔记(数组地址一些细节)
  3. XHTML + CSS使用技巧
  4. Private strand flush not complete 说明
  5. System.Windows.Forms.ListView
  6. SpringCloud工作笔记078---SpringBoot中使用sping事件驱动模型
  7. android学习笔记---62_自定义窗口标题
  8. Android学习笔记---19_采用ListView实现数据列表显示,以及各种适配器使用,和如何写自己的适配器
  9. Could not calculate build plan
  10. MYSQL集群的备份与恢复最终版本