41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
var crypto = require('crypto');
|
|
var ed = require('ed25519');
|
|
var BlockChain = require("../blockchain");
|
|
var Consensus = require("../consensus/dpos");
|
|
|
|
|
|
let blockchains = [];
|
|
for (var i = 0; i < 20; ++i) {
|
|
|
|
var password = `I am tester ${i}!`;
|
|
var hash = crypto.createHash('sha256').update(password).digest();
|
|
var keypair = ed.MakeKeypair(hash);
|
|
console.log(`node ${i} address: ${keypair.publicKey.toString('hex')}`);
|
|
|
|
let blockchain = new BlockChain(Consensus, keypair, i);
|
|
blockchain.start();
|
|
blockchains.push(blockchain);
|
|
}
|
|
|
|
// setTimeout(() => {
|
|
// for (var i = 0; i < 20; ++i) {
|
|
// console.log(`${i} --> ${blockchains[i].list_peers()}`);
|
|
// }
|
|
// }, 3000);
|
|
|
|
setTimeout(() => {
|
|
let address = blockchains[6].get_public_key();
|
|
blockchains[0].create_transaction(address, 30);
|
|
}, 3000);
|
|
|
|
async function get_balance() {
|
|
let amount = await blockchains[0].get_balance();
|
|
console.log(`node 0 balance: ${amount}`);
|
|
amount = await blockchains[6].get_balance();
|
|
console.log(`node 6 balance: ${amount}`);
|
|
}
|
|
|
|
setInterval(get_balance, 10000);
|