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

EOS 是由 Block.one 公司开发的一个新的区块链软件系统,它的目标是将一切去中心化(decentralize everything)。从 2017 年年中开始,经过一年的代币众筹后,它于 2018 年 6 月 15 通过由数十个区块生产者(block producer,BP,又称超级节点)组成的社区上线了主网,EOS 主网这条主要的区块链开始正式运转。 通过 EOS Tracker 可以查看 EOS 区块链网络(EOS 主网)的情况。 要注意,虽然有一个 EOS 主网,但际情况要复杂得多,任何人都可以用 EOS 提供的 EOSIO 开源软件建立自己的一条链,且 EOS 鼓励开发者这么做。接下来,我们分几个主题介绍 EOS 这个基础公链和它的应用开发EOS 这个基础公链可说是为应用而生的。EOS VS 以太坊了解 EOS 的方式之一是拿它与以太坊、比特币进行比较。 从开发目标上来讲,比特币、以太坊、EOS 是渐进的,分别是区块链 1.0、区块链 2.0、区块链 3.0,重心分别是货币、合约、应用。以太坊在际应用中是以通证为主的。以太坊、EOS 均是借鉴与延续之前的思路重新开发,以太坊是比特币的改进,EOS 是以太坊的改进。 这里先用比喻的方式来对比比特币、以太坊、EOS,见下图。 比特币的设计思路类似于黄金。在数字世界中,按工作量证明共识机制,挖矿节点进行加密计算,获得比特币形式的挖矿奖励。挖矿节点也可以获得交易费收益,不过,虽然在比特币网络中的资产价值高,但交易并不频繁,交易费收益目前在矿工收益中的占比并不高。 以太坊的设计思路类似于高速公路。在这条收费高速公路上,车辆行驶需要付费。它早期募集资金,建设“高速公路”,早期投资者享有“高速公路”的主要权益。之后,一起建设与维护“高速公路”的挖矿节点也可以获得挖矿奖励与交易费收益。在以太坊网络中,由于各类项目已经基于它生成了大量的通证,以太坊网络的交易量相对较多,挖矿节点获得的交易费收益占比高于比特币。 EOS 的设计思路则类似于房地产开发。Block.one 公司在将土地售卖出去之后,逻辑上它用获得的资金进行基础的开发,此后每年再以类似填海造田的方式增加 5% 的土地出来。 EOS 的繁荣主要取决于,已经竞购得到大量土地的开发商是不是开发和经营好自己的地块?EOS 网络要依靠超级节点(即区块生产者)来各自建设、共同运营,按现在的设计,这些节点共同获得每年 1% 新增发的 EOS 作为回报。 与以太坊不同,EOS 网络的设计是不再收取网络交易费,持有 EOS 通证则拥有对应的网络使用权利。但是,如果一个应用的开发者不持有足够的 EOS 通证,可能就要从市场中购买和付费租用,以获得使用主网的权利。类比来看,这种设计类似于购买或租用办公楼。 当然,以上用比喻的方式讨论只是为了便于理解EOS 际的情况是:Block.one 公司募集资金开发一个名为 EOSIO 的开源软件。EOS 社区用这个软件来运行 EOS 主网,且从逻辑上来讲,这个主网并非由 Block.one 公司运行,而是由社区运行的。另外,其他人也用 EOSIO 这个开源软件建立替代网(altnet)。 替代网(altnet)是一个模仿替代币(altcoin)而创造出来的新词。在社区运行的 EOS 主网(mainnet)之外,EOS 鼓励其他人用 EOSIO 开源软件架设新的区块链网络,这些区块链网络是类似于替代币的替代网。比特币的替代币是与比特币的价值无关的,类似地,替代网也与 EOS 主网无关。EOS 是对以太坊的改进,各个用 EOSIO 开源软件运行起来的区块链网络,可以做几乎所有以太坊能做的事,如编写智能合约、发行通证。为什么 EOS 有超级节点竞选EOS 所采用的共识机制是 DPOS(委托权益证明),即一些节点在获得足够多的投票支持后,成为见证人(witness)节点或 EOS 中所说的区块生产者(BP,也称超级节点),负责区块链的区块生成。 对于比特币系统,任何人都可以接入网络,以算力竞争记账权利,生成区块。而对于 EOS,只有超级节点才有资格生产区块。这是因为两者所采用的共识机制不同:比特币和以太坊采用的是工作量证明共识机制,而 EOS 采用的是 DPOS(委托权益证明)共识机制。 围绕 POW 与 DPOS 的比较,讨论主要集中在能源消耗、效率、安全等方面。但我们也可以从去中心网络形成的角度来看,为什么 DPOS 是一种可行的选择。 基于区块链的思路开发的软件系统有以下三个关键要求:一是性能。它的去中心网络的整体性能能否支撑大量应用?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值