




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
以太坊与智能合约技术解析目录/CONTENTS1.1以太坊技术1.2超级账本项目1.3智能合约开发框架1.4案例介绍本章小结思考题1.1.1以太坊技术特点以太坊是什么:一个重要的区块链应用平台,是公有链技术的代表之一。以太坊技术的定位:以太坊具有图灵完备性的脚本,将可信任的代码嵌入区块链,实现去中心化应用,它是对区块链技术的一次颠覆。特点: (1)以太坊使用了同比特币一样的区块链技术,但是在比特币区块链技术上做了一些调整。区块主
要由区块头、交易列表、叔区块头三部分组成。 (2)以太坊区块链上区块数据结构的一个重大改变就是保存了三棵Merkle树的树根,分别是状态
树、交易树和收据树。 (3)区块链上的第一个区块称为“创世区块”。区块链上除了创世区块以外,每个区块都有它的父
块,这些区块连接起来组成一个区块链。1.1.2整体架构以太坊的整体架构分为三层:底层服务、核心层、顶层应用。各层服务: (1)底层服务:包括P2P网络、LevelDB数据库、加密算法和分片优化等基础服务。(2)核心层:包含区块链、共识机制和以太坊虚拟机等核心元件。(3)顶层应用:包括API接口、智能合约和去中心化应用等。图1-1以太坊的整体架构1.1.3以太坊智能合约
概念广义上的智能合约指能够让用户自己编写,并能够实现用户所需的交易逻辑的代码程序。智能合约与区块链的结合智能合约从本质上来说是通过算法、程序编码等技术手段将传统合约内容编码成为一段可以在区块链上自动执行的程序,是传统合约的数字化形式。智能合约使区块链在保留去中心化、不可篡改等特性的基础上增加了可编程性。图1-2智能合约的运行机制1.2.1超级账本项目超级账本项目起源
超级账本是由非营利组织Linux基金会发起成立的、致力于企业级区块链开发及应用的开源、开放、
跨国界、跨行业的项目。目标超级账本项目的目标是建立一个跨行业的开放式标准以及开源代码开发库,允许企业根据自己的需
求创建自定义的分布式账本解决方案,以促进区块链技术在各行各业的应用。项目举例Fabric项目、SawtoothLake项目、Libra项目、1.2.2
Fabric项目Fabric项目的目标是实现一个通用的权限区块链的底层基础框架。克服了比特币等公有链项目的低
吞吐量、无隐私性、无最终确定性、低效的一致性算法等缺点,使用户可以轻松开发商业应用。图1-3Fabric的逻辑架构1.2.2
Fabric项目Fabric项目部署方式:Fabric的网络由身份服务节点、验证节点、非验证节点和若干个应用节点。如下图所示。图1-4Fabric的网络节点及拓扑1.2.2
Fabric项目交易的执行:(1)Fabric客户端可以通过API提交应用代码给任意一个验证节点,如图(a)所示。(2)验证节点在确认是有效的应用代码后,将该应用同步到其他验证节点中。通过这种分发机制,应用代码最终会在各个验证节点保存一份,如图(b)所示。1.2.2
Fabric项目应用代码的执行步骤:(1)客户端发送执行请求给任意一个验证节点。(2)验证节点收到请求后,向本地账本(Ledger)发送启动交易的指令。(3)验证节点创建隔离的运行环境,启动应用(智能合约)的代码。(4)应用执行过程中更新本地账本的状态。(5)应用完成后,验证节点向本地账本确认交易。(6)验证节点向其他验证节点广播交易。应用代码的执行过程,如下图所示。图1-4应用代码执行过程1.2.3
SawtoothLake项目SawtoothLake是由超级账本联盟成员Intel公司发起的一个分布式账本平台试点项目,为构建、部署和运行分布式账本提供了一个高度模块化的平台,功能上有其独特的地方。例如,SawtoothLake将账本和交易分开,使两者成为松散耦合的关系;提出了交易家族的概念,可以扩展到不同的业务领域;适合权限或无权限区块链的可插拔共识机制。图1-5SawtoothLake架构1.2.4
Libra项目Libra是由Facebook主导发行的建立在区块链技术基础上的、由专门协会负责管理的加密数字货币。目的是建立一套简单的、无国界的货币,为数十亿人提供金融基础设施服务。特点:Libra区块链从根本上来讲是一种采用区块链技术的数字货币。通过与法定货币、比特币、Q币和其他稳定币比较,具有中心化、以资产储备为后盾、无发行上限等特点。Libra核心技术涉及3个方面:Move编程语言、拜占庭共识机制和区块链数据结构。Libra可以简单理解为采用拜占庭共识机制的一种联盟链。
(1)Libra设计和使用可靠性和安全性更高的Move编程语言。
(2)采用基于LibraBFT共识协议的BFT机制。
(3)采用梅克尔树的数据存储结构,确保存储交易数据的安全性。1.3智能合约开发框架TruffleTruffle是现在比较流行的Solidity智能合约开发框架,本身基于JavaScript,功能十分强大,可以帮助开发人员快速搭建一个DApp。框架特性:
(1)内建智能合约编译、链接、部署和二进制包管理功能。
(2)支持对智能合约的自动测试。
(3)支持自动化部署、移植。
(4)支持公有链和私有链,可以轻松部署到不同的网络中。
(5)支持访问外部包,可以方便地基于Node.js包管理(NPM)和Ethereum包管理(EthPM)引入其他
智能合约的依赖。
(6)可以使用Truffle命令行工具执行外部脚本。1.3智能合约开发框架Truffle以Truffle框架完成代币发行的示例步骤:(1)新建一个文件夹Demo,首先在确保Node.js环境安装成功的前提下安装Truffle框架:npminstall-gtruffle。(2)下载官方定义的模板tutorialtoken:truffleunboxtutorialtoken。(3)进入开发者模式:truffledevelop,对模板中已有的代码进行编译部署,查看执行效果。(4)npmrundev图1-6运行效果1.3智能合约开发框架Truffle利用OpenZeppelin框架完成该完整的代币发行的步骤:(1)首先切换到Demo02目录下。(2)安装OpenZeppelin:npminstallOpenZeppelin。(3)编写智能合约。(4)
编译运行。图1-6验证代币发行效果1.3智能合约开发框架Truffle转账功能的测试:向地址0xc5fdf4076b8f3a5357c5e395ab970b5b54098fef的用户转入2000枚代币。图1-7验证代币发行效果1.4案例介绍宠物商城案例步骤介绍:(1)新建一个文件夹Demo3。(2)进入文件然后下载关于宠物商城的box:truffleunboxpet–shop。(3)进入开发者模式:truffledevelop。(4)编译部署现有官方提供的模板项目:compile、migrate。(5)运行项目:npmrundev。图1-8运行成功后界面1.4案例介绍宠物商城案例步骤介绍:(6)实现“领养”功能函数,在宠物和领养人之间建立联系,对应到项目中就是把宠物的编号和领养人的地址建立联系。(7)已被领养的宠物无法重复领养。图1-9运行成功后界面1.4本章回顾本章小结本章首先
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 桂林信息工程职业学院《软件质量保证与测试》2023-2024学年第二学期期末试卷
- 2025年保安证试题汇编及答案
- 保安证资格提升试题及答案
- 保护公共安全的策略试题及答案
- 上海市第二工业大学附属龚路中学2025届高三期初测试历史试题含解析
- 南京审计大学金审学院《基础生物学实验Ⅱ》2023-2024学年第二学期期末试卷
- 河北省任丘一中2024-2025学年高三入学检测试题生物试题含解析
- 2024-2025学年甘肃省武威第八中学高三5月三模考试英语试题含解析
- 2025年辽宁省沈阳市实验中学高三第二次模拟生物试题含解析
- 2025年化学考试准备的试题及答案
- 锂电池技术研发生产合同
- 【MOOC期末】《英美文学里的生态》(北京林业大学)期末中国大学慕课MOOC答案
- 眼镜定配工(初级)理论知识要素细目表
- 重晶石采购合同范例
- 《肺细胞病理学》课件
- 2024年共青团入团考试题库及答案
- 砖混结构工程施工组织设计方案
- 2019北师大版高中英语单词表全7册
- 女性健康知识讲座课件
- 儿童社区获得性肺炎管理指南(2024修订)
- 国际贸易规则变革研究
评论
0/150
提交评论