当前位置: 首页 > 软件库 > Web3 > 开源货币/比特币 >

BitcoinJS

比特币钱包 JS 操作库
授权协议 MIT
开发语言 JavaScript
所属分类 Web3、 开源货币/比特币
软件类型 开源软件
地区 不详
投 递 者 淳于宏伯
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

BitcoinJS 是一个纯 JavaScript 库,支持 Node.js 和浏览器,用于操作各种比特币钱包。

特性

  • 干净--纯 JavaScript,代码简洁,易于阅读。
  • 经过测试--覆盖率>95%,第三方集成测试。
  • 谨慎 - 对于小型的、集中的拉取请求,有两个人的审批流程。
  • 兼容--可在 Node.js 和所有现代浏览器上工作。
  • 强大--支持高级功能,如多签、高清钱包。
  • 安全--强大的随机数生成,PGP 签名发布,值得信赖的开发者。
  • 原则性--不支持垃圾 RNG 的浏览器(IE<11)。
  • 标准化--Node 社区编码风格,Browserify,Node 的 stdlib 和 Buffers。
  • 快速 - 优化的代码,使用类型化数组代替字节数组以提高性能。
  • 实验友好 - 支持 Bitcoin Mainnet 和 Testnet。
  • Altcoin-ready - 能够与比特币衍生货币(如 Dogecoin)一起工作。

示例代码:

//生成比特币地址
key = Bitcoin.ECKey.makeRandom()

// Print your private key (in WIF format)
console.log(key.toWIF())
// => 8c112cf628362ecf4d482f68af2dbb50c8a2cb90d226215de925417aa9336a48

// Print your public key (toString defaults to a Bitcoin address)
console.log(key.pub.getAddress().toString())
// => 14bZ7YWde4KdRb5YN7GYkToz3EHVCvRxkF

//开始交易
tx = new Bitcoin.Transaction()

// Add the input (who is paying) of the form [previous transaction hash, index of the output to use]
tx.addInput("aa94ab02c182214f090e99a0d57021caffd0f195a81c24602b1028b130b63e31", 0)

// Add the output (who to pay to) of the form [payee's address, amount in satoshis]
tx.addOutput("1Gokm82v6DmtwKEB8AiVhm82hyFSsEvBDK", 15000)

// Initialize a private key using WIF
key = Bitcoin.ECKey.fromWIF("L1uyy5qTuGrVXrmrsvHWHgVzW9kKdrp27wBC7Vs6nZDTF2BRUVwy")

// Sign the first input with the new key
tx.sign(0, key)

// Print transaction serialized as hex
console.log(tx.serializeHex())
// => 0100000001313eb630b128102b60241ca895f1d0ffca21 ...

