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;
}
}