以太坊智能合约 截至2018年1月,以太坊已经开发了200多个应用(简称DApp,简单地说,就是区块链上的一个智能合约)。任何人都能够在以太坊上创建智能合约和去中心化应用,并在其中设立他们所定义的所有规则、交易方式和状态转移函数。 以太坊智能合约的调用流程如下。 1)编写智能合约。以太坊智能合约语言Solidity是一种语法类似于JavaScript的高级语言,它被设计成以编译的方式生成以太坊虚拟机代码。 2)编译智能合约的原始码,成为在Ethereum Virtual Machine(EVM)上可执行的代码,EVM不是真正的虚拟机,只是一个代码解释器。以太坊虚拟机是一个完全独立的沙盒,合约代码可对外完全隔离,并在EVM内部运行。EVM分散存储在每个节点的计算机上,与主网的其余部分隔离,运行时不影响主区块链的操作。 3)部署智能合约。就是通过交易(Transaction)的方式把可执行的代码存储在链上,并生成合约。 4)调用合约。调用合约时,需要选择合适的函数和参数,合约的调用会涉及对智能合约数据状态的改变。 超级账本智能合约 Hyperledger Fabric中的链码(chaincode)通常处理由网络成员同意的业务逻辑,因此,它相当于“智能合约”。通过调用链码可以更新或查询提案交易中的分类账。考虑到一定的许可,一个链码能够被另一个链码调用。如果调用与被调用的链码属于不同的通道,则只允许读取查询。换而言之,不同渠道上被调用的链码只是一个查询,它在随后的提交阶段并不会参与状态的检查验证。 链码的开发一般使用GO、Java、node.js实现,每一个链码必须要实现链码接口,用于回应收到的交易。在链码shim包中有一个链码接口StubInterface,可以与区块链账本、交易上下文、调用方证书等进行交互。每个链码必须实现的方法为:Init、Invoke。其中,Init方法用来执行任何必要的初始化,包括应用程序的初始化。Invoke方法是用来响应各种Invoke事务的。 EOS智能合约 EOS智能合约通过messages及共享内存数据库(比如,只要一个合约被包含在具有异步事务的读取范围内,它就可以读取其他合约数据库的状态)相互通信。异步通信导致的spam问题将由资源限制算法来解决。 对于如何开发EOS智能合约这个问题,我们认为,需要完成该合约对应的程序,并将其上传到EOS平台上。计算机语言方面,目前智能合约只能用C++开发,并将其编译成WebAssembly兼容的可执行程序,因为Go语言将支持WebAssembly,所以未来也可以使用Go语言来编写智能合约。除此之外,也有开发者正在将EOS接入JavaScript虚拟机和Python虚拟机,所以在不久的将来,开发智能合约将不再受C++的限制。 —- 编译者/作者:区块链大咖说 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
火龙果财经:区块链智能合约可分别哪几个种类
2020-09-24 区块链大咖说 来源:区块链网络
LOADING...
相关阅读:
- 比特赢家:9.24以太坊行情分析 短线看反弹 低多为主2020-09-24
- 以太坊2.0即将到来 新手开始挖币囤币才是首要目标2020-09-24
- 9/24 以太坊行情分析及操作策略 多头趋势已明朗 你还观望吗2020-09-24
- IPFS/Filecoin第一年释放多少FIL币?币价能否突破千元2020-09-24
- 比特币以太坊最近的行情,怎么选择?选择什么?2020-09-24