单元三 区块与链的定义_第1页
单元三 区块与链的定义_第2页
单元三 区块与链的定义_第3页
单元三 区块与链的定义_第4页
单元三 区块与链的定义_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单元三区块与链的定义PART1区块的概念区块的概念1.交易数据被整合在一起而形成。具有不断生成并且生成时间间隔固定的特点。2.区块由区块头和区块体两个部分构成。3.区块头记录区块的元数据(metadata)也叫特征值。区块体指的是在一定时间内所生成的详细数据区块头详细示例数据项说明大小父块哈希值(previousblockhash)引用该区块的前一个区块的哈希值32B版本号(version)表示本区块遵守的验证规则4B时间戳(timestamp)该区块产生的时间4B随机数(nonce)32位数字(以0开头)32B目标值(Target)当前区块的工作量证明目标难度4B默克尔根(Merkle-root)基于当前区块中所有交易的哈希值4B区块头组成的第一部分数据是父块哈希值,在区块头中占据32字节区块头组成的第二部分数据是默克尔根,在区块头中占据4字节区块头组成的第三部分数据指的是版本号、时间戳、随机数和难度,这些数据占据了区块头剩下的44字节。链式存储1.本质上是实现区块间的两两连接。实现方式为将前一个区块的摘要数据(区块头中的父块哈希值)存储在后一个区块的区块头中。2.在每个区块中都能找到前一个区块的信息,从每个区块开始都可以倒推到该区块链的创世区块存储方式的比较中心化数据存储方式是将数据集中存储,区块链存储方式是将数据按区块的方式分块进行存储。区块间的联系1.每当一个新的区块生成,在新区块的区块头中需要包含父块哈希值。以此方式,将新生成的区块与已经形成的区块“链接”在一起。2.当某一区块的数据发生异动,那么其相对应的子区块中的数据都将发生“偏移”。3.通过哈希加密算法确保了链中存储的数据不可篡改特性。PART2区块的代码实现代码实现逻辑原理理解结构设计代码实施1.首先理解包括区块、账本的基本概念以及核心要素2.其次,使用程序设计对代码进行设计,主要采用面向对象的方式定义基本概念3.最后,代码实施,将设计的概念以实际代码的形式输出区块代码开发classBlock://初始化def__init__(...): ...//定义转JSON格式函数

defto_json(): ...代码实施感谢观看单元三区块链中的账本PART1账本的基本概念参照传统账本概念类比传统纸质账本区块链账本帐页区块账目区块体(交易数据)账目相关的关键信息区块头区块链中的“区块”就是账本中的“账页”,“区块体”中存储的大量交易数据就是账本中的“账目”,“区块头”就是账页上与交易相关的关键信息。账本根据时间顺序维护每一页账页,同样地,区块链也是根据一定的顺序将各个“区块”链接在一起。账本的存储方式1.账本中包含许多区块,区块间以链式的方式两两相连2.区块链网络中的节点以去中心化的方式保存“账本”,每个节点都将保存“账本”的完整信息。PART2账本的实现方式账本代码开发classBlockchain://初始化def__init__(...): ...//添加区块defadd_block(): ...

//创建创世区块defcreate_genesis_block(): ...//定义转JSON格式函数

defto_json(): ...代码实施PART3持久化功能实现开发功能PythonWeb(Flask)区块添加功能区块查询功能1.使用PythonFlask框架,开发持久化运行的Web服务端。2.定义区块(Block)、区块链(Blockchain)对象。3.在定义的对象中加入区块添加以及区块查询功能,并使用Flask实现API接口查询代码开发逻辑API接口+FlaskWeb框架PART4项目开发基础程序代码结构程序代码开发步骤使用IDE打开项目使用安装项目对应依赖新建相关Python模块代码开发调试与验证感谢观看单元三区块链账本的具体实现Block&Ledger账本的存储方式1.账本中包含许多区块,区块间以链式的方式两两相连2.区块链网络中的节点以去中心化的方式保存“账本”,每个节点都将保存“账本”的完整信息。程序代码结构账本代码开发实施模式classBlockchain://初始化def__init__(...): ...//添加区块defadd_block(): ...

//创建创世区块defcreate_genesis_block(): ...//定义转JSON格式函数

defto_json(): ...代码实施感谢观看实战练习:构建简单的区块链账本系统PART1实战任务介绍任务介绍1.练习目标以Web服务的形式持久化运行区块链,并通过HTTP接口的形式实现对区块链的操作。2.练习内容构建区块链的区块对象和区块链对象。使用Flask等Web服务框架运行持久化的进程,实现基于HTTP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论