Solidity -> sCrypt 转译器简介

在这里插入图片描述

为什么需要它?

sCrypt 是 BSV 的原生智能合约语言。理想情况下,每个人都应该在 sCrypt 中开发智能合约,利用最具扩展性的区块链。在实践中,我们也了解到许多项目和开发人员已经投入大量时间和金钱来开发他们当前的 Solidity 代码库。

转译器有助于开发人员将他们的应用程序从以太坊和其他 Solidity/EVM 兼容的区块链迁移到 BSV 网络,而无需从头开始编写代码。它极大地降低了他们的迁移成本,尤其是当他们的代码库包含数千行或更多代码时。

此外,现有的 Solidity 库和代码库可以被转换并用于 sCrypt 合约。

最后,它还可以用于 Solidity 开发人员通过观察 Solidity 代码与其 sCrypt 对应代码之间的相似性和差异来快速学习 sCrypt。

它是如何工作的?

转译不是一件容易的事,因为以太坊智能合约是基于账户模型的,而 BSV 区块链是基于 UTXO 模型的。

从抽象的高层上来讲,我们使用单个 UTXO 来表示以太坊合约的快照,并将每个合约账户映射到一个具有等效的代码和数据存储的起始 UTXO,表示合约的初始状态。我们使用有状态智能合约来映射更改合约状态的函数调用。每当合约的状态发生变化时,就会产生一笔新的交易,该交易花费合约的当前 UTXO,并生成另一个具有新状态的 UTXO。原始合约的最新状态总是在最新的 UTXO 中。转译器将合约的solidity 代码转换为 sCrypt 中的等效对应代码。更多详情,请参考这里

在这里插入图片描述

将以太坊合约映射到 BSV 有状态合约

在哪里使用它?

我们为转译器开发了一个 playground。只需单击一下,您就可以将 Solidity 编写的合约转换为等价的sCrypt 合约。

我们在下面展示了一个简单的计数器合约示例。

在这里插入图片描述

你可以看到左边的 Solidity 代码和右边的 sCrypt 代码几乎是一一对应的。
每个 Solidity 状态和函数都映射到一个 sCrypt 状态和函数。sCrypt 中的额外代码是用于将合约状态传播到下一个 UTXO 的样板代码,并且对于任何合约几乎都是相同的。

致谢

我们感谢 Vaionex 开发 Web UI 和 BSV 协会赞助该项目。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sCrypt Web3应用开发

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值