trezor 硬件钱包支持山寨币|区块链智能合约可分别哪几个种类
以太坊智能合约
截至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++的限制。
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。

区块链大咖说



