前言
在 Bitcoin 派生币中,比特币小型(Bitcoin Nano)是一个基于比特币的去中心化数字货币,其交易信息需要经过签名才能被广播到网络中,而 btcnano-message
就是用来辅助实现信息签名的一个 npm 包。 本文将从安装,使用,以及一些进阶的用法。
安装
btcnano-message
是一个可以在 node.js 和浏览器端使用的 npm 包,首先需要保证你已经安装了 node.js 环境。
如果你访问 npm 速度较慢,可以使用该命令设置 npm 源(这里以淘宝镜像为例):
--- ------ --- -------- --------------------------------
接着,在项目根目录下运行以下代码完成包的安装:
--- ------- ---------------
使用
sign(message, privateKey, compressed)
签名函数,返回该信息的签名。主要参数包括 message
、privateKey
和 compressed
。
message
: 待签名的信息,支持string
或Buffer
类型。privateKey
: 使用的私钥,支持string
或Buffer
类型。compressed
: 是否压缩签名,默认值为true
。压缩可以让签名更短,但会略微增加计算时间。
以下是一个简单的使用示例:
----- -------------- - -------------------------- ----- ---------- - ------------------------------------------------------------------------------- ------ ----- ------- - ------- ------- ------ ----- --------- - ---------------------------- ----------- --------------------------------------
输出:
--------------------------------------------------------------------------------------------------------------------------------
verify(message, address, signature)
验证函数,返回验证结果 true
或 false
。 主要用于验证 sign
函数生成的签名是否正确。
message
: 待验证的信息。address
: 签名的地址。signature
: 需要验证的签名。
以下是一个基本的使用示例:
----- -------------- - -------------------------- ----- ------- - ------------------------------------ ----- ------- - ------- ------- ------ ----- --------- - ----------------------------------------------------------------------------------------------------------------------------------------------- ------ ------------------------------------------ -------- -----------
输出:
----
进阶用法
,magicSeed(magic)
该函数用于生成一个即将签名的"污染"seed值,以提高 SHA256d 算法的耐受性。 主要参数为 magic
,即种子污染器,支持任意string
或 Buffer
类型。如果不传入该参数,则默认使用 'Bitcoin Signed Message' 作为污染器。
以下是一个使用示例:
----- -------------- - -------------------------- ------------------------------------ ------- ----- ------ -- -- --- --- -- ---- -- --- -- --- -- ---- -- ---- -- ---- -- --- -- --- -- --- --- ---- --- ---- --- --- --- --- --- ---- --- --- --- ---- --- --- --- -- --- -- --- ---- --- --- --- ---- --- ---- --- --- --- --- --- ---- --- --- --- ---- --- ----
signCompact(message, privateKey, compressed, magic)
该函数用于生成一个压缩格式的签名,主要参数为:
message
: 待签名的信息,支持string
或Buffer
类型。privateKey
: 使用的私钥,支持string
或Buffer
类型。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