npm 包 btcnano-message 使用教程

阅读时长 7 分钟读完

前言

在 Bitcoin 派生币中,比特币小型(Bitcoin Nano)是一个基于比特币的去中心化数字货币,其交易信息需要经过签名才能被广播到网络中,而 btcnano-message 就是用来辅助实现信息签名的一个 npm 包。 本文将从安装,使用,以及一些进阶的用法。

安装

btcnano-message 是一个可以在 node.js 和浏览器端使用的 npm 包,首先需要保证你已经安装了 node.js 环境。

如果你访问 npm 速度较慢,可以使用该命令设置 npm 源(这里以淘宝镜像为例):

接着,在项目根目录下运行以下代码完成包的安装:

使用

sign(message, privateKey, compressed)

签名函数,返回该信息的签名。主要参数包括 messageprivateKeycompressed

  • message: 待签名的信息,支持 stringBuffer 类型。
  • privateKey: 使用的私钥,支持 stringBuffer 类型。
  • compressed: 是否压缩签名,默认值为 true。压缩可以让签名更短,但会略微增加计算时间。

以下是一个简单的使用示例:

输出:

verify(message, address, signature)

验证函数,返回验证结果 truefalse。 主要用于验证 sign 函数生成的签名是否正确。

  • message: 待验证的信息。
  • address: 签名的地址。
  • signature: 需要验证的签名。

以下是一个基本的使用示例:

输出:

进阶用法

,magicSeed(magic)

该函数用于生成一个即将签名的"污染"seed值,以提高 SHA256d 算法的耐受性。 主要参数为 magic,即种子污染器,支持任意stringBuffer 类型。如果不传入该参数,则默认使用 'Bitcoin Signed Message' 作为污染器。

以下是一个使用示例:

signCompact(message, privateKey, compressed, magic)

该函数用于生成一个压缩格式的签名,主要参数为:

  • message: 待签名的信息,支持 stringBuffer 类型。
  • privateKey: 使用的私钥,支持 stringBuffer 类型。
  • compressed: 是否压缩签名。默认值为 true
  • magic : 污染器种子,默认值为 'Bitcoin Signed Message'

以下是使用示例:

输出:

recoverCompact(message, signature, compressed, magic)

该函数用于从签名中提取出公钥,主要参数为:

  • message: 原始信息。
  • signature: 待验证的签名。
  • compressed: 签名是否压缩。默认值为 true
  • magic : 污染器种子,默认值为 'Bitcoin Signed Message'

以下是使用示例:

输出:

结语

btcnano-message 包提供了一种便捷、灵活的实现信息签名的方法,帮助我们更高效地完成开发。本篇文章对该 npm 包的安装、使用以及进阶用法作了详细介绍,并为读者提供了实用的示例代码,希望对大家有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005722e81e8991b448e8542

纠错
反馈