Advertisement
Guest User

multi-core vanity gen for ripple addy

a guest
Jan 18th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const cluster = require('cluster');
  2.  
  3. if(cluster.isMaster){
  4.   var numWorkers = 4;
  5.   let workers = {};
  6.   for(let i=0; i<numWorkers; i++){
  7.     cluster.fork();
  8.   }
  9.  
  10.   cluster.on('online', worker => {
  11.     console.log("MasterCluster:", `Cluster ${worker.process.pid} online.`);
  12.     workers[worker.process.pid] = worker;
  13.   });
  14.  
  15.   cluster.on('exit', worker => {
  16.     console.log("MasterCluster:", `Cluster ${worker.process.pid} exited.`);
  17.     if(workers[worker.process.pid]) delete workers[worker.process.pid];
  18.   });
  19.  
  20.   cluster.on('message', message => {
  21.     console.log(`${message.pid}: ${message.text}`);
  22.   });
  23. }else{
  24.   const keypairs = require('ripple-keypairs');
  25.   var genOptions = {};
  26.  
  27.   async function generateAddy(){
  28.     let secret, keypair, address;
  29.  
  30.     let addyInfo = {secret: '', address: ''};
  31.    
  32.     let hps = 0;
  33.     let last = new Date().getTime();
  34.     while(!/^[r][0-9][d][2]/i.test(addyInfo.address)){
  35.       secret = keypairs.generateSeed(genOptions);
  36.       keypair = keypairs.deriveKeypair(secret);
  37.       address = keypairs.deriveAddress(keypair.publicKey);
  38.  
  39.       addyInfo = {secret: secret, address: address};
  40.      
  41.       hps++;
  42.      
  43.       if(last+1000 < new Date().getTime()){
  44.         let khps = hps/1000;
  45.         console.log(process.pid, "kH/s:", khps);
  46.        
  47.         hps = 0;
  48.         last = new Date().getTime();
  49.       }
  50.      
  51.       sleep(0); // in ms, to reduce the cpu usage
  52.     }
  53.  
  54.     console.log(process.pid, "DONE:", addyInfo);
  55.     //generateAddy();
  56.   }
  57.  
  58.   function sleep(ms) {
  59.     return new Promise(resolve => setTimeout(resolve, ms));
  60.   }
  61.  
  62.   generateAddy();
  63.  
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement