温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
以太
区块
平台
智能
合约
开发
雪莲
20基于以太坊区块链平台的智能合约开发荀 雪 莲(北华航天工业学院 图书馆,河北 廊坊 065000)摘要:区块链2.0 最典型的特点是智能合约,而以太坊内置有完备的编程语言,为构建智能合约的应用平台提供了很好地帮助。本文介绍了智能合约的概念和特征,然后展示了智能合约开发语言和集成开发环境以及如何部署智能合约,最后,列举了一个高校服务学生方面的智能合约应用案例,为区块链的开发提供了很好的参考和借鉴。关键词:以太坊,区块链,智能合约,开发语言中图分类号:T P 3 1 1.1 3 文献标识码:A 文章编号:1 6 7 3-7 9 3 8(2 0 2 3)0 1-0 0 2 0-0 21 智能合约概述比特币的出现以及区块链技术的飞速发现,推动了智能合约的出现。智能合约技术,目前仍还处于早期阶段,该项技术是种用计算机程序设计语言来取代现实社会中的法律语言来记录相应条款的合约。该技术可以大大降低签订合约以及执行和监管方面的成本,从而彰显出其经济价值所在,但智能合约也存在潜在的风险,该风险依赖于计算机本身。从智能合约的本质出发,该技术依赖于区块链技术,采用计算机语言,所以准确的称之为“链上代码”(chaincode)更贴切。相对于法律合约,智能合约有六大特征,分别是:数字化、自我管理、不易修改、可观测性、强制性和可定制性。2 智能合约开发环境智能合约的开发是基于区块链技术,当前当属以太坊(Ethereum)区块链技术最为流行和成熟。2.1 智能合约开发语言EVM(Ethereum Virtual Machine)以太坊虚拟机的建立便于用户开发智能合约,也就是说程序开发商采用高级编程语言来编写智能合约,然后借助EVM编译成字节码部署到区块链上。Solidity是目前以太坊智能合约开发最主要的编写语言,该语言语法类似于JavaScript脚本语言,而且是采用面向对象技术,后缀名为.sol,编译好之后,就可以发送到网络上,以太坊内置库有一个API,名为web3.js,用户可以利用它来调用,从而进行web应用的开发,实现完美的交互功能。2.2 智能合约开发环境智能合约开发采用IDE(Integrated Development Environment)集成开发环境,上述开发语言solidity的集成开发环境目前比较流行而简易的是以太坊的Remix,该IDE基于浏览器,我们开发者可以直接打开、调试和编译,无需安装,非常方便,而且功能强大。3 以太坊智能合约部署在以太坊区块链平台上部署并运行智能合约的步骤如图1 所示,总共有5 步,分别是:(1)启动一个以太坊节点,本案例选取TestRPC节点。(2)程 序 开 发 者 使 用 智 能 合 约 编 程 语 言Solidity,根据项目需求分析文档,编写智能合约,本案例名为:schoolToStudent.sol。(3)借助于一个名为node.js的JavaScript库,schoolToStudent.sol智能合约就可以通过Truffle开发框架进行编译,从而生成EVM字节码。(4)将编译好的EVM部署发送到以太坊网络平台中,由矿工进行挖矿后,将智能合约代码写入到区块链上。(5)web3.js库提供了JavaScript API接口,WEB应收稿日期:2 0 2 2-0 3-2 5第一作者简介:荀雪莲(1 9 8 2-),女,助理工程师,本科,安徽人,主要从事图书馆学、信息学以及计算机基础课程教学工作。第 33 卷第 1 期2023 年 02 月北华航天工业学院学报Journal of North China Institute of Aerospace EngineeringVol.33 No.1Feb.202321用的开发可以通过该接口来调用部署在以太坊区块链上的智能合约代码,从而实现完美的交互功能。WEB 应用(HTML/CSS/JavaScript)智能合约(bookBorrow.sol)Truffle 开发框架web3.jsEVM其他以太坊功能主链测试链私有链以太坊核心web3.js图 1 以太坊智能合约部署图4 智能合约应用案例类似于法律合约,智能合约可以包含相应业务对应的各个规则和条件。目前,在商业上,智能合约有很多成功的案例,本文模仿智能合约在商业上进行数字身份验证的案例,尝试着在高校服务学生方面进行智能合约的开发。智能合约可以让学生拥有和控制包含信誉、数据和数字资产的数字身份,并且允许自身控制哪些数据可以与图书馆进行共享,哪些数据可以与教务处共享,哪些数据可以与校团委、学生工作部等等进行共享,从而为各部门了解学生提供了机会。基于上述案例应用,可以看出,通过智能合约创建的自主数字身份提供了一种以用户(学生)为中心的个人互联网,展示了三个特性:(1)个人数据控制:用户(学生)可以决定向不同部门共享不同的数据。(2)减少各部门的责任,同时也促进了各部门了解学生。(3)提高了合规性、弹性和互操作性。5 结 语本文根据智能合约的特征、完善的体系架构以及易操作的部署开发平台,并列举了一个在图书馆服务上的应用,为区块链的开发提供了很好的参考和借鉴,相信智能合约的应用会越来越受到重视,而且应用也会越来越广泛。参考文献:1 李娟娟,袁勇,王飞跃.基于区块链的数字货币发展现状与展望J.自动化学报,2021,47(04):715-729.2 白娟.区块链技术在高等教育领域的应用与面临的挑战J.中国信息技术教育,2021(19):100-102.3 朱建明,高胜,段美姣.区块链技术与应用M.机械工业出版社,2018:253-307.4 王赫彬,郑长友,黄松,等.以太坊智能合约安全形式化验证方法研究进展J.计算机技术与发展,2021,31(09):104-111.5 林诗意,张磊,刘德胜.基于区块链智能合约的应用研究综述J.计算机应用研究,2021,38(09):2570-2581.Development of Intelligent Contract based on Ethereum Block Chain PlatformXun Xuelian(Library,North China Institute of Aerospace Engineering,Langfang 065000,China)Abstract:The most typical feature of Block Chain 2.0 is the smart contract,and the complete programming language is built in Ethereum,which provides a good help for building the application platform of the smart contract.This article introduces the concept and features of smart contracts,and then shows the development language and integrated development environment of smart contracts,and how to deploy smart contracts,and finally illustrates a special case of intelligent contract in university service for students.It provides a valuable reference for the development of Block Chain.Keywords:Ethereum,Block Chain,smart contract,development language荀雪莲:基于以太坊区块链平台的智能合约开发第 1 期2023 年 02 月