Um die Ethereum-Wallet auf einem kleinen Computer wie einem Telefon oder einem Netbook auszuführen, wäre es nützlich, einen leichten Client zu haben, der möglicherweise eine Verbindung zu einem gehosteten vollständigen Ethereum-Knoten herstellt. Ist dies derzeit möglich?
web3.js
$ npm install web3
$ bower install web3
$meteor add ethereum:web3
dist./web3.min.js
Dann müssen Sie eine web3-Instanz erstellen und einen Anbieter festlegen. Um sicherzustellen, dass Sie im Nebel nicht den bereits eingestellten Anbieter überschreiben, prüfen Sie zuerst, ob der web3 verfügbar ist:
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"));
ETH-lightwallet installieren
npm install ETH-lightwallet
Beispielcode zum Erstellen einer Brieftasche.
// generate a new BIP32 12-word seed
var secretSeed = lightwallet.keystore.generateRandomSeed();
// the seed is stored encrypted by a user-defined password
var password = prompt('Enter password for encryption', 'password');
lightwallet.keystore.deriveKeyFromPassword(password, function (err, pwDerivedKey) {
var ks = new lightwallet.keystore(secretSeed, pwDerivedKey);
// generate five new address/private key pairs
// the corresponding private keys are also encrypted
ks.generateNewAddress(pwDerivedKey, 5);
var addr = ks.getAddresses();
// Create a custom passwordProvider to prompt the user to enter their
// password whenever the hooked web3 provider issues a sendTransaction
// call.
ks.passwordProvider = function (callback) {
var pw = prompt("Please enter password", "Password");
callback(null, pw);
};
// Now set ks as transaction_signer in the hooked web3 provider
// and you can start using web3 using the keys/addresses in ks!
});
Es gibt eine Light-Client-Protokollseite im Ethereum-Wiki. Es beschreibt das allgemeine Konzept und schlägt einige Implementierungsdetails vor.
Ein Light-Client kann als ein Client betrachtet werden, der standardmäßig Block-Header herunterlädt und nur einen kleinen Teil dessen überprüft, was überprüft werden muss, indem er anstelle seiner lokalen Festplatte eine verteilte Hash-Tabelle als Datenbank für Trie-Knoten verwendet.
Die C++- und Go-Clients implementieren immer noch ein Light-Client-Feature. Es gibt Github-Probleme bei der Verfolgung des cpp-ethereum light client und des go-ethereum light client .
Derzeit können Sie dies nur erreichen, indem Sie sich mit der Json-RPC-API mit Geth verbinden. Es gibt verschiedene Bibliotheken, die den RPC und allgemeine Transaktionen mit Verträgen wie web3.js, der wichtigsten JavaScript-Bibliothek, oder Nethereum.Web3 für .Net vereinfachen.
Auf Nethereum finden Sie ein Beispiel für eine plattformübergreifende "Brieftasche", die diese Kommunikationsmethode verwendet. Nethereum-Geldbörse . Oder das sehr einfache Android Maker Sample
Mit web3.js sollten Sie in der Lage sein, dasselbe mit Cordova mit Ionic zu erreichen.
q9f
Niksmac