以太坊智能合约开发与应用实战指南_第1页
以太坊智能合约开发与应用实战指南_第2页
以太坊智能合约开发与应用实战指南_第3页
以太坊智能合约开发与应用实战指南_第4页
以太坊智能合约开发与应用实战指南_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

以太坊智能合约开发与应用实战指南TOC\o"1-2"\h\u8530第一章智能合约概述 2206511.1智能合约的定义 2272301.2智能合约的发展历程 390211.2.1早期摸索 3120751.2.2区块链技术的融入 3200811.2.3以太坊的出现 3131451.3智能合约的应用场景 3226941.3.1金融领域 3225621.3.2供应链管理 323561.3.3物联网 3118721.3.4法律领域 32321.3.5社会公益 416792第二章以太坊基础知识 470062.1以太坊的基本概念 4113912.2以太坊的交易与挖矿机制 420302.2.1交易 4191012.2.2挖矿 4162072.3以太坊的账户模型 5143172.3.1外部账户(EOA) 5253812.3.2合约账户(ContractAccount) 55813第三章智能合约开发环境搭建 5161383.1环境准备 553563.2开发工具的选择与配置 678933.3智能合约开发框架 613788第四章Solidity编程语言 731184.1Solidity概述 7189294.2数据类型与结构 7219374.2.1基本类型 735294.2.2复合类型 751614.3函数与事件 8294454.3.1函数 8180934.3.2事件 826736第五章智能合约开发实践 893845.1智能合约的设计与编写 8257075.1.1确定业务逻辑 8320155.1.2设计合约结构 9194025.1.3编写合约代码 10297775.2智能合约的测试与调试 10247075.2.1单元测试 10160735.2.2集成测试 10324725.2.3调试 1091415.3智能合约的优化与升级 10258385.3.1优化 10135745.3.2升级 1124550第六章智能合约安全 11190726.1智能合约安全概述 11212356.2常见智能合约安全问题 117716.3智能合约安全解决方案 1228685第七章以太坊DApp开发 12258437.1DApp概述 12304977.2DApp前端开发 12161607.3DApp后端开发 1314331第八章智能合约与区块链交互 14137178.1区块链与智能合约交互概述 14133668.2以太坊RPC接口 145678.3智能合约与区块链数据的交互 1427127第九章智能合约部署与运维 15284539.1智能合约的部署 15218249.1.1准备工作 153009.1.2编译智能合约 15258879.1.3连接以太坊网络 15150589.1.4部署智能合约 16192029.2智能合约的运维管理 16257979.2.1合约升级 16322449.2.2合约迁移 16283359.2.3数据备份 16226819.3智能合约的监控与维护 16214369.3.1监控 16123139.3.2维护 172145第十章智能合约应用案例分析 172953610.1金融领域应用案例 172536310.2物联网领域应用案例 17751210.3社会治理领域应用案例 18第一章智能合约概述1.1智能合约的定义智能合约是一种基于区块链技术的自动化程序,其核心功能是实现合同的自动执行、控制和文档管理。智能合约通过预设的规则和条件,当满足这些条件时,合约将自动执行相应的操作。智能合约的出现,将传统法律合同中的信任机制转化为代码,从而降低了交易成本,提高了交易效率。1.2智能合约的发展历程1.2.1早期摸索智能合约的概念最早可以追溯到1994年,由密码学家尼克·萨博(NickSzabo)提出。当时,他提出了一个名为“智能合约”的设想,希望通过数字技术实现合同的自动化执行。1.2.2区块链技术的融入区块链技术的兴起,智能合约的概念得到了进一步的发展。2008年,比特币的发明者中本聪(SatoshiNakamoto)在比特币白皮书中提出了区块链技术的概念,为智能合约的实现提供了技术基础。1.2.3以太坊的出现2014年,以太坊(Ethereum)项目启动,为智能合约的广泛应用提供了平台。以太坊通过其内置的编程语言Solidity,使得开发者能够编写和部署智能合约,实现了智能合约的自动化执行。1.3智能合约的应用场景智能合约在多个领域具有广泛的应用前景,以下为几个典型的应用场景:1.3.1金融领域在金融领域,智能合约可以应用于债券发行、股票交易、保险合同等业务。通过智能合约,可以实现自动化的交易执行和风险管理,降低金融交易成本,提高交易效率。1.3.2供应链管理在供应链管理中,智能合约可以应用于物流跟踪、合同执行、支付结算等环节。通过智能合约,可以提高供应链的透明度,降低信任成本,减少纠纷。1.3.3物联网在物联网领域,智能合约可以应用于设备管理、数据共享、安全认证等场景。通过智能合约,可以实现设备之间的自动协作,提高物联网系统的安全性和可扩展性。1.3.4法律领域在法律领域,智能合约可以应用于电子合同、版权保护、遗嘱执行等场景。通过智能合约,可以简化合同执行过程,降低法律纠纷风险。1.3.5社会公益在社会公益领域,智能合约可以应用于慈善捐赠、项目监督、资金管理等方面。通过智能合约,可以提高公益活动的透明度,保证资金使用的合规性。第二章以太坊基础知识2.1以太坊的基本概念以太坊(Ethereum)是一种基于区块链技术的分布式计算平台,其核心特点是支持智能合约的运行。以太坊由VitalikButerin等人于2015年推出,旨在解决比特币等传统加密货币在扩展性、智能合约支持等方面的局限性。以太坊的基本组成单元是账户,账户之间通过交易进行交互。以太坊的区块链网络中,每个节点都维护一份完整的账本,账本中的数据以区块的形式不断追加。以太坊的共识机制为工作量证明(ProofofWork,PoW),未来将转向权益证明(ProofofStake,PoS)。2.2以太坊的交易与挖矿机制2.2.1交易在以太坊网络中,交易是指从一个账户向另一个账户发送一定数量的以太币(ETH)或其他代币的行为。交易包括以下要素:(1)发送者地址:发起交易的账户地址。(2)接收者地址:接收交易的账户地址。(3)金额:发送的以太币或其他代币数量。(4)数据:可选的附加数据,可用于执行智能合约。(5)随机数(nonce):用于防止重复交易。(6)燃气价格(gasprice):交易的手续费,用于支付矿工打包交易的报酬。(7)燃气限制(gaslimit):交易允许的最大燃气消耗。交易在区块链上以区块的形式进行打包,矿工通过验证交易的合法性来获取手续费。2.2.2挖矿挖矿是指通过解决加密难题来打包交易并获取手续费的过程。以太坊的挖矿机制主要包括以下环节:(1)矿工打包交易:矿工从交易池中选取合法的交易,将其打包成区块。(2)挖矿难度调整:根据网络算力,自动调整挖矿难度,保证区块产生的速度相对稳定。(3)工作量证明:矿工通过计算加密难题的解,证明自己的计算能力。(4)区块奖励:成功挖出新区块的矿工将获得一定数量的以太币作为奖励。(5)手续费分成:矿工将从打包的交易中获取部分手续费。2.3以太坊的账户模型以太坊的账户模型分为两类:外部账户(ExternallyOwnedAccount,EOA)和合约账户(ContractAccount)。2.3.1外部账户(EOA)外部账户是由用户创建的普通账户,拥有私钥和公钥。用户通过私钥对交易进行签名,保证交易的安全性。外部账户可以发送交易、接收代币、调用智能合约等。2.3.2合约账户(ContractAccount)合约账户是由智能合约创建的特殊账户,其地址由合约的创建者指定。合约账户包含智能合约的代码和数据,可以响应外部账户的调用,执行特定的业务逻辑。合约账户的私钥由合约代码控制,无法被外部账户持有。智能合约的运行依赖于虚拟机(EVM),虚拟机将合约代码编译为字节码,并在各个节点上执行。合约的执行过程遵循以下规则:(1)燃气消耗:合约执行时,每一步操作都会消耗一定数量的燃气。当燃气消耗达到预设的上限时,合约执行将终止。(2)状态变更:合约执行过程中,会对账户的状态进行修改,包括余额、存储等。(3)事件日志:合约执行过程中,可以记录事件日志,以便于追踪和审计。第三章智能合约开发环境搭建3.1环境准备在进行以太坊智能合约开发之前,开发者需保证以下基础环境准备就绪:(1)操作系统:推荐使用Ubuntu18.04LTS或CentOS7以上的Linux操作系统,以保证软件兼容性和稳定性。(2)Go语言环境:以太坊节点程序geth是用Go语言编写的,因此需要安装Go语言环境。建议安装Go1.10及以上版本。(3)Python环境:Python环境中需要安装pip工具,以便安装一些Python库。(4)Node.js环境:Node.js环境用于运行Truffle等开发工具,推荐安装Node.js10.0及以上版本。3.2开发工具的选择与配置以下为常用的以太坊智能合约开发工具及其配置方法:(1)Remix:Remix是一款在线的Solidity开发环境,适用于初学者快速学习和编写智能合约。开发者只需在浏览器中访问Remix官网,即可开始编写和调试智能合约。(2)VisualStudioCode:VisualStudioCode是一款功能强大的代码编辑器,支持多种编程语言。安装VSCode后,需安装以下插件:Solidity:用于Solidity语言的支持。Truffle:用于Truffle框架的支持。(3)Truffle:Truffle是一个用于以太坊智能合约开发的框架,提供了合约编译、部署、测试等功能。安装Truffle:$npminstallgtruffle(4)Ganache:Ganache是一款以太坊节点模拟器,可用于本地开发环境。安装Ganache:$npminstallgganachecli3.3智能合约开发框架以下为常用的以太坊智能合约开发框架:(1)Solidity:Solidity是以太坊智能合约的主要编程语言,具有类C的语法。Solidity合约编写完成后,需通过编译器进行编译,可部署的字节码。(2)Truffle:Truffle是一个基于Node.js的以太坊智能合约开发框架,提供了合约编译、部署、测试等功能。使用Truffle,开发者可以方便地管理项目、编写测试用例、部署合约等。(3)OpenZeppelin:OpenZeppelin是一套开源的Solidity合约库,提供了许多安全、可靠的智能合约模板。开发者可以基于这些模板快速搭建自己的合约项目。(4)Hardhat:Hardhat是一个基于Node.js的以太坊开发框架,类似于Truffle,提供了合约编译、部署、测试等功能。Hardhat具有丰富的插件支持,可根据开发者需求进行定制。第四章Solidity编程语言4.1Solidity概述Solidity是一种合约导向、用于以太坊智能合约的编程语言,支持多种编程范式,包括面向对象、继承、库和复杂的用户定义类型等。作为以太坊官方推荐的编程语言,Solidity以其严谨的类型系统、强大的安全性以及图灵完备性等特点,在区块链领域占据重要地位。Solidity的语法与JavaScript、C等高级编程语言类似,易于学习和掌握。但是作为一种新兴的编程语言,Solidity在设计和实现上具有一定的特殊性,如在合约中处理以太坊的货币单位、事件日志等。4.2数据类型与结构Solidity中的数据类型分为两大类:基本类型和复合类型。基本类型包括布尔型、整型、浮点型、字符串等;复合类型包括数组、结构体、枚举等。4.2.1基本类型(1)布尔型:布尔型变量用于表示真(true)或假(false)两种状态。(2)整型:整型变量用于表示整数,分为无符号整型(uint)和有符号整型(int)。(3)浮点型:浮点型变量用于表示小数,Solidity中默认的浮点数为256位。(4)字符串:字符串用于表示一系列字符,Solidity中字符串是不可变的。4.2.2复合类型(1)数组:数组用于存储一系列相同类型的元素。Solidity中的数组分为固定长度数组和动态长度数组。(2)结构体:结构体用于封装不同类型的变量,可以看作是自定义的数据类型。(3)枚举:枚举用于定义一组命名的整型常量,用于表示一组有限的选项。4.3函数与事件4.3.1函数Solidity中的函数是智能合约的核心组成部分,用于实现合约的业务逻辑。函数可以分为以下几种类型:(1)构造函数:构造函数在合约部署时执行,用于初始化合约的内部状态。(2)视图函数:视图函数用于读取合约的内部状态,不改变合约的状态。(3)纯函数:纯函数既不读取也不修改合约的状态。(4)支付函数:支付函数用于接收以太坊货币,通常与交易相关。(5)回调函数:回调函数在合约接收到外部调用时执行。4.3.2事件事件是Solidity中用于记录合约操作的重要机制。事件可以被区块链上的节点监听,以便于开发者跟踪合约的状态变化。在Solidity中,事件定义如下:solidityeventEventName(argument1,argument2,);事件可以包含多个参数,参数可以是任意类型。当事件被触发时,相关参数会被记录在区块链上,便于查询和分析。第五章智能合约开发实践5.1智能合约的设计与编写智能合约的设计与编写是开发过程中的关键环节。在设计智能合约时,首先需要明确合约的业务逻辑和功能需求,保证合约能够满足实际应用场景的要求。5.1.1确定业务逻辑在确定业务逻辑时,需要分析项目需求,梳理出合约需要实现的主要功能和关键业务流程。例如,一个基于以太坊的供应链管理合约,需要实现的功能可能包括:商品信息登记、订单创建、订单支付、订单履行等。5.1.2设计合约结构根据业务逻辑,设计合约的结构,包括合约的变量、函数、事件等。在设计过程中,要充分考虑合约的安全性、可维护性和可扩展性。以下是一个简单的合约结构示例:soliditypragmasolidity^0.6.0;contractSupplyChain{//定义变量addresspublicowner;mapping(uint=>Product)publicproducts;//定义事件eventProductAdded(uintindexedproductId,addressindexedowner);//构造函数constructor()public{owner=msg.sender;}//函数:添加商品functionaddProduct(uintproductId,stringmemoryname,uintprice)public{//添加商品逻辑}//函数:购买商品functionbuyProduct(uintproductId)publicpayable{//购买商品逻辑}//函数:更新商品价格functionupdateProductPrice(uintproductId,uintnewPrice)public{//更新商品价格逻辑}}//结构体:商品信息structProduct{uintid;stringname;uintprice;addressowner;}5.1.3编写合约代码根据设计好的合约结构,编写具体的合约代码。在编写过程中,要注意合约的安全性和效率,遵循Solidity编程规范。5.2智能合约的测试与调试智能合约的测试与调试是保证合约安全性和稳定性的重要手段。在开发过程中,应进行充分的测试和调试,保证合约在实际运行时能够按照预期工作。5.2.1单元测试单元测试是针对合约中的每个函数进行测试,保证每个函数的功能正确实现。可以使用Truffle、JavaScript等测试框架进行单元测试。5.2.2集成测试集成测试是将合约的各个部分组合在一起进行测试,验证合约的整体功能是否正确。在集成测试中,可以模拟真实环境下的交易和数据交互,检验合约的稳定性和功能。5.2.3调试在测试过程中,如果发觉合约存在问题,需要进行调试。调试过程中,可以使用Solidity的调试工具,如Remix、Ganache等,定位问题所在,并进行修复。5.3智能合约的优化与升级业务的发展,智能合约可能需要进行优化和升级,以提高功能、安全性和可维护性。5.3.1优化优化智能合约主要从以下几个方面进行:(1)减少合约的gas消耗,提高合约效率;(2)优化合约结构,提高代码的可读性和可维护性;(3)使用安全编程规范,降低合约的安全风险。5.3.2升级升级智能合约通常涉及以下步骤:(1)设计新版本的合约,并保证与旧版本兼容;(2)在新版本合约中实现新的功能或修复已知问题;(3)将新版本合约部署到区块链网络,替换旧版本合约;(4)更新前端应用,使其与新的合约版本交互。第六章智能合约安全6.1智能合约安全概述智能合约是区块链技术中的重要组成部分,其安全性直接关系到整个区块链系统的稳定性和可信度。智能合约安全是指保护智能合约免受恶意攻击、错误操作以及代码漏洞等威胁的能力。智能合约安全主要包括以下几个方面:(1)代码安全性:保证智能合约代码的正确性、健壮性和可维护性。(2)数据安全性:保护智能合约存储的数据不被篡改、泄露或丢失。(3)通信安全性:保证智能合约之间的通信不被窃听、篡改或阻断。(4)权限管理:合理设置智能合约的权限,防止恶意操作。6.2常见智能合约安全问题以下是几种常见的智能合约安全问题:(1)重入攻击:攻击者利用智能合约的调用外部合约的功能,在合约执行过程中多次调用合约,从而达到窃取资产的目的。(2)漏洞赏金:智能合约中的代码漏洞可能导致资产损失,攻击者可以利用这些漏洞进行攻击。(3)逻辑错误:智能合约中的逻辑错误可能导致合约执行结果与预期不符,造成资产损失。(4)拒绝服务攻击:攻击者通过阻塞智能合约的执行,使合约无法正常提供服务。(5)恶意合约:攻击者部署恶意合约,诱使其他用户与其交互,从而达到窃取资产的目的。6.3智能合约安全解决方案针对上述安全问题,以下是一些智能合约安全解决方案:(1)重入攻击防护:在调用外部合约时,使用状态变量进行控制,保证在调用过程中不会被多次触发。(2)代码审计:在智能合约部署前,进行严格的代码审计,发觉并修复潜在的安全漏洞。(3)使用安全库:引入安全库,如OpenZeppelin等,以减少代码漏洞的风险。(4)拒绝服务攻击防护:对智能合约进行优化,提高其处理请求的能力,防止恶意攻击。(5)权限管理:合理设置智能合约的权限,限制恶意操作的范围。(6)透明度与公开性:提高智能合约的透明度,公开合约代码和逻辑,以便用户和开发者共同监督合约的安全性。(7)保险与赔偿机制:建立智能合约保险和赔偿机制,降低因合约安全问题导致的损失。(8)持续监控与更新:对智能合约进行持续监控,及时发觉并修复安全问题,保证合约的安全稳定运行。第七章以太坊DApp开发7.1DApp概述DApp,即去中心化应用(DecentralizedApplication),是基于区块链技术的分布式应用程序。DApp将传统中心化应用的业务逻辑和数据存储在区块链上,实现了去中心化、透明、安全的特点。在以太坊平台上,DApp的开发与应用已成为区块链技术的重要应用方向。7.2DApp前端开发DApp前端开发是指构建用户界面与用户交互的过程。以下为DApp前端开发的关键步骤:(1)设计UI界面:根据需求设计简洁、直观的用户界面,保证用户能够轻松地与DApp进行交互。(2)选择前端框架:前端框架有助于提高开发效率,如React、Vue.js等。开发者可根据项目需求选择合适的前端框架。(3)实现智能合约交互:通过调用智能合约的接口,实现与区块链数据的交互。常用的交互库有web(3)js、ethers.js等。(4)连接钱包:为用户提供连接钱包的选项,以便在DApp中发送交易和接收数据。常见的钱包有MetaMask、MyEtherWallet等。(5)异常处理:对用户操作过程中可能出现的异常情况进行处理,保证DApp的稳定运行。7.3DApp后端开发DApp后端开发主要包括智能合约编写、部署与维护,以及与区块链网络的交互。以下为DApp后端开发的关键步骤:(1)智能合约编写:使用Solidity语言编写智能合约,实现业务逻辑。智能合约应具备以下特点:a.安全性:避免潜在的安全漏洞,如重入攻击、整数溢出等。b.高效性:优化合约执行效率,降低交易费用。c.可扩展性:为未来功能升级和拓展预留空间。(2)智能合约部署:将编写好的智能合约部署到以太坊网络。部署过程中,需注意以下事项:a.选择合适的主网或测试网进行部署。b.设置合适的Gas价格,保证交易能够被矿工打包。c.验证智能合约的正确性,保证业务逻辑无误。(3)智能合约维护:定期检查智能合约的运行状态,及时修复漏洞和优化功能。(4)区块链网络交互:通过调用区块链API,实现与区块链网络的交互。以下为常见的交互方式:a.查询区块链数据:获取区块链上的交易记录、账户余额等信息。b.发送交易:将用户操作转化为区块链上的交易,如发送代币、调用智能合约等。c.监听事件:实时监听区块链上的事件,如交易确认、合约事件等。通过以上步骤,开发者可以构建一个完整的DApp,为用户提供去中心化、透明、安全的服务。在DApp开发过程中,前端与后端开发相互依赖,共同实现DApp的各项功能。第八章智能合约与区块链交互8.1区块链与智能合约交互概述区块链技术与智能合约的融合,为去中心化应用(DApp)的开发提供了坚实的基础。在区块链网络中,智能合约作为自动执行的程序,能够在满足特定条件时自主执行合约内容。区块链与智能合约的交互,使得开发者能够在区块链上构建出具有丰富功能的应用。本章将详细介绍区块链与智能合约的交互方式及实现方法。8.2以太坊RPC接口以太坊RPC(RemoteProcedureCall)接口是开发者与以太坊区块链进行交互的主要途径。通过RPC接口,开发者可以发送请求到以太坊节点,获取区块链上的相关信息,或者执行智能合约的函数。以下为以太坊RPC接口的基本使用方法:(1)连接到以太坊节点:开发者需要连接到以太坊节点,可以使用HTTP或WebSocket协议进行连接。(2)发送RPC请求:开发者通过发送JSON格式的RPC请求,包含方法名称、参数和JSONRPC版本等信息。(3)接收RPC响应:以太坊节点收到RPC请求后,会处理请求并返回响应。响应包括结果数据、错误信息(如有)和JSONRPC版本。以下为常见的以太坊RPC方法:eth_getBalance:查询地址的余额eth_getTransactionCount:查询地址的交易数量eth_sendRawTransaction:发送原始交易eth_call:调用智能合约函数eth_getCode:获取智能合约的代码8.3智能合约与区块链数据的交互智能合约与区块链数据的交互主要通过以下几种方式实现:(1)调用合约函数:开发者可以通过eth_call方法调用智能合约中的函数,获取合约内部的状态变量或执行合约操作。调用合约函数时,需要提供合约地址、函数名、参数类型及参数值等信息。(2)事件日志:智能合约在执行过程中,可以触发事件日志。开发者通过监听事件日志,可以获取合约执行过程中的关键信息。事件日志包括事件名称、参数类型及参数值等。(3)交易回执:当智能合约执行交易时,会交易回执。开发者可以通过交易回执获取合约执行的结果,如成功或失败、消耗的Gas费用等。(4)区块链浏览器:区块链浏览器是一种用于查看区块链数据的工具,开发者可以通过区块链浏览器查询智能合约的地址、交易记录、事件日志等信息。(5)智能合约存储:智能合约可以将数据存储在区块链上,开发者可以通过读取合约存储的数据,了解合约的状态。(6)跨链交互:多链生态的发展,智能合约需要与其他区块链进行交互。跨链交互技术使得智能合约能够在不同区块链之间传递数据和资产。通过以上几种方式,智能合约能够与区块链数据进行有效交互,为开发者提供丰富的功能和应用场景。第九章智能合约部署与运维9.1智能合约的部署智能合约的部署是将其编译后的字节码至以太坊网络的过程。部署智能合约需遵循以下步骤:9.1.1准备工作在部署智能合约前,需保证已安装并配置好以下环境:(1)以太坊客户端:如Ganache、Parity或GoEthereum等。(2)智能合约开发框架:如Truffle、Hardhat等。(3)钱包:如MetaMask、MyEtherWallet等。9.1.2编译智能合约使用智能合约开发框架(如Truffle或Hardhat)对合约进行编译,相应的字节码和ABI(ApplicationBinaryInterface)文件。9.1.3连接以太坊网络通过智能合约开发框架连接至以太坊网络,可以是本地节点、测试网络或主网络。9.1.4部署智能合约将编译后的字节码和ABI文件通过智能合约开发框架部署至以太坊网络。部署过程中,需指定合约的构造函数参数、部署者地址及矿工费用等。9.2智能合约的运维管理智能合约的运维管理主要包括合约升级、合约迁移和数据备份等方面。9.2.1合约升级业务需求的变化,智能合约可能需要进行升级。升级合约通常有以下方法:(1)使用代理合约模式:在部署时,将代理合约与业务合约分离,代理合约负责调用业务合约的方法。升级时,只需更新业务合约,代理合约保持不变。(2)使用升级代理合约:部署一个可升级的代理合约,当需要升级时,通过代理合约修改业务合约地址。9.2.2合约迁移合约迁移是指将智能合约从主网络迁移至其他网络(如测试网络、本地网络等)的过程。迁移合约需遵循以下步骤:(1)保证目标网络环境与源网络一致。(2)复制源网络的合约地址、ABI文件和构造函数参数。(3)在目标网络部署相同的合约,并将构造函数参数设置为源网络的参数。(4)将合约地址更新至相应的钱包或应用中。9.2.3数据备份为了防止数据丢失,需要对智能合约进行定期备份。备份内容包括:(1)合约ABI文件:用于调用合约方法。(2)合约地址:用于与合约交互。(3)合约存储数据:包括合约状态和事件日志。9.3智能合约的监控与维护智能合约的

温馨提示

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

评论

0/150

提交评论