




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目8:构建联盟链项目8任务17:逻辑隔离联盟链的搭建与部署任务18:物理隔离联盟链的搭建与部署1逻辑隔离联盟链概述2前置哈希和业务名称3逻辑隔离原理目录CONTENTS信任节点与账本同步54物理联盟链的节点物理隔离的原理6知识导图知识目标教学目标熟悉逻辑隔离联盟链的概念和架构熟悉逻辑隔离联盟链的业务名称和前置哈希熟悉物理隔离联盟链的概念和架构能力目标素质目标认真的学习态度追根溯源的学习精神刻苦钻研的精神教学目标能够搭建逻辑隔离联盟链能够搭建物理隔离联盟链1逻辑隔离联盟链概述2前置哈希和业务名称3逻辑隔离原理目录CONTENTS信任节点与账本同步54物理联盟链的节点物理隔离的原理61.逻辑隔离联盟链的概述逻辑隔离联盟链是新一代区块链中的一种业务结构形态,它使用业务名称函数和前置哈希函数对数据进行上链和上链后的数据分类管理,通过建立具有隔离特性的逻辑联盟链可以高效支撑各类复杂业务在链上的大规模应用。1逻辑隔离联盟链概述2前置哈希和业务名称3逻辑隔离原理目录CONTENTS信任节点与账本同步54物理联盟链的节点物理隔离的原理62.前置哈希和业务名称前置哈希在区块链网络中,每一个区块都是数据的集合,而前置哈希是存储在区块中的其中一个字段,其指向前一个区块。由于区块是连续的,顾名思义,前置哈希便是记录当前区块的上一个区块的哈希值。通过前置哈希,很容易能把区块的来源路径溯源清楚。业务名称业务名称也是存储于区块中的其中一个字段,用来描述当前区块的唯一业务所属。1逻辑隔离联盟链概述2前置哈希和业务名称3逻辑隔离原理目录CONTENTS信任节点与账本同步54物理联盟链的节点物理隔离的原理63.逻辑隔离原理在开源区块链公链网络中,都是一个区块连着一个下一个区块最终形成单链条的区块网络。当数据庞大时,这种单链条形式不利于对数据的快速查询,且单链条的逻辑结构不适用于多方多链条的复杂业务场景。如图所示3.逻辑隔离原理上图所示,最上面一层的区块连成一条联盟链,每个区块可以定制业务名称,例如上图中“电子1班”是班级链的业务名称,该链中包括了班级所有学生,而每个学生又通过“学号XXX”业务名称形成学生链。这种逻辑隔离的链可以在一定程度上提高区块链网络的业务查询能力和业务扩展能力。任务实施LOGO详细步骤请参考教材任务17的任务实施部分1逻辑隔离联盟链概述2前置哈希和业务名称3逻辑隔离原理目录CONTENTS信任节点与账本同步54物理联盟链的节点物理隔离的原理64.物理联盟链的节点新一代区块链的数据根据访问权限分为私有数据和公有数据,公有数据指全链所有节点都可以访问的数据,一般记录在账本服务器和级联账本服务器中。而私有数据是指仅能够在本节点访问的数据,记录在私有账本服务器中。4.1公有数据和私有数据4.物理联盟链的节点新一代区块链物理隔离联盟链由6种节点共同搭建。主链服务器预言合约服务器智能合约服务器账本服务器级联账本服务器私有账本服务器等。4.2节点的类型和功能1逻辑隔离联盟链概述2前置哈希和业务名称3逻辑隔离原理目录CONTENTS信任节点与账本同步54物理联盟链的节点物理隔离的原理65.信任节点与账本同步在新一代区块联盟链中,所有的节点必须指定一个上链节点才能够同步账本,上链节点可以是主链服务器节点或者私有账本服务器节点,根据实际需要在配置文件中进行相应的设置即可。例如,在部署系统时,对智能合约服务器、预言合约服务器等节点配置文件中都将其上链节点设置为主链服务器。任何节点必须成为信任节点之后,才有权限参与区块链网络的记账,只有系统管理员才能添加信任节点,信任节点被添加到联盟链后,各节点通过百分百共识算法自动同步账本。5.1信任节点与账本同步1逻辑隔离联盟链概述2前置哈希和业务名称3逻辑隔离原理目录CONTENTS信任节点与账本同步54物理联盟链的节点物理隔离的原理66.物理隔离的原理所谓物理隔离,就是通过在不同物理机上部署记账节点的方式来达到数据的物理隔离。在新一代区块链的物理隔离联盟链中,记账节点可以部署在不同的物理机器上,而记账节点与上一级记账节点通过IP地址进行关联并且通过信任节点准入机制来获得记账权。物理隔离拓扑如图所示6.1物理隔离原理任务实施LOGO详细步骤请参考教材任务18的任务实施部分谢谢观看项目9:智能合约与DAPP开发项目9任务19:工程款智能合约实战任务20:基于Java的抽奖智能合约实战任务21:新一代区块链系统DAPP开发体验1智能合约概述2智能合约编写与执行3基于Java智能合约编写与执行目录CONTENTSDAPP开发方法54DAPP概述知识导图知识目标教学目标了解智能合约的特性熟悉智能合约的编写、执行规则熟悉基于Java的智能合约的编写、执行规则熟悉DAPP开发方法能力目标素质目标认真的学习态度追根溯源的学习精神刻苦钻研的精神教学目标能够编写、执行智能合约能够编写、执行基于Java的智能合约能够开发简易DAPP1智能合约概述2智能合约编写与执行3基于Java智能合约编写与执行目录CONTENTSDAPP开发方法54DAPP概述1.智能合约概述智能合约概念由NickSzabo于1995年首次提出,所谓的智能合约其实质就是信息化的合同,区块链中可以通过智能合约在没有第三方的情况下进行可信交易,且这些交易可追踪并不可逆转,智能合约规则公开透明,合约内的规则以及数据对外部可见,所有交易公开可见,不会存在任何虚假或者隐藏的交易。智能合约的目的是提供优于传统合约的安全方法,并减少与合约相关的其他交易成本。1智能合约概述2智能合约编写与执行3基于Java智能合约编写与执行目录CONTENTSDAPP开发方法54DAPP概述2.智能合约编写、执行规则智能合约编写规则新一代区块链系统的智能合约共由4部分组成:合约名称、触发机制、预置条件、合约内容,必须严格按照顺序进行合约的编写,智能合约编写模板如下:智能合约名称(合约名称)触发机制函数预置条件函数合约内容合约主体合约上链2.智能合约编写、执行规则智能合约名称:用来指定智能合约名称,是编写智能合约的必填项,参数为智能合约名称。触发机制函数:包括合约执行时间函数和合约执行次数函数,编写智能合约时二者必须选其一,不能同时使用两个。合约执行时间函数:参数为合约开始执行的时间,格式为“YYYY-MM-DD”,设置该函数后合约只能执行一次。合约执行次数函数可以设置合约执行的次数,参数为允许智能合约执行的最大次数。2.智能合约编写、执行规则预置条件函数:指用户授权函数,也是编写合约的必填项,有多少方参与则需要添加多少个该函数。用户授权函数的第一个参数为合约参与方,为必填项,若填写公钥则为指定用户,反之则为泛指用户。第二个参数为变量的定义,为选填项,用于合约内容的判断和合约的执行,可根据实际情况进行参数的增减,如:用户授权("甲方","数值变量转出金额,数值变量工程进度")。合约内容函数:“合约内容”作为合约主体内容的开始标识,无需填写参数、无需添加括号,是整份合约的开始,为必填项。“合约上链”作为合约的结束标识,无需填写参数,是整份合约的结束,为必填项。“履约方()”为选填项,参数要求与用户授权函数中第一个参数的值一致,只能在合约内容中使用,使用后往下的函数都由该履约方执行,直至履约方更换或合约结束为止。需要注意的是,不是所有函数都能在合约中使用,例如闪信功能就不能够在智能合约中使用。2.智能合约编写、执行规则例6-1:编写一个名称为“数据上链合同”的智能合约,执行次数为1次,参与方只有1个,且没有指定公钥,任何人都可以执行该合约。智能合约名称("数据上链合同")合约执行次数(1)用户授权("甲方","文字变量上链文本")合约内容 履约方("甲方")准备数据(上链文本)
显示信息(数据上链())合约上链()2.智能合约编写、执行规则智能合约的执行规则新一代区块链系统通过合约授权函数执行智能合约,参数为合约的哈希值,若合约的用户授权函数中设置了变量,则参数中需要根据变量的数量填写对应的值,当合约中所有参与方都授权合约后才会生效,且只有最后一个授权合约的参与方能看到执行合约后生成的哈希值。合约授权的条件受合约上链时的设置控制,包括执行方是否有指定、触发机制的设置和预置条件的设置等。2.智能合约编写、执行规则登录李四账号,将例6-1的智能合约进行授权执行,代码如下:登录系统("李四","123456")显示信息(解析函数返回变量(取出合约哈希()))文字变量合约哈希=返回_合约哈希显示信息(合约授权(返回_合约哈希,"上链文本='这是智能合约执行的数据上链'"))[{"合约授权":"授权合约成功!"},{"系统返回_0":"执行合约成功!"},{"数据上链":"数据上链成功!","哈希值":"202106031012024434344556056502450624024424624445623263562263424622222546506222","区块高度":"8","业务名称":"cy_chain"}]合约执行结果显示如下任务实施LOGO详细步骤请参考教材任务19的任务实施部分1智能合约概述2智能合约编写与执行3基于Java智能合约编写与执行目录CONTENTSDAPP开发方法54DAPP概述3.Java智能合约编写规则新一代区块链系统中Java智能合约共由6部分组成:合约名称、触发机制、预置条件、合约内容、合约内容结束标志、合约结束标识,必须严格按照顺序进行合约的编写,智能合约编写模板如下://设置合约名称contractName(......)//触发机制-设置合约执行次数contractExeTimes(......)//触发机制-设置合约执行时间contractExeTime(......)//预置条件-设置用户授权要素userWarrant(......)//设置合约内容contractBegin(“executeUser(......)......”)//合约结束标志contractEnd(......)3.Java智能合约编写规则模板说明如下:1、智能合约名称智能合约名称函数“contractName()”指定智能合约名称,是编写智能合约的必填项,参数为智能合约名称。2、触发机制函数触发机制函数包括合约执行时间函数“contractExeTime()”和合约执行次数函数“contractExeTimes()”,编写智能合约时二者必须选其一,不能同时使用两个。合约执行时间函数参数为合约开始执行的时间,格式为“YYYY-MM-DD”,设置该函数后合约只能执行一次。合约执行次数函数可以设置合约执行的次数,参数为允许智能合约执行的次数。3.Java智能合约编写规则模板说明如下:3、预置条件函数预置条件函数指用户授权函数“userWarrant()”,也是编写合约的必填项,有多少方参与则需要添加多少个该函数。用户授权函数的第一个参数为合约参与方,为必填项,若填写公钥则为指定用户,反之则为泛指用户。第二个参数为变量的定义,为选填项,用于合约内容的判断和合约的执行,可根据实际情况进行参数的增减,如:用户授权("甲方","数值变量转出金额,数值变量工程进度")。3.Java智能合约编写规则模板说明如下:4、合约内容函数合约内容“contractBegin()”作为合约主体内容的函数,其只有一个参数,此参数包括了整份合约的内容。履约方“executeUser()”为选填项,其以String类型作为“contractBegin()”的形参的一部分。“executeUser()”参数要求与用户授权函数中第一个参数的值一致,只能在合约内容中使用,使用后往下的函数都由该履约方执行,直至履约方更换或合约结束为止。需要注意的是,不是所有函数都能在合约内容中使用,例如闪信功能就不能够在智能合约内容中使用。3.Java智能合约编写规则模板说明如下:5、合约结束标志“合约结束”作为合约内容的结束标识,无需填写参数、无需添加括号,是整份合约内容的结束,为必填项。6、合约上链“合约上链”作为合约的结束标识,无需填写参数,是整份合约的结束,为必填项。3.Java智能合约编写规则例6-2:编写一个名称为“数据上链合同”的智能合约,执行次数为1次,参与方只有1个,且没有指定公钥,任何人都可以执行该合约。//智能合约名称("数据上链合同")StringcontractName="数据上链合同";//合约执行次数(1)IntegercontractExeTimes=1;/** *预置条件(用户授权) *用户授权("甲方","文字变量上链文本")*/Map<String,List<String>>preConditions=newHashMap<>(1);preConditions.put("甲方",Arrays.asList("文字变量上链文本"));3.Java智能合约编写规则//合约内容StringcontractContent=newStringBuffer( //履约方("甲方") BasicApiTemple.executeUser("甲方")) .append("\n") /** *文本上链 *准备数据("上链文本") *显示信息(数据上链()) */.append(BasicApiTemple.textOnChain("上链文本",null,null,null,null,null,null,null)).toString();//合约上链StringcontractOnChain=CyChainApi.contractOnChain(null,contractName,null,contractExeTimes,preConditions,contractContent);System.out.print(contractOnChain);3.Java智能合约编写规则Java智能合约执行规则新一代区块链系统java智能合约编写时通过合约授权函数“contractWarrant()”执行智能合约,参数为合约的哈希值登录李四账号,将例6-2的智能合约进行授权执行,代码如下:Stringlogin=CyChainApi.login("李四","123456");System.out.print(login);//取出合约哈希StringgetContractHash=BasicApiTemple.getLatestContractHash();//解析函数返回变量StringparseFuncReturnVar=BasicApiVarTemple.parseFuncReturnVar(getContractHash);//显示信息(解析函数返回变量(取出合约哈希()))StringparseContractHash=CyChainApi.printVar(parseFuncReturnVar);//合约授权参数值Stringparameters="上链文本='这是智能合约执行的数据上链'";//显示信息(合约授权(contractHash,parameters))StringcontractWarrant=CyChainApi.contractWarrant(contractHash,parameters);System.out.print(contractWarrant);任务实施LOGO详细步骤请参考教材任务20的任务实施部分1智能合约概述2智能合约编写与执行3基于Java智能合约编写与执行目录CONTENTSDAPP开发方法54DAPP概述4.
DAPP概述DAPP就是去中心化应用,也叫做分布式应用,指在底层区块链平台衍生的各种分布式引用,是区块链的服务提供形式。DAPP之于区块链就如同APP之于IOS和Android,APP就是把一段程序放到你手机的中,而DAPP也是把一段程序放到你的手机,DAPP甚至可以没有程序,就是一个网页页面。DAPP与APP并不是取代关系,而是并存关系。因为DAPP直接和区块链技术挂钩,和交
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公路工程执照考试的未来展望与试题及答案
- 计算机三级嵌入式行业趋势分析试题及答案
- 行政理论全景式复习试题及答案
- 金属制品行业绿色制造与环保政策研究考核试卷
- 计算机三级数据库解题思路试题及答案
- 危运消防设备管理制度
- 单位资金使用管理制度
- 农村聚餐工作管理制度
- 商贸公司费用管理制度
- 医院账务预算管理制度
- 热力管网施工组织设计方案标书
- 中医十八项护理操作并发症及处理10-38-30
- 机械通气基础知识及基础操作课件
- 打印版医师执业注册健康体检表(新版)
- 《空中领航》全套教学课件
- 人教版五年级下册数学操作题期末专项练习(及解析)
- 中药熏洗法操作评分标准与流程
- 学习解读《执业兽医和乡村兽医管理办法》课件
- 室内装饰不锈钢技术交底
- 1.3.1动量守恒定律课件(共13张PPT)
- 白黑白装饰画欣赏黑白装饰画的特点黑白装饰画的表现形式黑白装饰 bb
评论
0/150
提交评论