// You could now push the transaction onto the Bitcoin network manually (see https://blockchain.info/pushtx)

 

  • const bitcoin = require("bitcoinjs-lib"); const network = bitcoin.networks.bitcoin; //正式网络 const ecpair = require("ecpair"); const ecc = require("tiny-secp256k1"); const ECPair = ecpair.ECPairFactory(

  •   目前网上很多生成区块链私钥、公钥等的代码都是基于bitcoinjs-lib@3版本实现的,现在bitcoinjs-lib已经更新到了@6.0.1版本。原先的代码已经不可用了。下面是基于bitcoinjs-lib@6.0.1的代码: const bitcoin=require('bitcoinjs-lib'); const TestNet=bitcoin.networks.testnet; co

  • 转账的时候需要手动寻找每一笔未花费记录实在太费时。 比特币转账需要提取或合并所有未花费的交易中的比特币,才能实现交易。 import * as bitcoin from 'bitcoinjs-lib'; import fetch, { Response } from 'node-fetch'; const quantitySat = 0.0001 * 1e8; const feeSat = 0.

  • 基于【bitcoinjs-lib】的转出钱包地址【是否隔离见证,生成方式】都会决定是否签名成功! import bitcoin from "bitcoinjs-lib"; /** * 实战环境温馨提示: * 1、基于【bitcoinjs-lib】转账交易封装比较复杂,更适合了解Bitcoin交易的原理【自己封装可能存在各种小Bug】 * 2、基于【bitcore-li

 相关资料
  • 在本节中,您将学习选择钱包的过程。为了参与比特币,你需要有一个钱包。钱包可用来接收比特币,发送比特币,存储比特币。在这里,将以的页面为例选择钱包。 Bitcoin.org是由Satoshi Nakamoto和Martti Malmi开发的网站。Martti不再是活跃的开发者,但他维护着网站,他没有参与比特币的开发。与任何特定的核心开发人员无关。它是一个开源项目,由全球社区负责处理。 Bitcoin

  • 比特币是人类历史上第一种数字货币。 什么是数字货币?一句话概括,数字货币是基于数学加密原理构建的不可伪造的货币系统,而比特币是第一个基于数学加密原理构建的分布式数字货币系统。 比特币和区块链有什么关系?一句话概括,比特币使用区块链技术实现了数字货币的可信支付。 比特币的历史可以追溯到2008年10月,一个名叫中本聪的神秘人物在一个密码学朋克论坛上发表了一篇比特币:一种点对点的电子现金系统的文章,这

  • 本节的目的是介绍如何了解和使用比特币,下图显示了如何学习比特币。 1. 了解比特币 比特币有一些特殊的品质。它的行为很像金钱,但它的行为方式却有所不同。例如:使用比特币,交易无法逆转。区块链网络中的每笔交易都是永久性的。这使得它与实际向银行汇款的情况不同,您可以在银行发出停止付款或发出逆转付款的错误付款。与实物货币相比,比特币也快速有效。 2. 选择钱包 在了解了比特币之后,需要做的第一件事就是安

  • 主要内容:比特币挖掘,比特币矿工的角色,比特币区块链是如何建造的?要了解比特币矿工的作用,我们首先了解比特币挖掘。 比特币挖掘 比特币挖掘是将交易记录添加到比特币过去交易的公共分类账的过程。过去交易的分类账称为区块链,因为它是一系列区块。比特币挖掘用于保护和验证交易到网络的其余部分。 示例 当Bob为Lisa创建购买请求时,他不会单独将其发送给Lisa。请求消息在他所连接的整个网络上广播。Bob的网络以图像形式描绘。 消息将传递到所有连接的节点(计算机)。图中的

  • 主要内容:比特币如何运作?比特币是由Satoshi Nakamoto 在2008年推出的。比特币是一种加密货币(虚拟货币),或者是一种使用密码学规则来监管和生成货币单位的数字货币。比特币属于加密货币的范畴,成为其中第一个也是最有价值的。它通常被称为分散数字货币。 比特币是一种数字资产,可以通过互联网安全地在双方之间进行买卖,转让。比特币可以用来存储价值,就像精金,白银和其他一些类型的投资一样。我们还可以使用比特币购买产品和

  • 在我们继续之前,我们需要先来知道“菲亚特”或“菲亚特货币”的含义。 菲亚特货币由政府宣布为其控制的领土内的法定货币。仅因政府监管或法律而具有价值的菲亚特货币不受黄金或白银等实物商品的支持。法定货币的价值来自供需关系和发行政府的稳定性,而不是支持它的商品的价值。它基于经济的信念和信誉。大多数现代纸币都是法定货币。 每个加密货币的新手都想知道如何兑现比特币或从比特币中提取到法定货币(美元,欧元,印度卢

  • 我有这样的数据集: 长度:233333450560650780限制:5400 现在我的问题是,从设定的最高长度到最低长度中选择项目,以弥补限制或尽可能接近。 我知道背包和最小硬币兑换都能解决我的问题。我想知道哪个更好。 请注意,硬币变化是使用贪婪算法,背包使用动态编程

  • 比特币确实是最安全的加密货币。它在协议的多个级别提供安全性。它经常呈现持续复杂的攻击。在本节中,我们将了解在比特币系统中的一些可能的攻击类型。 Sybil攻击 Sybil攻击发生在点对点网络中。恶意攻击者希望对比特币网络进行此攻击。在这种情况下,网络中的节点同时运行多个身份并破坏信誉系统中的权限。其主要目的是在网络中获得大部分影响力,以在系统中执行非法行为。 Sybil攻击难以检测和预防,但以下措