/ average-work.js
average-work.js
 1  const Blockchain = require("./blockchain");
 2  
 3  const blockchain = new Blockchain();
 4  
 5  blockchain.addBlock({ data: "initial" });
 6  
 7  let prevTimestamp, nextTimestamp, nextBlock, timeDiff, average;
 8  
 9  const times = [];
10  
11  for (let i = 0; i < 1000; i++) {
12    prevTimestamp = blockchain.chain[blockchain.chain.length - 1].timestamp;
13  
14    blockchain.addBlock({ data: `block ${i}` });
15  
16    nextBlock = blockchain.chain[blockchain.chain.length - 1];
17  
18    nextTimestamp = nextBlock.timestamp;
19  
20    timeDiff = nextTimestamp - prevTimestamp;
21  
22    times.push(timeDiff);
23  
24    average = times.reduce((sum, n) => sum + n, 0) / times.length;
25  
26    console.log(
27      `Time to mine block: ${timeDiff}ms. Difficulty: ${nextBlock.difficulty}. Average time: ${average}ms`
28    );
29  }