以太坊之使用truflle和infura部署以太坊合约|猿创征文

╰つ栺尖篴夢ゞ ╰つ栺尖篴夢ゞ 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

## 一、前言
- Infura 是一个托管的以太坊节点集群,可以将你开发的以太坊智能合约部署到 infura 提供的节点上,而无需搭建自己的以太坊节点。
- 出于安全原因,Infura 不管理你的私钥,这意味着 Infura 不能代表你签署交易。但是,Infura 可以通过使用
 HDWalletProvider 来签署交易。该服务可以处理事务签名以及与以太坊网络的连接。

## 二、安装 HDWalletProvider
- Infura 的 HDWalletProvider 是一个独立的 npm 软件包, 如下安装:

```cpp
npm install truffle-hdwallet-provider
```
- 如果在 Windows 上安装并且遇到 MSBUILD 错误,则可能需要安装 Windows 构建工具。在具有管理员权限的控制台中, 运行 npm install -g windows-build-tools 然后再次尝试安装。

## 三、注册 Infura
- 在使用 Infura 之前,需要注册Infura访问令牌,填写并提交表格后你就可以收到访问令牌。
- 相关信息将显示在屏幕上并发送到你提供的电子邮件,需要记录下来这个访问令牌并确保它不被别人看到。

## 四、配置 Truffle 项目
- 接下来是编辑你的 truffle.js 文件来启用 HDWalletProvider,并为部署到 Ropsten 进行必要的配置。
- 首先,在配置文件中定义 HDWalletProvider 对象,在 truffle.js 文件 的顶部添加以下代码:

```cpp
var HDWalletProvider = require("truffle-hdwallet-provider");
```
- 接下来,提供助记词(mnemonic)来生成你的账户:

```cpp
varmnemonic = "orange apple banana ...";
```
- 在此过程中,建议将助记符存储在另一个(秘密)文件中,以降低助记符泄漏风险。如果有人知道助记符,他们将拥有你所有的地址和私钥。
- 添加 Ropsten 网络定义:

```cpp
module.exports = {
    networks: {
        ropsten: {
            provider: function() {
                return new HDWalletProvider(mnemonic,"https://ropsten.infura.io/<INFURA_Access_Token>")
                },
            network_id: 3
        }
    }
};
```
- 注意事项:
- - 虽然该示例仅定义了单个网络,但你可以像往常一样定义多个网络。
- - ropsten 网络定义中的 provider 将使用实例化的 HDWalletProvider。
- - HDWalletProvider 以助记符和期望的网络为参数,Infura 主页上提供 Infura 支持的网络列表。
- - 确保使用前面拿到的 Infura 访问令牌替换。
- provider 值被封装在一个函数中,这可以确保它在需要之前不会被初始化。如果连接到多个网络,这一点尤为重要。
- 默认情况下,由助记符产生的第一个账户将负责执行合约迁移任务。但如果需要的话,你可以传入参数以指定使用的帐户。例如,要使用第三个帐户:

```cpp
new HDWalletProvider(mnemonic, "https://ropsten.infura.io/<Infura_Access_Token>", 2);
```
- 账户索引是从零开始的,所以 2 表示第三个地址。
## 五、使用 Faucet 获取 ether
- 确保你的帐户有足够的账户余额来进行部署,可以通过称 Faucet 的服务在 Ropsten 网络上获取 Ether。
- 虽然在那里有多个 Faucet 网站,推荐的一个服务是在 EthTools 上托管的:
- - 导航至 EthTools 的 Ether Faucet;
- - 输入你的助记符, 并选择你想要多少 ether(最多 5 个);
- - Faucet 将链接到你的第一个帐户,点击“Request Ether” 提交请求。
- - 很快,你的账户将获得请求的 ether。

## 六、部署合约
- 编译项目:

```cpp
truffle compile
```
- 部署到 Ropsten 网络:

```cpp
truffle migrate --network ropsten
```
- 如果一切顺利,应该可以看到类似于以下内容的输出:

