EOS智能合约开发:理解在EOS上编写dApp的基本概念

想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】
链客,有问必答!

通过观察流行的dApp跟踪网站,EOS应用程序开发人员可能会被EOS上不断增长的dApp和交易率所吸引,并考虑是否应该开始学习开发智能合约。然而,在开始研究之后,由于缺乏具有深度的高质量资源、令人困惑的文档和围绕智能合约开发的环境,它们很快就会丢失初衷。这使得开发人员别无选择,只能在研究上投入大量时间,这对于忙碌的开发人员来说甚至是不可能的。通过这些正在进行的系列文章,我们希望这篇文章的介绍会使这个过程更加顺畅,以便公司和应用程序开发人员能够利用EOS开发创新的分散应用程序。

在本文中,我们打算对开发生态系统、合约的基本结构、作为合约开发(EOS CDT)的一部分的各种类型和模块等基本概念进行高层次的概述,并为进一步研究提供各种资源指针。

如何使用这篇文章

本文应该被视为一个非正式的线程,它将各种重要的概念联系在一起,并涉及EOS开发的各个方面。由于在技术深度上讨论所有概念超出了这一篇文章的范围,我们鼓励读者进一步研究我们将在整篇文章中提供的指针。此外,通过按顺序阅读本系列的所有文章,可以更好地利用本系列文章。在本系列的后续文章中,我们将通过实际开发将所有讨论的概念付诸实践。

在阅读本文之前,我们建议阅读我们的第一篇文章,以了解EOS的体系结构与以太坊体系结构的对比。让我们开始吧!

快速架构概述:

EOSIO提供了一个具有操作系统等特点的分散平台,它使用区块链来维护这个平台上发生的分布式的、不可信的事件和交易分类账。决定谁创建新块(协商共识)是通过委托权益证明来实现的,这涉及到代币以获得对块生成器投票的权利,块生成器是向区块链添加新块的完整节点。由于怀疑有任何恶意活动,选民可以删除屏蔽生产商,并投票给新的生产商。在给定的时间内,只有21个块生成器创建新的块,因此交易处理速度变得非常快,因为基于工作证明的协商共识算法等验证的数量较少。

EOSIO支持创建智能合约,它的执行和资源消耗就像在OS上运行的典型应用程序一样。智能合约是用c++编写的,可以转换为web程序集。

计算量和速度被描述为带宽和CPU资源,持久信息的存储被描述为RAM。由于对CPU和带宽的需求是暂时的,因为它只需要执行一些智能合约操作,所以这些资源是通过标记一段时间(3天)获得的。这可以确保帐户获得与标记的代币成比例,并且如果其中一些资源是空闲的(就像internet连接的网络带宽),则可以获得更多的资源。

然而,RAM是一种持久资源,需要根据需要提前购买。RAM通常表示易失性内存,但在EOS中,它表示智能合约的持久内存。RAM的价格是不稳定的,由系统根据Bancors算法需求和供应来决定。由于RAM是一种相对罕见的资源,系统内正在采取措施防止对它的囤积和投机性交易。

必须注意的是,此持久信息没有存储在区块链上。区块链仅用于记录指向智能合约持久信息更改的交易和事件。现在我们已经对EOSIO架构有了一个大致的概念,接下来让我们来看看开发生态系统。

发展生态系统

任何智能合约开发需要一个本地测试节点,某种程度上与本地节点通信,账户管理钱包/钥匙,设置IDE /代码编辑器和编译器/转换器,将智能合约转换为可执行形式,一个健壮的测试框架,可以准备一个新的国家的本地节点测试,利用可用性的GUI工具来帮助与部署的合合约。让我们就EOS分别讨论它们。

Nodeos是EOSIO核心节点,可以使用插件配置它来运行节点。它将作为一个本地节点,可以用于开发和测试目的,但是可以将它配置为一个完整的节点,甚至用于块生产。

Cleos是与本地节点守护进程交互的命令行接口,也可以配置为与远程节点交互。它用于发出与钱包管理、节点配置和向智能合约发出交易相关的命令。

Keosd是在wallets.Eosio中安全地存储EOSIO密钥的组件。

Eosio.cdt是合约开发工具包,它公开各种库和编程构造,以帮助智能合约开发。这些结构提供编程接口来处理EOS的各种组件。Eosio.cdt还由eosio-cpp组成,eosio-cpp是负责将用c++编写的合约转换为wasm (web assembly)的模块。它还为合约生成ABI,这是一个JSON文件,指定合约支持的类型和操作。它用于将智能合约功能与客户端应用程序集成。

EOSFactory是由tokenika开发的基于python的测试框架,我们发现它对于dapp的开发和测试非常有用。它提供了一个简单的基于python的接口来与智能联系人进行交互,并支持轻松设置用于测试的新节点实例。它甚至支持在公共测试和主要网络上部署和管理合约。

Scatter是一个gui应用程序,它使连接EOS网络和安全管理资产变得容易,类似于以太坊中的Metamask。它可以作为所有主要平台的桌面应用程序使用。

由于合约是用c++编写的,所以任何流行的ide都可以用来编写智能合约。然而,EOSFactory为VS代码提供了一些支持,在Quillhash中,我们使用VS代码进行智能合约开发,尽管这更多是一个个人选择的问题。

未经允许拒绝转载,文章地址https://www.liankexing.com/note/note_page/id/6937.html

猜你喜欢

转载自blog.csdn.net/weixin_44172023/article/details/88786356
今日推荐