Java 实现区块链中的区块,BLOCK的实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 实现区块链中的区块,BLOCK的实现相关的知识,希望对你有一定的参考价值。

1、区块是区块链的基础单元

区块链由若干个区块组成,区块是区块链的基础单元

技术分享图片

2、区块链中区块的基本属性

区块6个属性的说明-Index 区块的索引值,区块链中的唯一键
区块6个属性的说明-Timestamp 区块的时间戳,用于区分区块的产生时间
区块6个属性的说明-Hash 区块的hash值是整个区块各个内容整体计算出的hash值
区块6个属性的说明-Previous Hash 前一个区块的hash值
区块6个属性的说明-Data 区块链的数据存储部分,例如比特币是用来存储交易数据
区块6个属性的说明-Nonce(挖矿原理,比特币难度举例) nonce值是形成有效hash的计算出来的
3、区块链区块的代码实现

package cn.wenwuyi.blockchain.pojo;

/**
 * 
 * 类名:Block.java
 * 描述:区块实体类
 * 时间:2018年3月12日 下午7:03:50 
 * @author cn.wenwuyi
 * @version 1.0
 */
public class Block {
    /**
     * 索引
     */
    private int    index;
    /**
     * 前一个区块的hash值
     */
    private String previousHash;
    /**
     * 时间戳
     */
    private long   timestamp;
    /**
     * 数据,交易数据等
     */
    private String data;
    /**
     * hash值
     */
    private String hash;
    /**
     * nonce值(难度系数)
     */
    private long nonce;

    public Block() {
    }

    public Block(int index, String previousHash, long timestamp, String data, String hash,long nonce) {
        this.index = index;
        this.previousHash = previousHash;
        this.timestamp = timestamp;
        this.data = data;
        this.hash = hash;
        this.nonce = nonce;
    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }

    public String getPreviousHash() {
        return previousHash;
    }

    public void setPreviousHash(String previousHash) {
        this.previousHash = previousHash;
    }

    public long getTimestamp() {
        return timestamp;
    }

    public void setTimestamp(long timestamp) {
        this.timestamp = timestamp;
    }

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }

    public String getHash() {
        return hash;
    }

    public void setHash(String hash) {
        this.hash = hash;
    }

    public long getNonce() {
        return nonce;
    }

    public void setNonce(long nonce) {
        this.nonce = nonce;
    }

}

以上是关于Java 实现区块链中的区块,BLOCK的实现的主要内容,如果未能解决你的问题,请参考以下文章

Java 区块链BLOCKCHAIN中区块BLOCK的hash值的计算

区块链中的Ed25519

Java实现区块链 --- 原理篇

我居然用Java构建了一个属于我自己的区块链

区块链中的可扩展隐私层

如何查看以太坊区块的原始数据?