NPM 包 truffle-privatekey-provider 使用教程

NPM 包 truffle-privatekey-provider 使用教程

在以太坊(Ethereum)开发中,使用 truffle 部署智能合约通常需要一个私钥来进行执行。但是在敏感操作中,很多人不想将私钥暴露在代码中,因此有了 truffle-privatekey-provider 这个 NPM 包。本篇文章将向你介绍如何使用这个包来保护你的私钥并部署智能合约。

前置知识

在使用本篇文章中的示例代码前,需要掌握以下知识点:

  • JavaScript
  • Node.js
  • Solidity(以太坊智能合约开发语言)
  • truffle(以太坊开发框架)

安装

使用以下命令安装 truffle-privatekey-provider:

--- ------- ---------------------------

使用

在使用 truffle-privatekey-provider 之前,我们需要准备好以下文件:

  • truffle.js(或 truffle-config.js):truffle 的配置文件
  • 私钥文件:保存有私钥的文件(例如 keystore 文件)

配置 truffle.js

在 truffle.js 中,我们需要引入 truffle-privatekey-provider 并对其进行配置。具体代码如下:

----- ------------------ - ---------------------------------------
----- ---------- - -------------------------------------------------------------------

-------------- - -
  --------- -
    ------------ -
      ----- ------------
      ----- -----
      ----------- ---
    --
    -------- -
      --------- -- -- --- ------------------------------ ------------------------------
      ----------- --
      ---- -------
    --
    -------- -
      --------- -- -- --- ------------------------------ ------------------------------
      ----------- --
      ---- -------
    --
  --
--

以上代码设置了三个网络:

  • development:本地开发网络,使用默认的本地节点端口。
  • ropsten:Ropsten 测试网络,使用 Infura 公共节点。请将 替换成你的私钥文件路径,以及在 provider 中填写你在 Infura 上的项目 ID。
  • mainnet:以太坊主网络,使用 Infura 公共节点。同上。

注意,这里的私钥文件需要在保护措施良好的服务器上保存,并且只有有权访问该服务器的人才能够获得私钥。另外,你也可以替换掉这里使用的 Infura 节点,改用你自己部署的以太坊节点。

部署智能合约

在 truffle 中,使用以上 truffle.js 配置文件中定义的网络,可以通过以下命令来部署智能合约:

------- -------

以上命令默认会将合约部署到 development 网络。如果需要部署到其他网络,可以通过以下命令来指定网络:

------- ------- --------- --------------

其中, 可以是定义在 truffle.js 中的任意网络。

示例代码

本篇文章中的所有代码均保存在以下仓库中,供读者学习参考:

https://github.com/UniRegistries/truffle-privatekey-provider-demo

本仓库中包含的代码文件有:

  • truffle.js:truffle 配置文件,需要根据自己的需求修改。
  • contracts/Migrations.sol:一个简单的 Solidity 合约。
  • migrations/1_initial_migration.js:一个 truffle 自带的部署脚本,用于部署 Migrations.sol 合约。
  • scripts/getBalance.js:一个简单的 Node.js 脚本,用于查询指定地址的以太币余额。
  • scripts/sendTransaction.js:一个简单的 Node.js 脚本,用于转账以太币。

通过以上示例代码,读者可以学习到如何在 truffle 开发中使用 truffle-privatekey-provider 来保护私钥。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/194710


