《NOSQL数据库技术》课件-2020-第12章-区块链数据存储技术_第1页
《NOSQL数据库技术》课件-2020-第12章-区块链数据存储技术_第2页
《NOSQL数据库技术》课件-2020-第12章-区块链数据存储技术_第3页
《NOSQL数据库技术》课件-2020-第12章-区块链数据存储技术_第4页
《NOSQL数据库技术》课件-2020-第12章-区块链数据存储技术_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

目录概述1区块链数据存储技术2区块链技术应用3小结4112.1概述区块链(Blockchain)本质上是一个去中心化的分布式数据库。本章内容思维导图212.1概述什么是区块链?区块链本质上是一个去中心化的分布式数据库,也是一种分布式公共记账方案。概念出自2008年SatoshiNakamoto的一篇论文《比特币:一种点对点的电子现金系统》,通过建立一组互联网上的公共账本,由网络中所有的用户共同在账本上记账与核账,来保证信息的真实性和不可篡改性。3区块链存储数据结构:由网络上一个个存储区块组成数据链条,每个区块中包含了一定时间内网络中全部的交易记录数据,随着时间推移这条链会不断增长。12.1概述区块链式存储结构块里面有header,header里存储上一个块的哈希值,除创世区块外,下一个块的header把上一个块的哈希存到自己的header里,这样形成区块+链。创世区块信息:/cn/block/04时间轴再次理解什么是区块链?

工信部指导发布的定义

512.2区块链数据存储技术

狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。

广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。——《中国区块链技术和应用发展白皮书(2016)》12.1概述区块链的研发综合应用了分布式数据存储、共识机制、加密算法、点对点传输等多种计算机技术区块链可以用于验证记录信息的有效性,起到防伪作用,在数字金融、权属等领域备受关注。习近平主席在主持学习时发表的讲话中指出,区块链技术应用已延伸到数字金融、物联网、智能制造、供应链管理、数字资产交易等多个领域。612.1概述——区块链分类7公开(Public)链:无官方组织及管理机构,可自由参与,节点按照系统规则自由接入。私有(Private)链:建立在某个企业或组织内部,系统的运作规则根据企业或组织要求进行设定。联盟(Consortium)链:介于两者之间,由若干组织一起合作维护区块链,该区块链的使用有权限管理,相关信息会得到保护。区块链也可按使用目的和应用场景的不同细分为:以数字货币为目的的货币链以记录产权为目的的产权链以众筹为目的的众筹链等等12.1概述区块链技术相关的基本概念简介如下1)交易(Transaction):一次导致账本状态改变的操作,如添加一条A转账给B的记录。2)区块(Block):记录一段时间内发生的多笔交易的数据块,是对当前账本状态的一次共识。区块高度:区块编号,创世区块的区块高度是03)链(Chain):由一个个区块按照发生顺序串联而成,是整个状态变化的日志记录。如果把区块链作为一个状态机,则每次交易就是试图改变一次状态,而每次共识生成的区块,就是参与者对于区块中所有交易内容导致状态改变进行确认的结果。812.1概述4)共识机制:保证每一笔交易在所有记账节点上的一致性,即让全网达成共识。经典共识机制有:PoW:ProofofWork,工作量证明获得多少币取决于挖矿贡献的有效“工作”“工作”为BlockHash计算,计算时间取决于机器的哈希运算速度、题目难度等PoS:ProofofStake,权益证明DPoS:DelegatedProofofStake,委任权益证明PBFT:PracticalByzantineFaultTolerance,实用拜占庭容错算法,适合联盟链……912.1概述5)智能合约(Chaincode):数字化合约是运行在区块链上的模块化、可重用的自动执行脚本,可以完成复杂的业务逻辑;智能合约也可用于各种检查操作。与数据库中的触发器和存储过程相似。同一个区块链上可以有多份合约,而每份合约可以约定不同的参与者、企业或者相关方;可以在合约里指定允许哪些企业的节点可以参与到交易流程中来,在fabric里叫作共识策略。智能合约编程语言:Solidity智能合约调用:Web3.js101112.1概述6)哈希函数Hash是密码学一个重要分支。哈希函数可将任意长度的资料经由Hash算法转换为一组固定长度的代码,原理是基于一种密码学上的单向哈希函数,正向计算容易,逆向破解难。特点:相同的数据输入将得到相同的结果。输入数据稍有变化,将得到完全不同的结果如安全散列算法家族中的SHA1、SHA2、SHA3、SHA256等。广泛用在数据完整性检查、数字签名领域。y=hash(x)

12.1概述127)挖矿

