智能合约引擎

这个专题主要聊聊智能合约相关的

GitHub - XuHugo/xwasm

最近一直在用rust写区块链底层,又是写合约引擎,现在基本完成了,包括wasm虚拟机和基于rust的eDSL。所以就想着借着这个机会,把一些想法记录一下。

首先区块链发展到现在,大部分功能都需要智能合约来完成,不过五花八门的语言,确实增加了老铁们的负担,虽然各位老铁基本都可以左手拿教程,右手拿键盘,直接开整。不过因为合约漏洞,而导致各种新闻也让手握Token的信仰者胆战心惊了。虽然问题多多,当时我依然认为,智能合约和虚拟机,必须是未来的重点,因为它将支撑了整个生态系统。

并行运行合约

性能一直都是区块链的一个瓶颈,而合约的运行则是其中的根本,所以我们也给我们这套合约运行系统,设计了一套并行方案,方案来源于aptos的block stm。

eDSL

目前基于rust的eDSL,我知道的有两个,ink!和liquid。我们自己设计的eDSL,我感觉细节上差距还是蛮大的,不错理念上差距不大;都是元编程——用代码生成代码,因为rust的元编程能力主要来自于宏,所以我们看到的基本都是给智能合约语言,提供各种宏;

宏编程

这个是我们自研eDSL的基础,是必须掌握的一点;主要涉及的是过程宏,rust中宏的功能功能很强大,我自己以前用C,相较于C这种替换的简单操作;rust直接提供了操作token和ast的库,使得开发者有了更大强大的武器。

虚拟机

使用wasm,一种自己实现了一版,后来直接采用了wasmtime,开始还担心gas,后来发现了parity的解决方案,真是yyds啊,就直接用了;链上链下的数据格式转换也是不小的问题,后来在json、rust的数据做了一个映射了,也算是完美解决了。

webassembly规范

这是wasm的底层原理,我们可以不学习,会使用就可以了,不过介于wasm应用范围逐步扩大,我到时候,会在这个章节,从零开始写一个wasm虚拟机;

工具

这个目前感觉还有点遗憾,做的不够完善,不过现在也没有太多研究这方面,还是直接用cargo和wabt直接处理,后边考虑集成一下,看看在结合llvm能不能做的更完美一些。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0xweb3q

有钱的捧个钱场,没钱的捧个人场

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值