Ich arbeite mit Bitcoins, aber gibt es ein Litecoinjs-Äquivalent? Ich möchte in der Lage sein, Nachrichten mit meinem privaten Litecoin-Schlüssel zu signieren und zu verifizieren und auch Litecoin-Adressen aus einer Zeichenfolge zu generieren. Wie würde man diese Funktionen mit einer Javascript-Bibliothek ausführen, falls eine vorhanden ist?
bitcoinjs hat bereits Unterstützung für Litecoin, ein kurzer Blick auf /src/network.js und die README zeigt dies. https://github.com/bitcoinjs/bitcoinjs-lib/blob/d853806/test/integration/basic.js#L30
Sehen Sie, wie sie die Variable network: litecoin festlegen, die wahrscheinlich konsistent durch den Code verwendet wird (zumindest für die Adressgenerierung).
Um ehrlich zu sein, gibt es keine wirklich großen Änderungen für die Unterzeichnung, werfen Sie einen Blick auf https://github.com/bitcoinjs/bitcoinjs-message
WIF und Adressgenerierung Nehmen Sie die Warnung vor dem kryptografisch sicheren Zufallszahlengenerator nicht auf die leichte Schulter. Wenn Sie es nicht ändern, werden Sie ständig dieselbe Adresse generieren und es wird schrecklich unsicher sein.
//import bitcoinjs libs
var bitcoin = require('bitcoinjs-lib') // v2.x.x
var bitcoinMessage = require('bitcoinjs-message')
//set a litecoin variable equal to its network type, which we'll use throughout the example
var litecoin = bitcoin.networks.litecoin
//let's generate a litecoin keypair from a string
//WARNING: YOU MUST REPLACE rng() WITH A FUNCTION THAT ACTUALLY RETURNS CRYPTOGRAPHICALLY SECURE RANDOM DATA!
function rng () { return Buffer.from('MAKE SURE THIS IS NEW RANDOM DATA EACH TIME RNG() IS CALLED') }
var keyPair = bitcoin.ECPair.makeRandom({ network: litecoin, rng: rng })
var wif = keyPair.toWIF()
//You should store the output of the variable wif here, this is the actual key to the litecoin address (contains the private key) and is crucial to signing messages, do not share this and handle with care.
var address = keyPair.getAddress()
console.log("wif: " + wif + "\n")
console.log("address: " + address + "\n")
Nachrichtensignierung mit WIF aus Beispiel1
Dies nimmt Ihr WIF und signiert dann eine Nachricht.
//import bitcoinjs libs
var bitcoin = require('bitcoinjs-lib') // v2.x.x
var bitcoinMessage = require('bitcoinjs-message')
//set a litecoin variable equal to its network type, which we'll use throughout the example
var litecoin = bitcoin.networks.litecoin
// add the wif key you stored
var wif = 'WIF key goes here'
var keyPair = bitcoin.ECPair.fromWIF(wif, litecoin)
var privateKey = keyPair.d.toBuffer(32)
var message = 'This is an example of a signed message.'
var messagePrefix = litecoin.messagePrefix
var signature = bitcoinMessage.sign(message, messagePrefix, privateKey, keyPair.compressed)
console.log(signature.toString('base64'))
Ersetzen Sie die WIF durch die, die Sie im vorherigen Beispiel generiert haben.
Nachrichtenüberprüfung anhand der Adresse aus Beispiel1 und Signaturausgabe aus Beispiel2
//import bitcoinjs libs
var bitcoin = require('bitcoinjs-lib') // v2.x.x
var bitcoinMessage = require('bitcoinjs-message')
//set a litecoin variable equal to its network type, which we'll use throughout the example
var litecoin = bitcoin.networks.litecoin
var address = 'THE ADDRESS FROM EXAMPLE1'
var signature = 'THE OUTPUT OF CONSOLE LOG OF EXAMPLE2'
var message = 'This is an example of a signed message.'
var messagePrefix = litcoin.messagePrefix
console.log(bitcoinMessage.verify(message, messagePrefix, address, signature))
Benutzer48462
Patoshi パトシ
Benutzer48462
Patoshi パトシ
Benutzer48462