IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 智能合约语言(eDSL)—— 合约形式 -> 正文阅读

[区块链]智能合约语言(eDSL)—— 合约形式

? ? ? ? 我们写智能合约的时候,会发现,合约其实是有一个比较明显的范围限定的。例如solidity中,就有类似于面向对象中的类,将一个合约的属性与方法,都设定在一个合约类当中;而在fabric中链码,更接近我们普通的程序,合约分布在几个文件中,用户将其打包成一个智能合约。所以我们在设计智能合约语言的时候,第一步考虑的就是我们的合约是一个怎么样的形式。

? ? ? ? 简单一点,一组变量和一组方法,基本可以满足合约的要求了。然后就是我们以什么样子的形式把其组织起来呢?先说一下我们的目标,我们希望这组变量和方法可以很明显的被观测到,他们属于一个合约。写合约的时候,也能够让开发者,足够方便且醒目,不至于开发的时候出现错误。

? ? ? ? 我们的智能合约语言是基于rust实现的,利用rust语言开发一种新的语言——智能合约语言,不过这门新的语言不需要很强大的功能,它能覆盖智能合约需求即可;就具体实现来说,我们其实就是利用rust的宏,实现元编程。相对于ethereum和fabric的两种方法,我们采用标记的方法,即用户主动标记当前的元素——函数、变量——属于哪个合约。

??? 我们主要是使用属性宏——proc_macro_attribute去实现我们的智能合约语言,然后通过他的第一个参数attr,设置合约的名称contract。

??? 例如,设置初始化参数。

#[init(contract="erc20")]

fn erc20_init<T>()->Result<T>{

… …

}

??? 调用函数设置合约,

#[invoke(contract="erc20")]

fn erc20_invoke<T>()->Result<T>{

… …

}

??? 设置事件

#[event(contract="erc20")]

enum event {

… …

}

我们通过在不同的宏中,设置contract的值,来确定各个元素的属于哪个合约。

但从智能合约的结构来说,我们只需要添加一些属性和方法,就完全够用了。后边我们就以这个思路,将其他基本的结构补充完整其骨架,置于具体的实现,后边也会慢慢做。

? ?

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2021-12-23 15:48:55  更:2021-12-23 15:48:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:38:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码