新区块如何追加到链尾?区块链产出速度不是通过命令达成的,而是故意设置了海量的计算,也就是说,只有通过大量的计算才能得到当前区块的有效哈希,从而把新区块添加到区块链,这个过程即挖矿。计算哈希的机器叫矿机,操作矿机的人叫矿工。存在区块链分叉问题新区块总是采用最长的那条区块链12.1概述——区块链技术特点去中心化,点对点可靠传输不存在中心化的存储节点或管理机构任意节点的权利和义务均等,系统中数据块由整个系统中具有维护功能的节点来共同维护。它不像Hadoop那样是分布式存储的,所有节点是协作式的,100个任务,每一个map分一个,合作来运行。分布式存储,多节点共识:通过共识机制,保证所有节点数据的原子性如果出现有的节点更新数据成功,有的失败的情况,则发送分叉,各节点根据最长链原则更新自己的数据。1312.1概述——区块链技术特点不可篡改,可溯源性区块链上的区块只能新增,不能被替换,交易可以通过新增区块的方式予以修改,也可利用时间戳机制对交易记录进行追溯。除非同时控制住系统中超过51%的节点才能进行修改。匿名交易,公开透明账户身份信息是加密的,保护个人隐私交易数据分布式存储,账本公开透明。1412.1概述——区块链发展历程区块链科学研究所创始人梅兰妮·斯万的观点1.0时期:可编程货币2.0时期:可编程金融3.0时期:可编程社会区块链1.0:早期比特币为代表,2008中本聪提出区块链是比特币底层技术,比特币是区块链的一个应用主要功能仅为“有价代币转移”采用UTXO(UnspentTXO)未花费的交易输出模型15由于节点之间必须同步,当一个节点有区块生成必须同步到全网,于是中本聪故意让添加新区块变得困难,平均每10分钟全网才能生成一个区块。12.1概述——区块链发展历程区块链2.0:以太坊公开链以太坊是一个可编程区块链开发平台(2014-2017)应用:智能合约+数字货币。如跨境支付、反洗钱、证券发行与交易、数字化资产等。以太坊虚拟机(EVM)运行智能合约存储采用账户/余额模型16EVM可以执行复杂的算法,开发者可以用js、python、solidity等语言在以太坊上开发出应用迷恋猫(cryptoKitties):第一款区块链游戏Mainnet:以太坊主网Ropsten:以太坊主测试网络12.1概述——区块链发展历程17EOS是由Block.one公司开发,于2018年6月15通过由数十个区块生产者(blockproducer,BP,又称超级节点)组成的社区上线了主网。区块链3.0:EnterpriseOperationSystem(EOS)即为商用分布式应用设计的一款区块链操作系统。基于EOS软件项目之上可发布不同的代币。准确的说EOS是引入的一种新的区块链架构。3.0生态更加便捷地创建区块链应用(DAPP),易扩展到金融行业以外其他行业12.1概述区块链已成为一个基础设施,可灵活扩展,构建新型分布式应用;区块链分布式存储技术HyperledgerFabric(HLF)IPFSStorj以太坊swarmBluzelleSia……18目录概述1区块链数据存储技术2区块链技术应用3小结419区块是一种记录交易的数据结构。每个区块由区块头和区块主体组成,区块主体只负责记录前一段时间内的所有交易信息,区块链的大部分功能都由区块头实现。2012.2区块链数据存储技术区块头部一般包含的信息:版本号:标示软件及协议的相关版本信息;父区块哈希值:对应上一区块的哈希值;Merkle根:Merkle树根值;时间戳:记录该区块产生的时间,精确到秒;难度值:该区块相关数学题的难度目标值;随机数(Nonce),记录解密该区块相关数学题的答案的值;交易数:区块中包含的具体交易数;不同项目会不一样,原则是BlockHeader尽量小,但又需要尽可能覆盖需要验证的信息2112.2区块链数据存储技术22超级账本Hyperledger(或Hyperledger项目)是一个旨在推动区块链跨行业企业级区块链应用研发的开源项目/由Linux基金会在2015年12月主导发起该项目,成员包括金融,银行,物联网,供应链,制造和科技行业的领头羊。IBM、Intel、摩根大通、三星、华为等全球领袖企业参与贡献。12.2区块链数据存储技术——HLF本节先以HyperledgerFabric(HLF)为例简介区块链数据存储相关技术。HLF的存储系统由普通的文件和KV数据库levelDB/CouchDB组成。HLF中,每个channel对应一个账本目录,在账本目录中由blockfile_000000、blockfile_000001格式命名的文件组成。为了快速检索,区块数据每个文件的大小为64MB。每个区块的数据由区块头和区块里所有交易数据构成,区块数据会序列化为字节码的形式写入blockfile文件中。2312.2区块链数据存储技术——HLFStateDatabase:状态数据库保存了账本所有资产的最新状态如账户A拥有某种资产的总量。同时,为智能合约提供了丰富的资产查询语义。所有的资产信息最终以文件形式记录在区块链账本中,而数据库是区块链账本的视图表现形式,能够让智能合约更加高效的和账本信息进行交互。数据库自动从底层区块链账本中更新或者恢复数据LevelDB:HyperledgerFabric的默认数据库,简单的存储键值对信息;CouchDB:提供更加丰富的查询语义,可以保存JSON对象,以及范围key的查询。2412.2区块链数据存储技术——HLFHLF区块数据写入的一般步骤:1)写入区块头数据:依次写入的数据为区块高度、交易哈希和前一个区块哈希;2)写入交易数据:依次写入的数据为区块包含交易总量和每笔交易的详细数据;2512.2区块链数据存储技术——HLF3)写入区块的元数据:依次写入的数据为元数据总量和每个元数据项的数据详细信息等。区块链3.0时代的EOS一定程度上解决了数据吞吐量的难题,可以达到每秒上千级别的处理量。EOS文件存储系统使用IPFS作为底层存储。IPFS(InterPlanetaryFileSystem):星际文件系统,是一个面向全球的、点对点(P2P)分布式文件系统存储协议栈。2612.2区块链数据存储技术——IPFS它是一个开源项目,由胡安·贝尼特(JuanBenet)成2014年成立的ProtocolLabs推进IPFS项目。IPFS的工作机制是将整个文件进行拆散,然后储存在全球的不同节点。需要数据的时候,通过文件的索引,从原来存储的位置找回来。因此只要文件内容不变,文件名也保持不变。也就是用户寻找的不是某个地址而是储存在某个地方的内容,不需要验证发送者的身份,而只需要验证内容的哈希,通过这样可以让节点数据访问的速度更快、更安全、更健壮、更持久。传统区块链领域,信息存储成本极高,IPFS目前是一种更加优化的去中心化存储方案。2712.2区块链数据存储技术——IPFSIPFS下载与安装:https://ipfs.io/需初始化仓库也可以设置IPFS_PATH环境变量,使其指向目标路径,例如D:\my_ipfs_root,重新初始化2812.2区块链数据存储技术——IPFS将文件添加到本地仓库

