java实现区块链中的区块,block的实现

     2022-03-29     800

关键词:

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区块链blockchain中区块block的hash值的计算

Java区块链中区块的hash值的计算计算方法有多种,如,可以直接String拼接,也可以用stringbuffer,或者stringbuilder。这里采用了速度较快的stringbuilder,自己编程的时候可采用stringbuffer。其中index是区块BLOCK的索引,timestamp是区块BLOCK的... 查看详情

java实现区块链demo(代码片段)

...的交流信息。各个区块之间通过随机散列(也称哈希算法)实现链接,后一个区块包含前一个区块的哈希值,随着信息交流的扩大,一个区块与一个区块相继接续,形成的结果就叫区块链(BlockChain)。在知乎... 查看详情

14fabricnodesdk1.4.8统计目前区块中的交易数(代码片段)

文章目录声明使用的版本本文要实现的功能开始实现功能了解block的结构体先来频繁的进行交易开始用sdk实现对应的功能得到交易总数的思路写代码的思路按照思路实现代码调用测试假如当前区块有好几千万,如何做统计ÿ... 查看详情

区块链中的ed25519

1.引言比特币和以太坊采用Secp256k1,NEO使用secp256r1,波卡、Cardano、NEAR和Solana等使用Ed25519。Ed25519相关代码实现有:https://github.com/dalek-cryptography/ed25519-dalekhttps://github.com/jpopesculian/ed25519-da 查看详情

(笔记)区块链技术笔记——区块链中的密码学1

(笔记)区块链技术笔记——区块链中的密码学1文章目录(笔记)区块链技术笔记——区块链中的密码学1一、随机数据序列二、对称(单钥)密码希尔密码(HillCipher)加密过程解密过程三、非对... 查看详情

(笔记)区块链技术笔记——区块链中的密码学2

(笔记)区块链技术笔记——区块链中的密码学2(RSA加密算法笔记)文章目录(笔记)区块链技术笔记——区块链中的密码学2(RSA加密算法笔记)三、非对称密码1、RSA加密算法创立原理例题描述... 查看详情

区块链中的密码学

区块链概念 区块:可以看做是一页一页的账单,上面记录若干条数据区块链:可以看做是账本,里面按照时间顺序将若干个账单每个区块中包含两个最重要的值,自己的hash值,和上一个区块的hash值 详解:   &... 查看详情

信息摘要算法之七:sha在区块链中的应用

最近几年比特币的火爆带动了人们对区块链技术的研究。当然我们在这里并不讨论区块链技术本身,而是讨论一下区块链中的SHA算法的应用。对于SHA系列算法我们已经在前面作了说明,在这里也不再重复。1、区块链中的SHA区块... 查看详情

区块链中的节点是什么?

随着区块链科技的进步,各种形态不同的链展现在大家面前,有些区块链中节点有很多(如以太坊),而有些区块链中的节点又很少(如EOS),今天我们拿第一代区块链比特币来讲。比特币被设计为一种去中心化的点对点(P2P)网络如中... 查看详情

区块链中的节点是什么

随着区块链科技的进步,各种形态不同的链展现在大家面前,有些区块链中节点有很多(如以太坊),而有些区块链中的节点又很少(如EOS),今天我们拿第一代区块链比特币来讲。比特币被设计为一种去中心化的点对点(P2P)网络如中... 查看详情

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

什么是区块链?区块链是由一个个记录着各种信息的小区块链接起来组成的一串链条,和链表类似,是一种数据结构。应用于未来互联化的社会。区块链特性去中心化:区块链是分布式存储的,不存在中心点&#... 查看详情

区块链中的epoch

Epoch用于定义区块链上特定事件发生的时间纪元(eraoftime),如:激励支付的时间新的验证者组负责验证交易的时间不同的区块链协议,epoch的定义不同。常用于表示在链上完成特定区块数的时间。如在以太坊... 查看详情

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

老k,柏链道捷CTO、清华阿尔山区块链研究中心高级工程师,超过17年的系统软件开发经验,在操作系统、编译器、虚拟机和符号执行方面都有实战经验。主持开发多个开眼项目,目前主要从事区块链底层系统开发工作。这个系列... 查看详情

如何获取存储在区块链中的数据,然后显示在网页上?

】如何获取存储在区块链中的数据,然后显示在网页上?【英文标题】:HowcanIgetthedatastoredinblockchainandthendisplayonwebpage?【发布时间】:2020-03-2807:36:34【问题描述】:我正在使用metamask、ganache、truffle和web3js开发一个系统,该系统可... 查看详情

基于java语言构建区块链——工作量证明

引言在上一篇文章中,我们实现了区块链最基本的数据结构模型,添加区块以及和前一个区块连接在一起。但是,我们的实现方式非常简单,而真实的比特币区块链中,每一个区块的添加都是需要经过大量的计算才可以完成,这... 查看详情

2023年区块链面试宝典整理版

...区块链的硬分叉和软分叉?8.区块链中的隐私保护是如何实现的?有哪些技术?9.区块链的扩展性问题是什么?有哪些解决方案?10.区块链技术的应用领域有哪些?1.什么是区块链技术?它有哪些特点和优缺点?答:区块链技术是... 查看详情

错误 3080006:EOSIO 区块链中的交易时间过长

】错误3080006:EOSIO区块链中的交易时间过长【英文标题】:Error3080006:TransactiontooktoolonginEOSIOblockchain【发布时间】:2020-03-0720:23:40【问题描述】:EOS使用以下方法。nodeos(node+eos=nodeos)-核心EOSIO节点守护进程,可以配置插件以运行节... 查看详情

#yyds干货盘点#愚公系列2023年02月.net/c#知识点-区块链概念和实现(代码片段)

...可靠,可以帮助解决人们互不信任的问题。一、区块链的实现1.定义区块模型///<summary>///区块数据模型///</summary>publicstructBlock///<summary>///区块位置///</summary>publicintIndexget;set;///<summary>///区块生成时间戳///</... 查看详情