BNB 代币燃烧模式 dapp 系统开发合约详情
Dapps 和智能合约,开发 I34-案例 I633-演示 53I9
Dapp 的创造是以太坊最重要的特征之一。除了去中心化之外,还有 Dapp 必须具备的某些其他功能:
Dapp 的源代码应该对所有人开放。
应用程序,必须有某种代币来为自己提供支持。
应用程序必须能够生成自己的代币并具有内置的共识机制。
听起来很棒吧!那么,你究竟如何构建它们呢?你需要使用 solidity 对智能合约进行编码。
开发人员使用一种名为 Solidity 的编程语言,这种语言是一种有目的的简洁,松散类型的语言,其语法与 ECMAScript(Javascript)非常相似。
除了创建智能合约外,你还必须拥有可以执行它的环境。但是,此执行环境必须具有一些属性。这些属性是:
确定性。
可终止。
隔离的。
1.确定性
如果程序每次都给予给定输入有相同的输出,则程序是确定性的。例如。如果 3+1=4 则 3+1 总是 4(假设基数相同)。因此,当程序将相同的输出提供给不同计算机中的同一组输入时,该程序称为确定性。环境必须确保智能合约的执行始终是确定的。
2.可终止
在数学逻辑中,我们有一个称为 halting problem(终止问题)的错误。基本上,它表明无法知道给定程序是否可以在一定时限内执行其功能。1936 年,Alan Turing(阿兰·图灵)使用 Cantor 的对角线问题推断出,没有办法知道某个节目是否可以在一个时间限制内完成。
这显然是智能合约的问题,因为根据定义,合约必须能够在给定的时间限制内终止。因此环境必须能够停止智能合约的运作。
3.隔离
在区块链中,任何人和每个人都可以上传智能合约。然而,正因为如此,合约可能在知情和不知不觉中包含病毒和错误。
如果合约没有被隔离,这可能会妨碍整个系统。因此,将合约保持隔离在沙箱中以保护整个环境免受任何负面影响至关重要。
以太坊使用名为以太坊虚拟机(EVM)的虚拟机执行其智能合约。
人们必须了解的下一个核心以太坊概念是 gas。
评论