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

}

作者:文武艺

推荐阅读:https://www.roncoo.com/course/view/45408f63110e428389881f4d84d0cd30

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏HansBug's Lab

1984: 月下“毛景树”

1984: 月下“毛景树” Time Limit: 20 Sec  Memory Limit: 64 MB Submit: 1003  Solved: 324 ...

28130
来自专栏pangguoming

JDBC上关于数据库中多表操作一对多关系和多对多关系的实现方法

我们知道,在设计一个Java bean的时候,要把这些BEAN 的数据存放在数据库中的表结构,然而这些数据库中的表直接又有些特殊的关系,例如员工与部门直接有一对...

87470
来自专栏数据结构与算法

BZOJ3798: 特殊的质数(分段打表)

对于这种求$[A, B]$区间内xxx的数的个数,然后$B$又不算是特别大的题,考虑分段打表

83020
来自专栏函数式编程语言及工具

Akka(24): Stream:从外部系统控制数据流-control live stream from external system

 在数据流应用的现实场景中常常会遇到与外界系统对接的需求。这些外部系统可能是Actor系统又或者是一些其它类型的系统。与这些外界系统对接的意思是在另一个线程...

241100
来自专栏一个会写诗的程序员的博客

DuplicateFileException: Duplicate files copied in APK META-INF/LICENSEDuplicateFileException: Duplic

10520
来自专栏技术专栏

2.2 实现区块类结构,实现交易方法

11010
来自专栏数据结构与算法

BZOJ2438: [中山市选2011]杀人游戏(tarjan)

当然有一种例外情况是\(1 -> 3, 2 -> 3\),也就是存在一个孤立点,判掉即可

11520
来自专栏数据结构与算法

BZOJ 3932: [CQOI2015]任务查询系统(主席树)

14900
来自专栏积累沉淀

初识HtmlParser

1、概念 网页解析,即程序自动分析网页内容、获取信息,从而进一步处理信息。 htmlparser包提供方便、简洁的处理html文件的方法,它将html页面中...

23250
来自专栏我是攻城师

高效读取大数据文本文件(上亿行数据)

52340

扫码关注云+社区

领取腾讯云代金券