truffle部署指定的合约到指定网络
摘要: 在truffle中部署指定的合约,可以根据文件的Index来区别,比如,/migrations目录下,有如下三个文件: 1_inital_migrations.js
在truffle中部署指定的合约,可以根据文件的Index来区别,比如,/migrations目录下,有如下三个文件:
1_inital_migrations.js
2_deploy_HWT.js
3_deploy_SZT.js
部署第2个合约:2_deploy_HWT.js,使用命令:
migrate -f 2 --to 2
同理,部署第3个合约:2_deploy_SZT.js,使用命令:
migrate -f 3 --to 3
类推,部署第n个合约: n_deploy_XXX.js,使用命令:
migrate -f n --to n
1 进入指定的网段
1.1 公共配置
开启truffle-config.js里的助记词、私钥等配置。
const fs = require('fs');const HDWalletProvider = require('@truffle/hdwallet-provider');
const infuraKey = fs.readFileSync(".infuraKey").toString().trim();
const mnemonic = fs.readFileSync(".mnemonic").toString().trim();
1.2 ropsten网段配置
在truffle-config.js的networks字段里,开启ropsten网段配置
ropsten: {provider: () => new HDWalletProvider(mnemonic, `https://ropsten.infura.io/v3/` + infuraKey),network_id: 3, // Ropsten's idgas: 5500000, // Ropsten has a lower block limit than mainnetconfirmations: 2, // # of confs to wait between deployments. (default: 0)timeoutBlocks: 20000, // # of blocks before a deployment times out (minimum/default: 50)skipDryRun: true, // Skip dry run before migrations? (default: false for public nets )port: 8545},
1.3 rinkeby网段配置
在truffle-config.js的networks字段里,开启rinkeby网段配置
rinkeby: {provider: () => new HDWalletProvider(mnemonic, `https://rinkeby.infura.io/v3/` + infuraKey),network_id: 4,},
1.4 kovan网段配置
在truffle-config.js的networks字段里,开启kovan网段配置
kovan: {provider: () => new HDWalletProvider(mnemonic, `https://kovan.infura.io/v3/` + infuraKey),network_id: 42,},
1.5 主网配置
在truffle-config.js的networks字段里,开启主网配置
mainnet: {provider: () => new HDWalletProvider(mnemonic, `https://mainnet.infura.io/v3/` + infuraKey),network_id: 1,},
1.6 ganache配置
在truffle-config.js的networks字段里,添加一个ganache网段,用于本地测试
ganache: {host: "127.0.0.1", // Localhost (default: none)port: 8545, // Standard Ethereum port (default: none)network_id: "*", // Any network (default: none)},
truffle-config.js的完整配置如下:
//truffle-config.js
const fs = require('fs');const HDWalletProvider = require('@truffle/hdwallet-provider');
const infuraKey = fs.readFileSync(".infuraKey").toString().trim();
const mnemonic = fs.readFileSync(".mnemonic").toString().trim();module.exports = {networks: {ganache: {host: "127.0.0.1", // Localhost (default: none)port: 8545, // Standard Ethereum port (default: none)network_id: "*", // Any network (default: none)},// development: {// host: "127.0.0.1", // Localhost (default: none)// port: 8545, // Standard Ethereum port (default: none)// network_id: "*", // Any network (default: none)// },// develop: {// host: "127.0.0.1", // Localhost (default: none)// port: 8545, // Standard Ethereum port (default: none)// network_id: "*", // Any network (default: none)// gas: 8500000, // Gas sent with each transaction (default: ~6700000)// gasPrice: 20000000000, // 20 gwei (in wei) (default: 100 gwei)// },// Another network with more advanced options...// advanced: {// port: 8777, // Custom port// network_id: 1342, // Custom network// gas: 8500000, // Gas sent with each transaction (default: ~6700000)// gasPrice: 20000000000, // 20 gwei (in wei) (default: 100 gwei)// from: <address>, // Account to send txs from (default: accounts[0])// websockets: true // Enable EventEmitter interface for web3 (default: false)// },// Useful for deploying to a public network.// NB: It's important to wrap the provider as a function.ropsten: {provider: () => new HDWalletProvider(mnemonic, `https://ropsten.infura.io/v3/` + infuraKey),network_id: 3, // Ropsten's idgas: 5500000, // Ropsten has a lower block limit than mainnetconfirmations: 2, // # of confs to wait between deployments. (default: 0)timeoutBlocks: 20000, // # of blocks before a deployment times out (minimum/default: 50)skipDryRun: true, // Skip dry run before migrations? (default: false for public nets )port: 8545},rinkeby: {provider: () => new HDWalletProvider(mnemonic, `https://rinkeby.infura.io/v3/` + infuraKey),network_id: 4,},kovan: {provider: () => new HDWalletProvider(mnemonic, `https://kovan.infura.io/v3/` + infuraKey),network_id: 42,},mainnet: {provider: () => new HDWalletProvider(mnemonic, `https://mainnet.infura.io/v3/` + infuraKey),network_id: 1,},// Useful for private networks// private: {// provider: () => new HDWalletProvider(mnemonic, `https://network.io`),// network_id: 2111, // This network is yours, in the cloud.// production: true // Treats this network as if it was a public net. (default: false)// }},// Set default mocha options here, use special reporters etc.mocha: {timeout: 300000,reporter: 'eth-gas-reporter',reporterOptions: { excludeContracts: ['Migrations'] }},// Configure your compilerscompilers: {solc: {version: "0.5.12", // Fetch exact version from solc-bin (default: truffle's version)// docker: true, // Use "0.5.1" you've installed locally with docker (default: false)// settings: { // See the solidity docs for advice about optimization and evmVersion// optimizer: {// enabled: false,// runs: 200// },// evmVersion: "byzantium"// }},},
};
2 部署指定合约到指定网络
2.1 进入ropsten并部署
按Ctrl+C、Ctrl+D,退出当前的truffle控制台,重新使用如下命令:
truffle console --network ropsten
//部署第2个合约
migrate -f 2 --to 2
2.2 进入rinkeby并部署
按Ctrl+C、Ctrl+D,退出当前的truffle控制台,重新使用如下命令:
truffle console --network rinkeby
//部署第2个合约
migrate -f 2 --to 2
2.3 进入kovan并部署
按Ctrl+C、Ctrl+D,退出当前的truffle控制台,重新使用如下命令:
truffle console --network kovan
//部署第2个合约
migrate -f 2 --to 2
2.4 进入主网并部署
按Ctrl+C、Ctrl+D,退出当前的truffle控制台,重新使用如下命令:
truffle console --network mainnet
//部署第2个合约
migrate -f 2 --to 2
2.5 进入ganache并部署
按Ctrl+C、Ctrl+D,退出当前的truffle控制台,重新使用如下命令:
truffle console --network ganache
//部署第2个合约
migrate -f 2 --to 2
truffle部署指定的合约到指定网络相关推荐
- 【区块链】Truffle 部署 编译 测试 智能合约 的 完整实践操作
本文首发自我的CSDN博客,原文链接如下 blog.csdn.net/diandianxiy- 目标 搭建开发环境 创建一个Truffle项目 编写智能合约 编译转移智能合约 测试智能合约 创建用户界 ...
- PIM-SM DR指定路由器以及 PIM-DM指定前转器的区别 【转自网络】
很多同学将PIM-SM DR指定路由器以及 PIM-DM指定前转器的概念搞混,这里做个解释,希望能帮助大家理清. 1.PIM-SM DR 指定路由器 PIM在每一个多路访问网络,使用PIM ...
- 以太坊Dapp开发通过truffle部署合约
以太坊Dapp开发通过truffle部署合约 Truffle是一个非常流行 DApp 开发框架,他可以帮我们处理掉大量无关紧要的小事情,让我们可以迅速开始写代码-编译-部署-测试-打包DApp这个流程 ...
- 我自己可以挖矿了!使用Ethereum C++客户端Aleth建一个私有网络,并使用Remix部署一个智能合约
本文是按照这个教程执行的结果记录:Creating a private network and deploying a contract with Remix Ethereum Aleth在Wins上 ...
- 如何开发并部署Solana智能合约
如果你想学习如何开发Solana智能合约和项目,那么你来对地方了. Solana是一个新兴的.高性能的且无许可的公链,它提供了快速.经济且可扩展的交易体验,并且它还支持使用Rust,C++和C语言来编 ...
- 深入解析Safe多签钱包智能合约:代理部署与核心合约
概述 读者可以前往我的博客获得更好的阅读体验 Safe(或称Gnosis Safe)是目前在以太坊中使用最为广泛的多签钱包.本文主要解析此钱包的逻辑设计和代码编写. 读者可以前往Safe Contra ...
- 以太坊智能合约Java_以太坊:调用已部署的智能合约
目录 1. 调用已部署的智能合约 相关截图来自: 1.1. ABI是payload编码的依据 ABI,应用二进制接口(Application Binary Interface).它是从区块链外部与合约 ...
- 以太坊Dapp通过web3js部署调用智能合约
通过web3js部署调用智能合约 1.在线编译智能合约 2.部署合约 3.调用合约 参考视频:https://www.bilibili.com/video/BV14z4y1Z7Jd?p=1 1.在线编 ...
- 002开发、部署一个共享自行车区块链网络
前言 在本系列第 1 部分文章的中,我们一起学习了 Fabric.Composer 基础知识,利用 Hyperledger Compose 搭建了 Fabric 本地开发环境,运行了一个示例区块链网络 ...
- VBA实战技巧精粹012:查找指定目录下的指定文件及Dir函数用法
问题:有处理学生评语,限于网络条件,往往学生提交的都是单个文件,这就需要将其一一提取出来,然后进行判断.导出等操作,但首先要解决的就是查找所有文件如何操作,这里需要用到Dir函数,当然创建一个文件搜索 ...
最新文章
- 收发机中数字中频的设计
- mysql 进阶到高级_mysql的高级进阶(一)
- 操作系统课设--使用信号量解决生产者/消费者同步问题
- 如何读H.264的标准和代码
- 华为提出 New IP,欲打破长达半世纪的IP协议重塑互联网
- Flink 1.10 Native Kubernetes 原理与实践
- CorelDRAWX4的VBA插件开发(十五)选择分辨率一键导出多张图片到桌面
- php 检查货币类型_php 判断函数是否为费用类型(金额/货币:6.02)有小数点
- Android之Binder和AIDL原理
- 新win10计算机分区,预装win10系统新电脑怎么分区
- 怎么注册购买163VIP邮箱
- docker-compose 安装常用服务
- 从软件工程师到有赞新零售技术负责人,34岁李星专访
- 设置Win10防火墙规则,使得局域网能访问此电脑的Tomcat服务器
- VOLTE-QOS服务质量
- 计算机与网络基础知识的问答
- 【Pranet】论文及代码解读(ResNet部分)——jialiang nie
- UI设计——网站收藏
- 水星UD6S网卡Linux驱动,水星UD6S无线网卡驱动(修复水星UD6S无线网卡连接异常问题)V1.0 免费版...
- 《ROS理论与实践》学习笔记(九)机器人自主导航
热门文章
- ios中UIWebview和asiHttprequest的用法
- 多项式函数插值:计算基本理论
- webstorm添加*.vue文件代码提醒支持webstorm支持es6vue里支持es6写法
- javaweb实现教师和教室管理系统 java jsp sqlserver
- Swift - 设置UIView的背景色和背景图片
- Ubuntu Linux 8.04 Vsftp 虚构用户设置
- Windows Server 2008 R2 小技巧
- homebrew下安装mysql_Mac下homebrew安装Mysql以及配置问题
- 拓端tecdat|R语言中使用RCPP并行计算指数加权波动率
- 拓端tecdat|R语言相关分析和稳健线性回归分析