LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > Polkadot中的智能合约

Polkadot中的智能合约

2020-05-08 PolkaWorld 来源:火星财经

本文来自 Polkadot Wiki,更新时间为 2020 年 5 月 4 日。

Polkadot 中继链并不原生支持智能合约。不过 Polkadot 上的平行链将支持智能合约。现在有像Edgeware[1] 这样已公布的项目,并且由于Substrate 有内置的合约模块[2],将来应该会有更多的平行链支持这一功能。

资源

对于那些想开始编写智能合约,并部署在基于 Substrate 的平行链上的开发者,我们列出了目前可以使用的资源。ink![3]- Parity 出的用于编写智能合约的 ink!Substrate 合约工作坊[4] - 指导你完成使用 ink!编写和部署 ERC20 token 的基础

实例

下面收集的是社区中使用 ink!做的智能合约的一些案例。你正在做一个智能合约案例吗?请我们联系将其添加到本页!

Ownable[5] — OpenZeppelin Ownable 合约的端口。

开发智能合约和平行链有什么区别?抽象层

当编写智能合约时,你创建的是将部署并关联到特定链地址的指令。

相比之下,runtime 模块是链的状态转换(即所谓的状态转换函数)的整个逻辑。

智能合约必须有意识地实现可升级性,而平行链将能够完全通过根命令或通过治理模块替换代码。

当你构建智能合约时,它最终将被部署到具有自己环境的目标链中。平行链允许开发人员声明自己链的环境,甚至允许其他人为其编写智能合约。Gas 费

智能合约必须找到限制自身执行的方法,否则整个节点都容易受到 DOS 攻击。例如,智能合约中的无限循环可能消耗整个链的计算资源,从而阻止其他人使用它。停机问题[6]表明,使用足够强大的语言,不可能提前知道程序是否会停止执行。一些平台,比如比特币,通过使用一种非常受限的脚本语言来绕过这个限制。其他一些公司,比如以太坊,则收取智能合约 “gas” 费来作为执行代码的条件。如果智能合约确实进入了一个执行永远不会停止的状态,它最终会耗尽能量,停止执行,并且智能合约本应进行的任何状态转换都会回滚。

平行链可以实现任意强大的编程语言,并且也不包含 gas 的概念。这意味着某些功能对于开发人员来说更容易实现,但也意味着某些构造永远不该被实现,例如没有终止条件的循环。将某些逻辑(例如可能无限期运行的复杂循环)留给非智能合约层,甚至试着完全消除它,通常是明智的选择。

资源

我何时应该创建 Substrate runtime,何时应该创建 Substrate 智能合约[7] —— 从技术的角度回答了开发者什么时候可以选择开发 runtime,什么时候可以选择智能合约的问题。参考链接[1]

Edgeware: https://edgewa.re/[2]

合约模块: https://crates.parity.io/pallet_contracts/index.html[3]

ink!: https://github.com/paritytech/ink[4]

Substrate 合约工作坊: https://substrate.dev/substrate-contracts-workshop/#/[5]

Ownable: https://github.com/JesseAbram/foRust/[6]

停机问题: https://en.wikipedia.org/wiki/Halting_problem[7]

我何时应该创建 Substrate runtime,何时应该创建 Substrate 智能合约: https://stackoverflow.com/a/56041305

欢迎学习 Substrate:

https://substrate.dev/

关注 Substrate 进展:

https://github.com/paritytech/substrate

关注 Polkadot 进展:

https://github.com/paritytech/polkadot

申请 Bootcamp:

https://bootcamp.web3.foundation/

本文来源:PolkaWorld
原文标题:Polkadot中的智能合约

—-

编译者/作者:PolkaWorld

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...