Fantastisches Community-Modul

BitcoinJS (bitcoinjs-lib)

Build-Status NPM Tipp für das nächste Commit

js-standard-style

Die reine JavaScript-Bitcoin-Bibliothek für node.js und Browser. Wird voraussichtlich von über 15 Millionen Wallet-Benutzern verwendet und ist das Rückgrat für fast alle Bitcoin-Web-Wallets, die derzeit in Produktion sind.

Eigenschaften

  • Clean : Reines JavaScript, prägnanter Code, einfach zu lesen.
  • Tested : Abdeckung> 90%, Integrationstests von Drittanbietern.
  • Careful : Zwei-Personen-Genehmigungsprozess für kleine, fokussierte Pull-Anfragen.
  • Compatible : Funktioniert mit Node.js und allen modernen Browsern.
  • Powerful : Unterstützung für erweiterte Funktionen wie Multi-Sig, HD Wallets.
  • Secure : Starke Zufallszahlengenerierung, von PGP signierte Releases, vertrauenswürdige Entwickler.
  • Principled : Keine Unterstützung für Browser mit Mist-RNG (IE <11)
  • Standardized : Codierungsstil der Knoten-Community, Browserify, stdlib des Knotens und Puffer.
  • Fast : Optimierter Code, verwendet typisierte Arrays anstelle von Byte-Arrays für die Leistung.
  • Experiment-friendly : Bitcoin Mainnet- und Testnet-Unterstützung.
  • Altcoin-ready : Kann mit von Bitcoin abgeleiteten Kryptowährungen (wie Dogecoin) arbeiten.

Soll ich das in der Produktion verwenden?

Wenn Sie den Master-Zweig dieser Bibliothek in der Produktion verwenden möchten , stoppen Sie . Master ist nicht stabil, es ist unser Entwicklungszweig, und nur getaggte Releases können als stabil klassifiziert werden .

Installation

1
npm install bitcoinjs-lib

Setup

Node.js

1
var bitcoin = require('bitcoinjs-lib')

Browser

Wenn Sie mit der Verwendung von browserify vertraut sind, ignorieren Sie dies und fahren Sie normal fort. Diese Schritte sind nur zur Empfehlung gedacht und möglicherweise nicht für Ihre Anwendung geeignet.

Für diese Schritte wird davon ausgegangen, dass Browserify installiert ist.

Erstellen index.js für Ihr Projekt eine index.js Datei

1 2 3 4 5 6 7 8 9 10
let bitcoin = require('bitcoinjs-lib') // your code here function myFunction () { return bitcoin.ECPair.makeRandom().toWIF() } module.exports = { myFunction }

Nun zum Kompilieren für den Browser:

1
browserify index.js --standalone foo > app.js

Sie können jetzt <script src="app.js" /> in Ihre Webseite foo.myFunction und mit foo.myFunction einen neuen privaten Bitcoin-Schlüssel erstellen.

ANMERKUNG : Wenn Sie das Javascript hässlich machen, müssen Sie die folgenden Variablennamen von der ECPair ausschließen: BigInteger , ECPair , Point . Dies liegt an der in typeforce verwendeten Funktionsnamen-Enten-Typisierung.

Beispiel:

1
uglifyjs ... --mangle reserved=['BigInteger','ECPair','Point']

HINWEIS : Diese Bibliothek verfolgt die LTS-Funktionen des Knotens. Wenn Sie striktes ES5 benötigen, verwenden Sie --transform babelify in Verbindung mit Ihrem browserify Schritt (unter Verwendung einer es2015 Voreinstellung).

HINWEIS : Wenn Sie erwarten, dass diese Bibliothek auf einem iOS 10-Gerät ausgeführt wird, stellen Sie sicher, dass Sie buffer@5.0.5 oder höher verwenden.

Typescript or VSCode users

Typdeklarationen für Typescript sind für Version ^3.0.0 der Bibliothek verfügbar.

1
npm install @types/bitcoinjs-lib

Sie können jetzt bitcoinjs-lib als bitcoinjs-lib Bibliothek verwenden.

1
import { HDNode, Transaction } from 'bitcoinjs-lib'

Für VSCode (und andere Editoren) wird Benutzern empfohlen, die Typdeklarationen zu installieren, da Intellisense diese Informationen zum Codieren verwendet (automatische Vervollständigung, statische Analyse).

Melden Sie alle typskriptbezogenen Fehler unter @dlebrecht DefinitelyTyped Fork und senden Sie PRs an DefinitelyTyped

Flow

Definitionen für Flow Typechecker sind im Flow- Typ -Repository verfügbar.

Sie können sie entweder direkt vom Repo oder über die Flow-Typ-CLI herunterladen

1 2
# npm install -g flow-typed $ flow-typed install -f 0.27 bitcoinjs-lib@2.2.0 # 0.27 for flow version, 2.2.0 for bitcoinjs-lib version

Die Definitionen sind vollständig und auf dem neuesten Stand der Version 2.2.0. Die Definitionen werden von @ runn1ng verwaltet .

Beispiele

Die folgenden Beispiele sind als Integrationstests implementiert und sollten sehr einfach zu verstehen sein. Andernfalls werden Pull-Anforderungen geschätzt. Einige Beispiele interagieren (über HTTPS) mit einem Blockchain-Anbieter eines Drittanbieters (3PBP).

Wenn Sie einen Anwendungsfall haben, der Ihrer Meinung nach hier aufgelistet sein könnte, fragen Sie bitte danach !

Projekte mit BitcoinJS

Mitwirken

Wir akzeptieren immer Pull-Anfragen, halten uns jedoch an bestimmte Standards in Bezug auf Codierungsstil, testgetriebene Entwicklung und Commit-Nachrichten.

Bitte bemühen Sie sich, diese einzuhalten, wenn Sie dazu beitragen, geringfügige Korrekturen zu sparen.

Running the test suite

1 2
npm test npm run-script coverage

Bibliotheken ergänzen

  • BIP21 - Eine BIP21-kompatible URL-Codierungsbibliothek
  • BIP38 -Passphrase-geschützte private Schlüssel
  • BIP39 -Mnemonische Generierung für deterministische Schlüssel
  • BIP32-Utils - Eine Reihe von Dienstprogrammen für die Arbeit mit BIP32
  • BIP66 - Strikte DER-Signaturdecodierung
  • BIP68 - Relative Sperrzeit-Codierungsbibliothek
  • BIP69 -Lexikografische Indizierung von Transaktionseingaben und -ausgaben
  • Base58 -Base58 Codierung / Decodierung
  • Base58 Check -Base58 Check Codierung / Decodierung
  • Bech32 - Eine BIP173-kompatible Bech32-Codierungsbibliothek
  • coinselect - Ein kostenoptimierendes Modul zur Auswahl von Transaktionseingaben für bitcoinjs-lib.
  • merkle-lib - Eine leistungsbewusste Bibliothek für Merkle-Wurzel- und Baumberechnungen.
  • minimaldata - Ein Modul zum Überprüfen der Bitcoin-Richtlinie: SCRIPT_VERIFY_MINIMALDATA

Alternativen

LIZENZ MIT