本文综述了基板智能合约的研究现状。
虚拟机
Frame提供了两个可以添加到底层运行时的智能合约虚拟机。合同模块
框架契约模块(seal)为运行时提供部署和执行web程序集智能契约的能力。旨在迭代设计现代智能合约平台。EVM模块
帧EVM模块[1]提供EVM执行环境,允许未经修改的EVM代码在基于基板的区块链中执行。在底层运行时,模拟火币网主网上最接近执行合同的功能。习俗
基板不是仅限于其自身模块的平台。
我们鼓励进一步开发更多基于底层运行时的智能合约平台。您可以使用这些预先构建的模块在现有系统上设计自己的系统或端口,然后运行基于基板的链。
智能合约语言墨水!
墨水![2] 是一个基于rust的edsl,它专门用于为合同模块编写wa智能合同[3]。它的设计是正确、简洁和高效的。
智能合约s运行时模块
抽象运行时模块和抽象智能合约是使用抽象框架构建“去中心化应用程序”的两种不同方法。智能合约
传统的智能合约平台允许用户在一些核心区块链逻辑的基础上添加额外的逻辑。由于任何人都可以发布智能合约逻辑,包括恶意行为人和缺乏经验的开发人员,因此在这些公共智能合约平台上设立了许多保安。
一些例子:
成本:确保合同开发人员计算并存储在执行合同的计算机上,并且不允许滥用块创建者。
SandBox:合约不能直接修改核心区块链或其他合约的存储。它的功能仅限于修改自己的状态和对其他契约或运行时函数进行外部调用。
状态租赁:合同占用区块链空间,需收取现有费用。这确保人们不会使用“免费、无限存储”
恢复:合同容易出现逻辑错误。契约开发人员的期望值很低,因此会增加额外的开销,以支持在事务失败时恢复该事务,因此在发生错误时不会更新状态。
这些不同的管理成本使得运行合同变得更慢、更昂贵。然而,契约开发的“目标受众”不同于运行时开发人员。
契约允许您的社区在运行时逻辑的基础上进行扩展和开发,而不必经历所有疯狂的提议、运行时升级等。。它们甚至可以用作将来运行时更改的测试基础,这样可以将网络与“成长的痛苦”或可能的错误隔离开来。
总而言之,基板智能合约:
对网络来说本质上更安全。
建立了防止滥用的经济激励机制。
支持逻辑中的正常失效有一定的计算代价。
发展门槛低。
快速的社区互动,通过操场写出新的逻辑。运行时模块
运行时模块不提供智能合约提供的这些安全保护。所以作为一个运行时开发人员,您的开发成本会更高。
您可以完全控制网络上每个节点上运行的底层逻辑。您可以完全访问所有模块中的每个存储项,并可以对其进行修改和控制。你甚至可以用错误的逻辑或错误处理来构建你的链。
底层运行时模块开发的目的是生成精简、高效、快速的节点。它不提供任何事务恢复的保护或开销,也不向链中节点运行的计算引入任何计费系统。这意味着当你开发一个运行时函数时,你需要对运行时逻辑的不同部分进行正确的评估和收费,这样它就不会被坏的参与者滥用或损坏你的网络。
总而言之,基板运行时模块:
它为整个区块链提供基础提供商。
内置的安全开销系统被删除以提高性能。
开发人员的门槛很高。
您不必编写工作代码,但要避免编写错误代码。
没有内在的经济动机来排斥坏玩家。给你的工具
抽象运行时模块和抽象智能合约是可用于解决问题的工具。
这两种方法可能有一定程度的重叠,但也存在一些只适合其中一种方法的明显问题。下面是一些例子:
运行时模块:在区块链中的交易之上建立一个隐私层。
共享:要构建一个游戏DAPP,它可能需要构建一个用户社区(倾向于使用智能合约),或者可能需要扩展到每天数百万个事务(倾向于使用运行时模块)。
智能合约:在区块链代币中引入多签名钱包。
除以上所有内容外,还需要考虑使用特定工具设置DAPP的成本。部署契约是一个相对简单的过程,因为您可以利用现有的网络。对您来说,唯一的成本是部署和维护合同所需的费用。
另一方面,要建立自己的区块链,你需要花钱建立一个在你的服务中发现价值的社区,或者用云计算系统和一般网络维护的成本来建立一个私有网络。
在这里很难对每种可能的情况提供直接的指导,但是您可以使用下表帮助您使用不同的工具对各种情况做出决策:
下一步了解更多
查看基板如何使用合同模块(https://substrate.de/docs/en/knowledgebase/art-contracts/contracts-pallet网站)在智能合约区块链上迭代。
查看EVM模块(https://substrate.de/docs/en/knowledgebase/art-contracts/em-pallet网站),看看这是否是你下一个项目所需要的。
学习智能合约语言墨水!https://substrate.de/docs/en/knowledgebase/art-contracts/ink-fundamentals案例
向基片运行时添加运行时模块https://substrate.de/docs/en/tutorials/add-a-pallet-to-your-runtime网站/
如何使用合同模块和墨水!为了发展:https://substrate.de/docs/en/knowledgebase/art-contracts/ink-deelopment网站参考资源
合同模块:https://crates.parity.io/pallet合同/index.html索引
EVM模块:https://crates.parity.io/pallet电动汽车/index.html索引
墨水!图书馆:https://github.com/paritytech/ink
原文:https://substrate.de/docs/en/knowledgebase/art-contracts/概述
翻译:波尔卡世界社区参考
[一]
EVM模块:https://substrate.de/docs/en/knowledgebase/art-contracts/em-pallet网站[二]
墨水!: https://substrate.de/docs/en/knowledgebase/art-contracts/ink-fundamentals[三]
合同模块:https://substrate.de/docs/en/knowledgebase/art contracts/oeriew#合同-模块
欢迎来到基板:
https://substrate.de网站/
跟踪基质进展:
https://github.com/paritytech/substrate网站
关注波卡的进展:
https://github.com/paritytech/polkadot
文章标题:什么是基板智能合约?
文章链接:https://www.btchangqing.cn/35289.html
更新时间:2020年06月09日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。