深度学习
第1章 区块链概述1.1 区块链的前世今生区块链的发展历史比较短暂,最初仅仅作为支持数字货币比特币交易的技术。目前,区块链技术已经脱离比特币,在金融、贸易、征信、物联网、共享经济等诸多领域得到初步应用。由于区块链技术可以防止数据篡改,所以不仅可以用安全而透明的方式追踪比特币的活动,还能在区块链网络中追踪其他类别的数据,因此可以帮助私人公司或政府部门建立更值得信赖的网络。用户可在这个网络中分享信息和价值,未来它还将得到更广泛的应用。1.1.1 区块链的历史起源——比特币比特币起源于2008年全球金融危机期间中本聪(SatoshiNakamoto)撰写的论文《Bitcoin:Apeer-to-peerelectroniccashsystem》(《比特币:一种点对点的电子现金系统》
区块链(Blockchain)技术自身仍然在飞速发展中,目前还缺乏统一的规范和标准。Wikipedia给出的定义为:Ablockchain,originallyblockchain,isadistributeddatabasethatmaintainsacontinuously-growinglistofdatarecordshardenedagainsttamperingandrevision.Itconsistsofdatastructureblocks—whichholdexclusivelydataininitialblockchainimplementations,andbothdataandprogr
目前,全球有数个区块链技术平台,其中比特币(Bitcoin)、以太坊(Ethereum)、瑞波(Ripple)和Linux基金会的开源项目超级账本(HyperledgerFabric)比较有代表性。此外,还有比特股(Bitshare)、恒星(Stellar)、R3Corda等国外区块链技术以及国内一些公司研发的区块链应用平台。1.3.1 比特币比特币(Bitcoin)是最早、全球使用最广泛的区块链技术,具有最去中心化、最多分布节点、最公平等特点。比特币提出了一个不需要信用中介的数字货币系统,通过数字签名(DigitalSignatures)使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。同时为了防止双重支付(Double-Spending),它提出
区块链之所以称为一种“颠覆性”的新兴技术,因为尽管其成名于比特币,但未来区块链的用武之地将远远超过加密货币。区块链的分布式共享账本这一技术本质能够在商业网络中使更多的参与方得到更加广泛的参与,并为商业网络或行业业务带来更低的沟通或整合成本,以及更高的业务效率。可以预见,区块链作为一个独立的技术板块,会在商业领域中得到广泛应用。1.4.1 区块链的2.0时代:商用区块链自2009年比特币在交易领域迅速崛起以来,这种加密币受到了广泛关注,但也颇受争议。不过比特币的底层技术——区块链,由于能够快速改进银行、供应链以及其他交易网络,在降低与业务运营相关的成本和风险的同时,带来创新和增长机会,所以是比较无争议的新兴技术模式,得到了商业界的鼎力支持。传统的商业业务模式存在的问题是很难在一
本章先简单介绍一下HyperledgerFabric1.0的环境搭建,快速地体验一下超级账本的功能。本书所有的内容都是基于HyperledgerFabric1.0的,在后面章节中我们偶尔也会用到“超级账本”这个词,指的也是超级账本的HyperledgerFabric1.0项目。2.1 基础环境安装HyperledgerFabric1.0依赖Docker执行智能合约,需要先安装Docker和DockerCompose的运行环境。2.1.1 Docker的安装和使用Docker支持Linux、Mac、Windows等多个平台,安装文档参考:https://docs.docker.com/engine/installation。1.在Linux环境下Docker的安装Ub
第3章 超级账本的系统架构区块链的业务需求多种多样,一些要求在快速达成网络共识及快速确认区块后,才可以将区块加入区块链中。有一些可以接受相对缓慢的处理时间,以换取较低级别的信任。各行各业在扩展性、可信度、合法性、工作流复杂度以及安全性等方面的需求和用途都不尽相同。我们先来看一下在企业级区块链系统中常见的模块构成一些常用的功能模块有:应用程序、成员管理、智能合约、账本、共识机制、事件机制、系统管理等。纵轴代表用户或者开发者更关心的内容,越往上代表用户更关注,比如应用程序和钱包等,越靠下是开发者更关注的模块,比如事件机制。而横轴则是从时间的维度来看的,左边是一开始关注的功能,直到完成所有的功能。HyperledgerFabric1.0是一种通用的区块链技术,其设计目标是利
节点是区块链的通信主体,是一个逻辑概念。多个不同类型的节点可以运行在同一物理服务器上。有多种类型的节点:客户端、Peer节点、排序服务节点和CA节点。图3-3所示为网络节点架构图。接下来详细地解释图3-3所示的不同节点的类型。1.客户端节点客户端或者应用程序代表由最终用户操作的实体,它必须连接到某一个Peer节点或者排序服务节点上与区块链网络进行通信。客户端向背书节点(Endorser)提交交易提案(TransactionProposal),当收集到足够背书后,向排序服务广播交易,进行排序,生成区块。2.Peer节点所有的Peer节点都是记账节点(Committer),负责验证从排序服务节点区块里的交易,维护状态数据和账本的副本。部分节点会执行交易并对结果进行签名背书,充当背书
图3-4所示为HyperledgerFabric1.0典型的交易流程图。图3-4 交易流程总图从上一节的网络节点架构中,我们已经了解到基于HyperledgerFabric1.0的区块链应用中涉及几个节点角色:应用程序、背书节点、排序服务节点和主节点。在图3-4中,假定各节点已经提前颁发好证书,且已正常启动,并加入已经创建好的通道。后面的步骤介绍在已经实例化了的链码通道上从发起一个调用交易到最终记账的全过程。3.3.1 创建交易提案并发送给背书节点使用应用程序构造交易提案,SignedProposal的结构如下所示:加入会员微信dedao555SignedProposal:{ ProposalBytes(Proposal):{&nb
3.4.1 信封消息结构信封消息是认证内容中最基本的单元。它由一个消息负载(Payload)和一个签名(Signature)组成。//信封包含一个带有签名的负载,以便认证该消息messageEnvelope{ //编组的负载 bytespayload=1; //负载头中指定创建者签名 bytessignature=2;} //负载是消息内容(允许签名)messagePayload{ //负载头部,提供身份验证并防止重放 Headerheader=1;