Java 实现区块链的ProofOfWork工作机制

70 阅读1分钟

Java 实现区块链的ProofOfWork工作机制


/**
 * 對於不同的輸入,哪怕只是一個微小的改動,輸出的結果都是很不一樣的。
 * 對於同一個輸入,輸出結果是一樣的
 *
 * 現在需要得到一個 開頭值為 0 的哈希值,請告訴我x是多少
 * 我現在需要得到一個開頭值的4位全為0的哈希值,請告訴我x 是多少 其實這個x 就是工作量
 *
 * 動態的調整這個區塊鏈的開始位數 來確定自己的工作量
 */
public class ProofOfWork {

    public static void  proofOfWork(String data) {
        int x = 1;
        while (true) {
            if (! new Encrypt().SHA256(data + x).substring(0,6).equals("000000")) {
                x = x + 1;
            } else {
                System.out.println(new Encrypt().SHA256(data + x));
                System.out.println(x);
                break;
            }
        }
    }

    public static void main(String[] args) {
        ProofOfWork.proofOfWork("haha");
    }
}