ETHnodeJS/blockchain/block.js

36 lines
1,007 B
JavaScript

/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/ClientSide/javascript.js to edit this template
*/
const { GENESIS_DATA } = require("../config");
const HASH_LENGTH = 64;
const MAX_HASH_VALUE = parseInt("f".repeat(HASH_LENGTH), 16);
class Block {
constructor ({blockHeaders}) {
this.blockHeaders = blockHeaders;
}
static calculateBlockTargetHash({lastBlock}) {
// return(MAX_HASH_VALUE / lastBlock.blockHeaders.difficulty).toString(16);
const value = (MAX_HASH_VALUE / lastBlock.blockHeaders.difficulty).toString(16);
if(value.length > HASH_LENGTH) {
return "f".repeat(HASH_LENGTH);
}
return "0".repeat(HASH_LENGTH - value.length) + value;
}
static mineBlock({lastBlock, beneficiary}) {
}
static genesis() {
return new Block(GENESIS_DATA);
}
}
module.exports =Block;