第256k1节
@bitcoinerlab/secp256k1是一个用于在secp256k1曲线上执行椭圆曲线操作的Javascript文库. 它旨在融入 比特币JS 财务报告和审定财务报表 比特币LAB 生态系统和生态系统使用 贵族曲线库,由 保罗·米勒。 。 。 .
此库与不支持Web Assembly的环境相兼容, 如 React Industrial.
特征
- 与 BitcoinJS 兼容 喜闻乐见 财务报告和审定财务报表 第32页 工厂功能.
- 根据已审计代码 @ noble/ 曲线。 。 。 .
- 可用于不支持WASM的环境,例如React Introduct.
- 使用与 微秒256k1。 。 。 .
安装
要安装软件包, 请使用 npm :
npm install @bitcoinerlab/secp256k1
2版本需要Node.js 20.19或更新. 该软件包保留其通用JS切入点,同时只使用无害环境管理 @noble/curves 第2版依赖.
使用量
API 密码
这一实施遵循了微秒256k1 API. 请参考 微秒256k1 关于方法的文件.
-
xOnlyPointAddTweakCheck:此方法尚未实施. 它没有用于ecpair或者说bip32。 。 。 . -
signSchnorr: 从1.2.0版本开始,此函数偏离精确的行为映射bitcoinjs/tiny-secp256k1并且不再初始化辅助随机数据参数(e)默认为零填充数组。 相反,它要求呼叫者在需要时明确提供随机性. 如果省略,基础执行使用加密安全随机性(通过crypto.getRandomValues) (中文(简体) ). 关于这一变化的更详细情况,见讨论 这里 和结论 这里。 。 。 .
实例
您可以使用在线游乐场演示来测试本节中的实例 https://bitcoinerlab.com/modules/secp256k1 (中文(简体) )。 。 。 .
import ecc from '@bitcoinerlab/secp256k1';
import { BIP32Factory } from 'bip32';
import { ECPairFactory } from 'ecpair';
const BIP32 = BIP32Factory(ecc);
const ECPair = ECPairFactory(ecc);
const keyPair1 = ECPair.fromWIF(
'KynD8ZKdViVo5W82oyxvE18BbG6nZPVQ8Td8hYbwU94RmyUALUik'
);
const node = BIP32.fromBase58(
'xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi'
);
使用反应原生
@noble/curves 使用 Javascript BigInt,在 iOS 上的 React Industrial 中完全支持。 然而,为了在Android上使用它,你必须确保使用Hermes Javascript引擎,从 RN-0.70 发布。 。 。 .
贵族用途 crypto.getRandomValues 用于施诺尔辅助随机和斯卡尔盲等操作. 不提供反应的土著环境必须安装兼容的多填充器,例如 react-native-get-random-values。 。 。 .
作者和贡献者
该项目最初是开发的,目前由 何塞-路易斯·兰达巴索欢迎其他开发者的贡献和帮助.
以下是一些帮助您开始捐款的资源:
从源头建楼
要下载源代码并构建项目,请遵循这些步骤:
- 清除仓库 :
git clone https://github.com/bitcoinerlab/secp256k1.git
- 安装依赖性 :
npm install
- 构建工程 :
npm run build
这将构建工程并生成必要的文件 dist 目录.
测试
在实施任何代码之前,确保通过运行来通过所有测试:
npm run test
许可证发放
这个项目根据麻省理工学院的许可证获得许可.
承认
感谢保罗·米勒创立和维护了这个图书馆所基于的贵族-曲线图书馆.
感谢BitcoinJS团队创建和维护了BitcoinJS生态系统,包括ecpair和bip32图书馆,这个图书馆是设计与它们融合的.
感谢小-secp256k1团队创建和维护了小-secp256k1库,这个库用于测试.