[Ethereum] Is it possible to run the Ethereum Wallet with a remote Blockchain

light-clientsnodeswallets

To run the Ethereum Wallet on a small computer like a Phone or a Netbook it would useful to have a light client, possibly that connects to a hosted full Ethereum node. Is this currently possible?

Best Answer

Yes it is possible you can connect to a remote node using web3.js

Adding web3

  1. npm: $ npm install web3
  2. bower: $ bower install web3
  3. meteor: $meteor add ethereum:web3
  4. vanilla: link the dist./web3.min.js

Then you need to create a web3 instance, setting a provider. To make sure you don't overwrite the already set provider when in mist, check first if the web3 is available:

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"));

Create a Wallet Address

Install ETH-lightwallet

npm install ETH-lightwallet

sample code to create a wallet.

// 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! 
});
Related Topic