EOS.IO软件引入了新的区块链架构,旨在实现分散式应用程序的垂直和水平缩放。这是通过创建一个可以构建应用程序的类似操作系统的构造来实现的。该软件提供帐户,身份验证,数据库,异步通信以及跨多个CPU内核或群集的应用程序调度。由此产生的技术是一种区块链架构,最终可以扩展到每秒数百万次交易,消除用户费用,并允许在受控区块链的情况下快速轻松地部署和维护分散应用程
EOSIO带有一些程序。您将使用的主要内容以及此处涵盖的主要内容是:
nodeos
- 可以使用插件配置运行节点的核心EOSIO守护进程。示例用途是块生产,专用API端点和本地开发。cleos
- 命令行界面与区块链交互并管理钱包keosd
- 管理EOSIO钱包的组件下图说明了这些组件之间的基本关系。在接下来的部分中,您将构建EOSIO组件,并将它们部署在单个主机,单节点测试网络(testnet)配置中。
EOSIO架构
节点
核心EOSIO守护进程,可以使用插件配置以运行节点。节点可以通过多种方式进行配置
Cleos
cleos
是一个与暴露的REST API接口的命令行工具nodeos
。为了使用,cleos
您需要将终点(IP地址和端口号)添加到nodeos
实例,并配置cleos
为加载'eosio :: chain_api_plugin'。cleos
包含所有命令的文档。
Keosd
keosd
是一个轻客户钱包,负责管理钱包以在向网络广播之前保护密钥和签署交易。
Eoscpp
eoscpp
是一个C ++到WASM和ABI编译器。它生成.wasm
并.abi
上传到区块链的文件。
描述
EOS.IO网络由一个分散式共识算法(DPoS),一个网络资源管理系统,一个治理流程以及一套激励网络使用者组成。
委托权益证明
授权证明(DPOS)授权令牌持有人通过持续的批准投票系统选择区块生产者。任何人都可以选择参与块生产,并有机会生产积木,只要他们可以说服代币持有人投票给他们。
EOS.IO区块链上的令牌持有者可能没有立即需要消费令牌提供的全部或部分可用带宽,但可以将这些未消耗的带宽委托给其他人或租用给其他人。
建议
除了选举区块生产者外,代币持有人还可以选择一些旨在让社区受益的工人建议。获胜的提案将获得高达令牌通货膨胀配置百分比的令牌减去已经支付给阻止生产者的令牌。
激励
EOS.IO区块链每次创建块时都会向块生产者授予新的令牌。可以设定生产者奖励的上限,使得令牌供应总年增长率不超过5%。
罢工
资源
在EOS.IO区块链中,应用程序使用了三大类资源:
消费
EOS.IO软件允许每个账户消耗一定比例的可用容量,与3天放样合同中的令牌数量成比例。例如,如果EOS.IO区块链上的账户持有根据该区块链可分配的总令牌的1%,则该账户可能利用1%的状态存储容量。
虽然可以委托带宽和计算,但应用程序状态的存储将需要应用程序开发人员持有令牌或放置它们,直到该状态被删除。如果状态永远不会被删除,那么令牌就会被有效地从循环中移除。
治理
EOS.IO区块链管理流程认识到权力源于令牌持有者,然后将权力委托给区块生产者。治理过程有效地引导块生产者的现有影响符合令牌持有者的利益。
能力
块生产者被给予有限的检查权限来冻结帐户,更新有缺陷的应用程序,并且提出对底层协议的硬分叉改变。在对区块链进行任何更改之前,区块生产商必须批准该区块链。如果块生产者拒绝令牌持有者所希望的改变,那么他们可以被投票出去。
宪法
EOS.IO区块链将在签署该协议的用户之间建立点对点服务条款协议或具有约束力的合同,称为“组织”。这部宪法的内容规定了用户之间的义务,不能由法典完全执行,并通过确立管辖权和法律选择以及其他相互接受的规则来促进解决争端。在网络上广播的每一笔交易都必须包含宪章的散列作为签名的一部分,从而明确约定签署人与合同。
仲裁
EOS.IO区块链宪法将声明所有用户同意通过仲裁解决争议。
支持数百万用户
与eBay,Uber,AirBnB和Facebook等企业竞争要求区块链技术能够处理数千万活跃的每日用户。在某些情况下,除非达到临界用户数量,否则应用程序可能无法工作,因此可以处理大量用户的平台非常重要。
通过横向扩展,EOSIO将使网络能够在高性能应用中支持数百万用户。
免费使用
传统上,支付办公空间,计算能力和运营业务所需的其他成本是企业的责任。客户从业务中购买特定产品,这些产品销售收入用于支付业务成本。同样,没有网站强制其访问者在访问其网站时支付微支付费用以支付托管费用。
应用程序开发者需要灵活地为用户提供免费服务; 用户不必为了使用该平台或从其服务中受益而付费。可供用户免费使用的区块链平台可能会获得更广泛的采用。开发者和企业可以创建有效的货币化策略。
使用EOSIO软件的推出区块链不要求其用户直接支付区块链使用,因此不会限制或阻止企业确定其产品的货币化战略。
虽然接收方可以支付,但EOSIO可以让发送方支付带宽,计算和存储费用。这使得应用程序开发人员能够选择最适合其应用程序的方法。在很多情况下,发件人支付大大降低了不想实施自己的配给系统的应用程序开发人员的复杂性。应用程序开发人员可以将带宽和计算委托给用户,然后让“发件人支付”模型执行使用。从最终用户的角度来看,它是免费的,但从区块链的角度来看,它是发件人支付的。
轻松升级和错误恢复
构建区块链应用程序的企业需要灵活性来增强其新功能的应用程序。该平台必须支持软件和智能合约升级。
所有非平凡的软件都会遇到错误,即使是最严格的形式验证。该平台必须足够健壮,以便在不可避免发生错误时修复错误。
当所有其他方式失败并且“不可阻挡的应用程序”以不可预知的方式发挥作用时,使用EOSIO软件的区块链允许区块生产者替换账户的代码,而不会硬拼整个区块链。类似于冻结账户的过程,这个代码的替换需要15/21选出的区块生产者投票。
低延迟
良好的用户体验要求延迟不超过几秒钟的可靠反馈。较长的延迟会阻碍用户,并使基于区块链的应用程序与现有的非区块链替代品竞争力下降。该平台应该支持低延迟的事务。
在亚秒级模块生产中,EOSIO最大限度地减少了事务的延迟,并大大提高了用户在其上构建的应用程序的体验。
顺序性能
由于顺序依赖的步骤,有些应用程序不能用并行算法实现。交易所等应用程序需要足够的顺序性能来处理大量数据。
EOSIO旨在支持符合高性能应用要求的快速顺序性能。
人类可读的帐户名称
EOSIO软件允许所有账户被长达12个字符的唯一人类可读名称引用。该名称由帐户的创建者选择。
宪法
EOSIO软件可以使区块链建立点对点的服务条款协议或签署该协议的用户之间的绑定合同,称为“组织”。这部宪法的内容规定了用户之间的义务,不能由法典完全执行,并通过确立管辖权和法律选择以及其他相互接受的规则来促进解决争端。在网络上广播的每一笔交易都必须包含宪章的散列作为签名的一部分,从而明确约定签署人与合同。
宪法还定义了源代码协议的人类可读的意图。这个意图用于识别发生错误时的错误和功能之间的差异,并指导社区修正哪些错误或错误。
区块链间通信
EOS.IO软件旨在促进区块间链接通信。这是通过使生成动作存在证明和动作序列证明变得容易实现的。这些证明与围绕Action传递设计的应用程序体系结构相结合,可以使应用程序开发人员隐藏区块链间通信和验证验证的细节,从而可以向开发人员呈现高级抽象。