/
skirill
/
blockchain
Обзор
Документация
Войти
/
skirill
/
blockchain
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/Block.java
52 строки
2 KB
K. S
Added Wallet and TransactionInput and -Output
18 июл 2024, 16:03
18 июл 2024, 16:03
7604be7
Код
Авторство
О чём код?
import java.util.ArrayList; import java.util.Date; public class Block { public String hash; public String previousHash; public String merkleRoot; public ArrayList<Transaction> transactions = new ArrayList<Transaction>(); private long timeStamp; private int nonce; public Block(String previousHash) { this.previousHash = previousHash; this.timeStamp = new Date().getTime(); this.hash = calculateHash(); } public String calculateHash() { String calculatehash = StringUtil.applySha256( previousHash + Long.toString(timeStamp) + Integer.toString(nonce) + merkleRoot ); return calculatehash; } public void mineBlock(int difficulty) { merkleRoot = StringUtil.getMerleRoot(transactions); // String target = new String(new char[difficulty]).replace('\0', '0'); String target = StringUtil.getDificultyString(difficulty); while (!hash.substring(0, difficulty).equals(target)) { nonce++; hash = calculateHash(); } System.out.println("Block Mined! : " + hash); } public boolean addTransaction(Transaction transaction) { if ((transaction == null)) return false; if ((previousHash != "0")) { if ((transaction.processTransaction() != true)) { System.out.println("Transaction failed to process. Discarded."); return false; } } transactions.add(transaction); System.out.println("Transaction Successfully added to Block"); return true; } }