Wie konfigurieren Sie eth-lightwallet txutils example_usage.js für die Verwendung eines lokalen Eth-Knotens?

Der Beispielcode für eth-lightwallet, der zeigt, wie es mit dem Hooked-Web3 -Anbieter r verwendet wird, kann wie folgt für die Verwendung des lokalen Knotens konfiguriert werden:

var ethClient = "http://localhost:1111";
var web3 = new Web3();
var global_keystore;

function setWeb3Provider(keystore) {

    var web3Provider = new HookedWeb3Provider({
        host: ethClient,
        transaction_signer: keystore;
    });

    web3.setProvider(web3Provider);

}

Die example_usage.js, die die Verwendung von txutils demonstriert, zeigt jedoch nicht, wie der eth-Knoten gesetzt werden kann. Kann jemand raten?

example_usage.js startet...

// Example usage: Name Registry
// Create the contract, register the key 123, set the value 456

var lightwallet = require('../index.js')
var txutils = lightwallet.txutils
var signing = lightwallet.signing
var encryption = lightwallet.encryption
.....

Antworten (1)

Es sind zwei unterschiedliche Ansätze. Der erste, mit Hooked web3 provider , bedeutet, dass Sie einen normalen Web3-Anbieter verwenden, aber das Signaturverhalten an etwas anderes delegieren (in Ihrem Beispiel den Schlüsselspeicher).

Der Hooked Web3 Provider ist ein normaler HTTP-Web3-Provider, der es Ihnen ermöglicht, einen externen Transaktionssignierer „einzubinden“, der verwendet werden kann, um Transaktionen für Konten zu signieren, die nicht vom Ethereum-Client verwaltet werden (dh nicht von Geth verwaltet werden). Ein beispielhafter Transaktionssignierer könnte ein externes Programm oder Gerät sein, das seine eigenen Konten und privaten Schlüssel verwaltet. Gemeinsam werden der Transaktionsunterzeichner und der Web3-Anbieter den Ethereum-Client verwenden, um signierte Transaktionen im Netzwerk zu platzieren.

txutils libray dagegen ist vor allem dann sinnvoll, wenn man einen klassischen Web3-Anbieter nutzen möchte . In diesem Fall können Sie die Transaktion mit txutils vorbereiten und signieren, Web3 referenzieren und wie gewohnt an den Knoten anhängen

if (typeof web3 !== 'undefined') {
  web3 = new Web3(web3.currentProvider);
} else {
  // set the provider you want from Web3.providers
  web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}

und dann können Sie die web3.eth.sendRawTransaction-Methode verwenden

web3.eth.sendRawTransaction(signedTransactionData [, callback])

um die txns an das Netzwerk zu senden.