Files
awesome-blockchain/src/basic_chain/js/test/transaction.js
2019-05-21 17:07:33 +08:00

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