36 lines
1,007 B
JavaScript
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;
|
|
|