标签:习惯 ibus com tac 内容 sharp 常用 嵌入 模块
简介:上面介绍的在Solidity中嵌入的内联汇编语言也可以单独使用。实际上,它是被计划用来作为编译器的一种中间语言。本文我们将介绍开发智能合约过程中Solidity语言的开发规范和开发流程。
Solidity作为编译器的一种中间语言。在开发智能合约时需要遵守相应的开发规范和开发流程。
开发规范
命名规范
目录和文件
合约、库文件命名
常量和配置
目录结构
|-app(truffle服务目录) |-contracts(合约目录) | └─interfaces(抽象合约目录) | | └─library(结构解析库目录) | | └─sysbase(公共合约目录) | |-OwnerNamed.sol(基础合约,所有用户业务合约,必须继承此基础合约) | └─BaseModule.sol | | └─utillib(工具库目录) | |-LibDB.sol | |-LibDecode.sol | |-LibInt.sol | |-LibJson.sol | |-LibLog.sol | |-LibNIZK.sol | |-LibNizkParam.sol | |-LibPaillier.sol | |-LibStack.sol | |-LibString.sol | └─Strings.sol | |-migrations(truffle发布配置目录) |-test(测试脚本目录) |-truffle.js Copy
常规开发中,使用目录对合约文件的功能进行分类,下面逐一介绍功能:
开发流程
按照良好的编程习惯,在编写业务方法前,首先定义接口,并交付给调用者。
用户定义的合约接口中,如果有比较复杂的输入/输出数据,就有必要提前定义一些数据结构,并提供操作这些数据结构的一些常用方法(主要是一些序列化成JSON字符串的方法)。
实现合约接口定义,并实现用户的业务逻辑。在业务合约的构造函数中,需要把业务合约注册到模块合约中。
如果用户只是想编写业务合约,做学习,测试用,则可以把业务合约注册到"juzix.io.debugModule"这个特殊名称的模块合约中,则用户可以不需要编写模块合约,从而在JUICE客户端IDE中直接调用业务合约的方法。
编写模块合约,这是JUICE开放服务平台的要求,以便管理用户的DAPP应用、业务合约。在模块合约的构造函数中,需要把模块合约注册到链上,并在构造函数中说明模块合约将会使用到的所有业务合约。
用户编写了模块合约、并部署到JUICE区块链后,模块的名称将会显示在JUICE开放服务平台的“我的应用”中,点击“我的应用”的某个应用,将会跳转到用户开放的DAPP应用。如何设置应用的跳转URL,参考 模块合约编写 https://open.juzix.net/api_doc/part03/example/modules.md
通过JUICE客户端,或者在线IDE,都可以完成编译、部署、测试用户合约。
参考内容:https://open.juzix.net/doc
智能合约开发教程视频:http://edu.51cto.com/course/13403.html
智能合约从入门到精通:Solidity语言的开发规范和开发流程
标签:习惯 ibus com tac 内容 sharp 常用 嵌入 模块
原文地址:https://www.cnblogs.com/shjuzhen/p/9272832.html