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; } }
作者:文武艺
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Docker Registry Server 搭建,配置免费HTTPS证书,及拥有权限认证、TLS 的私有仓库
上一篇文章搭建了一个具有基础功能的私有仓库,这次来搭建一个拥有权限认证、TLS的私有仓库。 环境准备 系统:Ubuntu 17.04 x64 IP:198.13.48.154 域名:hub.ymq.io,此域名需要dns 解析到198.13.48.154 作为私有仓库地址 本文出现的所有:hub.ymq.io域名。使用时候请替换成自己的域名 Docker 环境 在部署私有仓库之前,需要在主机上安装Docker。私有仓库是registry images,并在Docker中运行。 我是用的vultr的服务器,所以,下面操作,就不用配置国内的,加速镜像库,直接用Docker官方的! 国内加速仓库,我其他文章有提到:Ubuntu 17.04 x64 安装 Docker CE 初窥 Dockerfile 部署 Nginxhttp://www.ymq.io/2017/12/30/Docker-Install/ 安装Docker CE 使用存储库进行安装 1.更新apt软件包索引: $sudoapt-getupdate 2.装软件包以允许apt通过HTTPS使用存储库: $sudoapt-getin...
- 下一篇
系统分布式情况下最终一致性方案梳理
前言 目前的应用系统,不管是企业级应用还是互联网应用,最终数据的一致性是每个应用系统都要面临的问题,随着分布式的逐渐普及,数据一致性更加艰难,但是也很难有银弹的解决方案,也并不是引入特定的中间件或者特定的开源框架能够解决的,更多的还是看业务场景,根据场景来给出解决方案。根据笔者最近几年的了解,总结了几个点,更多的应用系统在编码的时候,更加关注数据的一致性,这样系统才是健壮的。 基础理论相关 说起事务,目前的几个理论,ACID事务特性,CAP分布式理论,以及BASE等,ACID在数据库事务中体现,CAP和BASE则是分布式事务的理论,结合业务系统,例如订单管理,例如仓储管理等,可以借鉴这些理论,从而解决问题。 ACID 特性 A(原子性)事务的原子操作单元,对数据的修改,要么全部执行,要么全部不执行; C(一致性)在事务开始和完成时,数据必须保持一致状态,相关的数据规则必须应用于事务的修改,以保证数据的完整性,事务结束时,所有的内部数据结构必须正确; I(隔离性)保证事务不受外部并发操作的独立环境执行; D(持久性)事务完成之后,对于数据的修改是永久的,即使系统出现故障也能够保持; CA...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS关闭SELinux安全模块
- CentOS6,7,8上安装Nginx,支持https2.0的开启