猜你喜欢

  • npm 包 @types/url-join 使用教程

    本文将向大家介绍如何使用 npm 包 @types/url-join。这是一个 JavaScript 库,用来处理 URL 路径的连接问题。我们将深入讨论该包的各个方面,并给出具体的使用示例。

    5 年前
  • npm 包 `angular-tslint-rules` 使用教程

    angular-tslint-rules 是一个 TSLint 规则集合,旨在提高 Angular 项目代码的质量。该规则集集成了 Angular 官方风格指南,并添加了一些自定义规则。

    5 年前
  • npm 包 @types/quill 使用教程

    在前端开发中,我们通常会用到富文本编辑器来编辑页面内容。而 quill.js 是一个非常流行的富文本编辑器框架,基于 JavaScript 实现,并支持多种自定义配置和扩展。

    5 年前
  • npm 包 @types/pdfjs-dist 使用教程

    PDF.js 是一个用于网页上显示 PDF 文件的 JavaScript 库,而 @types/pdfjs-dist 是一个 TypeScript npm 包,提供了用 TypeScript 编写使用...

    5 年前
  • npm 包 @types/openlayers 使用教程

    在前端开发中,经常需要使用地图作为交互界面的一部分,而 OpenLayers 是一个强大的开源 JavaScript 库,可以创建互动、响应式的地图。@types/openlayers 是一个 npm...

    5 年前
  • NPM包@types/jasminewd2使用教程

    在前端开发中,Jasmine是一个流行的JavaScript测试框架,而@types/jasminewd2是一个TypeScript声明文件,用于在使用Jasmine和Selenium WebDriv...

    5 年前
  • npm 包 @types/echarts 使用教程

    介绍 在前端领域中,ECharts 是一个非常流行的数据可视化库,它有着丰富的图表类型和灵活的配置选项。 为了让 TypeScript 用户能够更方便的使用 ECharts,社区推出了一个名为 @ty...

    5 年前
  • npm 包 @angularclass/hmr 使用教程

    在前端开发中,Hot Module Replacement(热模块替换)是一个非常有用的技术,它可以在应用运行的时候快速更新部分代码而不需要完全刷新页面。@angularclass/hmr 是一个特别...

    5 年前
  • npm 包 @angular/language-service 使用教程

    随着前端技术的不断发展,前端框架也越来越多。其中,Angular 是一款非常流行的前端框架,它采用了 TypeScript 作为开发语言。而 @angular/language-service 这个 ...

    5 年前
  • npm 包 st-cesium 使用教程

    st-cesium 是一个基于 Cesium.js 的前端组件库,提供了许多 Cesium.js 的封装和拓展,使开发者能够更加轻松地在 web 页面上添加 3D 地球、建筑物等元素。

    5 年前
  • npm 包 ngx-quill 使用教程

    ngx-quill 是一个基于 Quill 富文本编辑器的 Angular 组件库,可以方便地将富文本编辑器集成到 Angular 应用程序中。本文将详细介绍如何使用 ngx-quill。

    5 年前
  • npm 包 ngx-openlayers 使用教程

    引言 ngx-openlayers 是基于 OpenLayers 封装的一个 Angular 组件库,它可以轻松实现地图展示、标注和交互,是开发地图相关项目的好帮手。

    5 年前
  • npm 包 ngx-echarts 使用教程

    前言 前端数据可视化越来越重要,而 Echarts 作为国内较为流行的数据可视化工具库,在各类可视化场景中都有广泛的使用。而 ngx-echarts 这个 npm 包则是集成了 Echarts 和 A...

    5 年前
  • npm 包 ngx-cookie-service 使用教程

    Cookie 是一种在 Web 开发中被广泛使用的方法,用来存储用户相关数据,比如用户的登录状态。在前端,我们可以通过 JavaScript 来读写 Cookie。

    5 年前
  • npm包fundebug-javascript使用教程

    Fundebug是一种用于JavaScript应用程序错误监控、跟踪和诊断的工具。它可以帮助开发者快速定位问题并提高代码质量。本文将介绍如何安装和使用npm包fundebug-javascript,展...

    5 年前
  • npm 包 angular2-text-mask 使用教程

    在前端应用程序的开发中,数据验证和格式化是很重要的一部分。在 Angular 应用程序中,我们可以使用 angular2-text-mask 来格式化我们的输入数据。

    5 年前
  • npm 包 @ng-dynamic-forms/ui-material 使用教程

    简介 在前端领域,使用 Angular 构建动态表单是一项重要的技能。@ng-dynamic-forms/ui-material 是一个用于构建动态表单的 npm 包,基于 Angular Mater...

    5 年前
  • npm 包 @ng-dynamic-forms/core 使用教程

    前端开发人员经常需要在 Angular 应用程序中处理表单。在某些情况下,表单是静态的,不需要动态生成。然而,在其他情况下,表单可能需要根据后端数据的动态生成。在这种情况下,可以使用 @ng-dyna...

    5 年前
  • npm 包 @ncstate/sat-popover 使用教程

    @ncstate/sat-popover 是一个基于 Angular Material 设计的弹出框组件,它可以帮助开发者构建自己的 popover。本文将介绍如何使用该组件,并给出示例代码以加深对其...

    5 年前
  • npm 包 @mat-datetimepicker/moment 使用教程

    在前端开发中,时间处理一直是一个相当重要的问题。而在 Angular 项目中,使用 @mat-datetimepicker/moment 这个 npm 包可以方便地操作日期和时间。

    5 年前

相关推荐

    暂无文章