```cpp
Using network 'ropsten'.
Running migration: 1_initial_migration.js
 Deploying Migrations...
  ...0xd79bc3c5a7d338a7f85db9f86febbee738ebdec9494f49bda8f9f4c90b649db7
  Migrations: 0x0c6c4fc8831755595eda4b5724a61ff989e2f8b9
Saving successful migration to network...
  ...0xc37320561d0004dc149ea42d839375c3fc53752bae5776e4e7543ad16c1b06f0
Saving artifacts...
Running migration: 2_deploy_contracts.js
  Deploying MyContract...
  ...0x7efbb3e4f028aa8834d0078293e0db7ff8aff88e72f33960fc806a618a6ce4d3
  MyContract: 0xda05d7bfa5b6af7feab7bd156e812b4e564ef2b1
Saving successful migration to network...
  ...0x6257dd237eb8b120c8038b066e257baee03b9c447c3ba43f843d1856de1fe132
Saving artifacts...
```
- 需要提醒的是,你的交易 ID 将与上面的不同。
- 注意:如果收到错误Error: Exceeds block gas limit,你可能需要为合约手动设置油量上限(gas limit)。
- 如果想验证合约是否已成功部署,可以在 Etherscan 的 Ropsten 部分进行检查。在搜索字段中,输入部署交易 ID。在上面的例子中,交易 ID 是:

```cpp
0x7efbb3e4f028aa8834d0078293e0db7ff8aff88e72f33960fc806a618a6ce4d3
```
- 你应该可以看到有关交易的详细信息,包括交易受到保护的区块号。
- 恭喜,你已经使用 Infura 和 truffle 的组合将合约部署到 Ropsten 上了。
 

...全文

相关推荐

2026安卓开发从零实战指南:环境搭建、核心基础与避坑干货(适配新版Android_Studio).pdf

2026安卓开发从零实战指南:环境搭建、核心基础与避坑干货(适配新版Android_Studio).pdf

彼岸交流群

如何实现科研成果转化率的有效提升与技术市场精准对接?.docx

如何实现科研成果转化率的有效提升与技术市场精准对接?

BIZKEEN

基于PID控制的ABS汽车防抱死制动系统、车轮滑移率+最优滑移率Carsim和Simulink联合仿真(带参考文献)

内容概要:本文档系统研究了基于PID控制的ABS汽车防抱死制动系统,聚焦于车轮滑移率与最优滑移率的动态控制问题,采用Carsim与Simulink联合仿真平台构建高精度车辆动力学模型与控制系统。研究详细阐述了ABS的工作机理,通过设计PID控制器实时调节制动压力,确保车轮滑移率稳定在最优区间,从而最大化轮胎与路面间的摩擦力,提升制动效能与行车安全性。文档涵盖了完整的建模流程、控制策略设计、仿真验证方法及参数整定过程,并提供了详实的参考文献支持,增强了研究的可复现性与工程应用价值。; 适合人群:具备车辆工程、自动化或控制理论等相关专业背景,熟悉MATLAB/Simulink与Carsim仿真环境的研究生、科研人员及汽车行业技术研发工程师。; 使用场景及目标:①用于ABS控制算法的教学讲解与科研实验;②支撑车辆制动性能优化、主动安全系统开发等实际工程应用;③为相关学术论文撰写、课题复现与技术创新提供理论依据与技术参考。; 阅读建议:建议读者结合所提供的仿真模型与参考文献,逐步运行并调试代码,重点关注滑移率计算逻辑、PID参数整定方法及联合仿真的数据交互机制,同时可尝试引入模糊控制、自适应控制等先进算法进行对比分析,以深入掌握ABS系统的控制精髓与优化路径。

荔枝科研社

高校如何利用技术转移数据分析优化成果转化路径?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

MATLAB采用改进的PSO实现AUV三维路径规划,配备自适应惯性权重、距离演化因子和跳出机制。.zip

MATLAB采用改进的PSO实现AUV三维路径规划,配备自适应惯性权重、距离演化因子和跳出机制。.zip

海神之光
评论
收藏 已收藏
分享
返回顶部
╰つ栺尖篴夢ゞ
╰つ栺尖篴夢ゞ 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
Ethereum中文社区 362 成员 114 内容