ipfsaddREADME.md访问ipfs文件ipfscatQmVh1g359Sb2YNmegSxSRp5paktWGVLQMwtgYBx1haqwjA2912.2区块链数据存储技术——其他将节点接入网络:ipfsdaemon只有当启动监听后,节点才能够接受ipfs网络中的内容检索请求,参与内容的交换与分布。可以按Ctrl+C退出监听状态。查看附近也在使用IPFS网络节点伙伴ipfsswarmpeers可视化界面:http://localhost:5001/webui桌面工具:IPFSDesktop基于ipfs-api可编程实现文件的操作3012.2区块链数据存储技术——其他akasha:基于以太坊和IPFS的社交网络Alexandria:去中心化的内容发布平台Arbore:朋友之间的文件共享系统dtube:利用IPFS作为存储的视频分享网站git-ipfs-rehost:可以把github上的项目存储到IPFS上InterplanetaryWiki:建立在IPFS上的wiki(土耳其封锁了wiki,借助于IPFS,现在已经恢复了访问)ipfs-search:基于IPFS的搜索引擎ipfs-share:基于IPFS的文件分享ipfs.pics:基于IPFS的图片分享网站……3112.2区块链数据存储技术——IPFS目录概述1区块链数据存储技术2区块链技术应用3小结432区块链技术的集成应用在新技术革新和产业变革中起着重要作用;区块链成为我国核心技术自主创新的重要突破口;各个领域都在思考“区块链+”;ABCD构建数字世界新商业模式智能化物联网时代区块链可应用到人类生活的方方面面;可以实现不再依靠某个第三人或者机构获取信任或者建立信任,实现数字化信息的可信共享;最终实现一个自制、可信、区块数据分布式存储与应用的生态环境;3312.3区块链技术应用12.3区块链技术应用典型应用场景数字身份认证领域,如结合人脸识别技术的美图智能通行证(MIP-MeituIntelligentPassport);物联网领域,如IOTA;能源领域,如POWERLEDGER,是一个可再生能源P2P交易网络;金融领域,如R3联合全

温馨提示

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

评论

0/150

提交评论