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

}

原文地址:http://blog.51cto.com/4577390/2107812

时间: 2024-10-04 04:29:06

Java 实现区块链中的区块,BLOCK的实现的相关文章

深圳源中瑞区块链技术_区块链数字货币网站交易平台系统开发

深圳源中瑞区块链技术_区块链数字货币网站交易平台系统开发13826558593现代货币从物理属性上区分,货币可分为实物货币和虚拟货币两类,实物货币包括纸币和金属货币,而虚拟货币则包括电子货币和数字货币.从信用属性上区分,货币又可分为法定货币和私有货币两种.自2009年1月比特币区块链上线以来,这个世界上又发明出来一种新型的货币--数字货币.数字货币从物理属性上来看,与电子货币一样也是一串串数字,但数字货币的数字又与电子货币的数字不同,它是由一行行计算机代码组成.法定货币是主权政府信用背书,私有货

1.3.1 区块链中的加密算法——Hash算法(更新)

为了为保证存储于区块链中的信息的安全与完整,区块链中使用了包含密码哈希函数和椭圆曲线公钥密码技术在内的大量的现代密码学技术,同时,这些密码学技术也被用于设计基于工作量证明的共识算法并识别用户. 在前边的文章中已经系统的讲述了密码学中的哈希算法,在本节,将会给大家介绍Hash算法在区块链中的应用! 概念回顾: 哈希函数:是一类数学函数,可以在有限合理的时间内,将任意长度的消息压缩为固定长度的二进制串,其输出值称为哈希值,也称为散列值. 以哈希函数为基础构造的哈希算法,在现代密码学中扮演着重要的角色

区块链中的节点是什么

随着区块链科技的进步,各种形态不同的链展现在大家面前,有些区块链中节点有很多(如以太坊),而有些区块链中的节点又很少(如EOS),今天我们拿第一代区块链比特币来讲. 比特币被设计为一种去中心化的点对点(P2P)网络 如中心化的应用都是由一台服务器集中管理,而去中心化的应用就是由很多台服务器管理存储信息,并且相互验证. 综上所诉的去中心应用中的服务器就是节点 节点的作用 为了确认交易有效性,比特币需要多于一个单独网络的矿工处理交易单,它必须通过"节点"向网络广播.这是交易处理过程的第一步

1.3.2 区块链中的密码学——Merkle 树

在计算机领域,Merkle树大多用来进行完整性验证处理.在处理完整性验证的应用场景中,特别是在分布式环境下进行这样的验证时,Merkle树会大大减少数据的传输量以及计算的复杂度. Merkle哈希树是一类基于哈希值的二叉树或多叉树,其叶子节点上的值通常为数据块的哈希值,而非叶子节点上的值是将该节点的所有子节点的组合结果的哈希值. 如下图所示为一个Merkle哈希树,节点A的值必须通过节点C.D上的值计算而得到.叶子节点C.D分别存储数据块001和002的哈希值,而非叶子节点A存储的是其子节点C.

[老k说区块链]区块链中的共识(1)— 免信任的共识机制

老k,柏链道捷CTO.清华阿尔山区块链研究中心高级工程师,超过17年的系统软件开发经验,在操作系统.编译器.虚拟机和符号执行方面都有实战经验.主持开发多个开眼项目,目前主要从事区块链底层系统开发工作. 这个系列的文章主要谈一下我对区块链中的共识机制的理解,欢迎跟大家一起交流.探讨. 前言 当今区块链的概念和产业已经遍布神州大地,创业言必区块链,在各种咖啡厅中你都可以听到周围的人谈论区块链,大部分从业者对区块链技术的一个认识是它是一个分布式账本技术,更有些人说区块链是各种计算机技术的组合,如P2P

区块链中的RESTFUL链码调用API原理详解

本文适合于熟悉开源区块链技术Hyperledger Fabric,以及希望更高效地使用华为云区块链服务的读者.当然,也欢迎任何对区块链技术有兴趣的读者阅读本文,相信读者们都能从中受益. 2018年2月1日 华为云发布企业级区块链开放平台区块链服务BCS(Blockchain Service),是基于开源区块链技术和华为在分布式并行计算.数据管理.安全加密等核心技术领域多年积累基础上推出的企业级区块链云服务产品,旨在帮助各行业.企业在华为云上快速.高效的搭建企业级区块链行业方案和应用. 如前所述,

区块链中的密码学(三)-椭圆曲线加密算法分析

在目前密码学的非对称加密算法中,RSA算法依然是一种主流,但是随着比特币中对于一种之前不太流行的算法:椭圆加密算法(ECC)的成功应用后,这种算法得到了很大的关注和普及.有一种说法是中本聪不信任RSA算法,认为美国人在其中留有后门,而据斯诺登的爆料也确实如此.相较RSA,ECC不仅在某种程度上杜绝所谓留有后门的情况,而且加密性能/安全性都有提高.本文就带大家一窥ECC算法的天地. 鉴于ECC算法对数学知识要求比较高,不像RSA依赖于中学数学的水平,ECC用到了许多<近世代数基础>,<初等

区块链扫盲:区块链技术初探(二)

?5. 共识机制 区块链是一种去中心化的分布式账本系统,由于点对点网络下存在较高的网络延迟,各个节点所观察到的事务先后顺序不可能完全一致.因此区块链系统需要设计一种机制对在差不多时间内发生的事务的先后顺序进行共识.这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为"共识机制". 5.1区块链和分布式系统容错的相同点 (1) Append only. (2) 强调序列化(时间有序). (3) 少数服从多数原则. (4) 分离覆盖的问题:即长链覆盖短链区块,多节点覆盖少数节点. 5.

区块链+互联网_区块链金融管理系统开发解决方案

区块链+互联网_区块链互联网金融管理系统开发 你可能听说区块链的概念和互联网的出现一样引人注目,一个比较客观的说法是区块链是一种存储.读取信息的新方法,其重要性就好比是三十年前的客户端 / 服务器数据库模式或者是二十多年以前的互联网概念. 使用区块链记录交易,就好比用一支永久记号笔在城市广场正中心的一卷 Kevlar 胶带上写字.一旦交易被记录下来,就不能修改或删除,系统中的每一台计算机都能看到这笔交易.由于这些特点,它不仅可以成为虚拟货币.支付过程以及的区块链,而且还可以有很多其它应用. 首先