建议和反馈

请填写你的反馈内容

EOS架构分析

2018-07-24 ·4118次阅读 ·读完需要11分钟
  • EOS系统架构和传统互联网应用架构对比和解析

  • 部分带有超链接,国内的就不多说了

  • 做事情都要认真,负责。


  • EOS最近在Steemit上发布了系统的整体架构,虽然讲得不是清晰,但大致轮廓可以猜出来,本文将做一个深入的分析:


  • 原文:https://steemit.com/eos/@eosio/introducing-eos-io-application-stack


  • 架构图

  • 2017-09-21-eos-arch-en.png


  • 2015年3月ReactNative 发布,结果一天之内,就在github上获得了 5000 颗星。React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源。


  • 59b8fa9264539.png

  • 59b8fa983ff3d.png


  • eos-arch-en


  • 通过对比传统web服务模块,可以比较容易理解各个模块的用途


  • EOS:eosd

  • Web:数据库

  • 提供数据存储,只是eosd是基于状态的区块链数据存储方式,以及通过transaction执行智能合约进行状态的修改。


  • EOS:Query Services + GraphQL

  • Web:REST & Graph QL & 微服务

  • EOS应该会把比如用户账号管理、转账等封装成微服务;GraphQL在React框架里使用已经比较简便。

  • 名词解释:GraphQL 是一个由Facebook提出的 应用层查询语言. 使用 GraphQL, 你可以基于图模式定义你的后端. 然后客户端就可以请求所需要的数据集。


  • EOS:Client(React.js)

  • Web:前端

  • 因为EOS架构中将GraphQL默认集成,那么前端使用React.js将是最优的框架选择,所以有意给EOS开发应用的开发者可以关注React多一些了


  • EOS:IPFS File Storage

  • Web:文件存储

  • 从架构图上看包含了文件的存储,和服务器端程序的存储;并没有明确是用filecoin的链,还是基于IPFS协议有block producer提供存储;文中说是免费的,所以应该是基于IPFS自建;说是免费的,但同时和代币持有量有关,这点文中还没有讲清楚。


  • 思考:


  • 类比目前互联网应用的架构模型比较方便开发者上手,同时也提供与目前互联网应用类似的体验

  • 支付模型目前看不清,但与以太坊按计算量付费的模型相比EOS目前描述的模型非常复杂和动态,因为EOS不止需要限制计算,还要限制带宽、存储等

  • 最后文中也提到应用开发者可以通过类似的架构来提供链外数据接口,从而实现应用的高可扩展性。


  • react-router:: react.js唯一可选的路由库。它通过管理 URL,实现组件的切换和状态的变化 ,开发复杂的应用几乎肯定会用到。 教程

  • redux:: React 只是 DOM 的一个抽象层,并不是 Web 应用的完整解决方案。有两个方面,它没涉及:


    • 代码结构

  • - 组件之间的通信

  • 为了解决这个问题,2014年 Facebook 提出了 Flux 架构的概念,引发了很多的实现。2015年,Redux 出现,将 Flux 与函数式编程结合一起,很短时间内就成为了最热门的前端架构。适用场景:多交互、多数据源:

  • 用户的使用方式复杂

  • - 不同身份的用户有不同的使用方式(比如普通用户和管理员)
  • - 多个用户之间可以协作
  • - 与服务器大量交互,或者使用了WebSocket
  • - View要从多个来源获取数据

    1. 为了解决这个问题,2014年 Facebook 提出了 Flux架构的概念,引发了很多的实现。2015年, Redux出现,将 Flux 与函数式编程结合一起,很短时间内就成为了最热门的前端架构。适用场景:多交互、多数据源:



    • 用户的使用方式复杂

  • - 不同身份的用户有不同的使用方式(比如普通用户和管理员)
  • - 多个用户之间可以协作
  • - 与服务器大量交互,或者使用了WebSocket
  • - View要从多个来源获取数据
  •  [react-apollo](https://github.com/apollographql/react-apollo)用于连接GraphQL 和 reactJS的一个库。总结:React不是一个库,也不是一个框架,而是一个庞大的体系。React 不使用 HTML,而使用 JSX 。它打算抛弃 DOM。

  • 存储系统

  • 59b8faa493b40.png

  • EOS.IO存储是一种分散的文件系统,旨在为世界各地的互联网用户提供永久存储和托管任何浏览器可访问的法律文件的能力。 与现行方案不同,EOS.IO存储没有存储或带宽费用。 基于IPFS,EOS.IO存储是由块生产者为持有EOS代币的人提供的服务。块生产者将在IPFS网络上复制并托管代币持有者的文件(笔者注: 类似 Sia.tech,并提供允许任何具有浏览器的人访问文件的https端点。


  • 笔者思考:EOS的文件会放到IPFS上,如果你删除你的文件,你将赎回你的币,EOS存储空间和代币使用如同当铺和现金。


  • 在同一价格,提供更多储存空间的块链生产者会从令牌持有者那里获得更多的投票,最终所有块链生产者会达成关于单位存储空间和所需代币价格之间的平衡。


  • 数据库查询


  • 59b8faaf85c8e.png


  • 除了托管文件外,块生产者能够通过运行API节点帮助代币持有者查询块链数据库状态的。 这些API包括 面向图数据库的工具Graph QL的和基于Web组件。 这使得应用程序无需运行和维护自己的可扩展托管服务就可以获得所需的信息。

  • block.one将设计和发布开源微服务,块生产者可以部署以将块链接数据库状态映射到更传统的数据库中,目的是扩展读访问,可维护性和附加索引。 该软件将促进应用程序开发人员和块生产者构建与传统数据库API进行交互的Web应用程序。

  • 笔者评论: 这次EOS使用的数据查询工具 笔者评论: 这次EOS使用的数据查询工具GraphQL和客户端工具 React.js都是Facebook


  • 资源限制


  • 59b8fab79575a.png


  • 应用程序在块链和接口上都占用传输带宽,CPU和存储空间。 块链生产者必须设置访问限制规则,以防用户滥用。 这对于文件下载和API查询是相同的方式来测量块链更新的带宽和CPU时间。 在合同中持有少量原生代币的用户应能够对大多数应用程序具有合理的免费访问级别。


  • 该模型将很好做到带宽平衡,CPU和存储空间给上传或下载的需求。网站付费提 Dtube 这样的带宽密集型应用程序至关重要。


  • 自定义的基础架构


  • block.one认识到使用块生成者提供的通用版本基础架构可以构建的应用程序是有限的。 具体来说,用户需要服务器端提供完全的支持(例如,steemit)或需要由定制微服务维护的自定义数据库索引(例如,市场历史)的应用程序可能需要由应用程序开发人员或其他方托管的定制服务器基础架构。 这些应用程序的开发人员可以从块生产者使用可扩展架构中获益,从而部署自己的定制API和查询服务。 这将有助于开发人员迅速将可扩展应用程序基础架构带入市场.


  • 技术爱好者的知识星球会分享最及时的EOS 团队进展以及技术发展


  • 本星球会分享:

  • - EOS code 基础知识:
  •  - C++: boost, CMake,Clang,
  •  - Linux:OpenSSL,LLVM 4.0,
  •  - 安全加密: secp256k1-zkp, PGP
  •  - 前端: WASM,Javascript
  • - 筛选并发布Telegram “EOS Developer”优质信息
  • -  EOS 单机节点运行
  • -  EOS 虚拟多节点运行 (pseudo-distributed)
  • -  EOS 多节点运行
  • -  EOS智能合约编写与发布
  • - 优秀项目架构和设计原理:
  •  - graphene(石墨烯),Steemit,BitShares
  •  - PressOne,BigOne
  •  - OracleChain
  •  - Motion.one
  •  - HMS(Health Mutual Society)

  • 关于我 喜欢交友,性格随和,廋身,有情怀。

  • github:https://github.com/stvenyin


评论(0)问答(0)
请先登录或注册

请先登陆或注册

相关推荐

中秋月,追币情to da moon

明月几时有?把酒问青天。不知天上宫阙,今夕是何年?我欲乘风归去,又恐琼楼玉宇,高处不胜寒。起舞弄清影,何似在人间?转朱阁,低绮户,照无眠。不应有恨,何事长向别时圆?人有悲欢离合,月有阴晴圆缺,此事古难......
追币视点 · 2019-09-18
85阅读 · 0赞赏 · 0问答

EOS RAM漏洞:漏洞和恢复提示的说明

轻松赚钱的承诺可以让人们做出疯狂的事情。区块链社区的成员不能幸免于这个问题。正如EOS RAM漏洞所显示的那样,攻击者知道人性的这种弱点,并确切地知道如何利用它来造福他们。在本文中,Apriorit区......
千羽凡尘 · 2019-09-16
297阅读 · 0赞赏 · 0问答

智能合约EOS实战开发

一、使用已有合约(1)启动Node$ nodeos -e -p eosio --plugin eosio::chain\_api\_plugin    --plugin eosio......
HBO · 2019-09-16
253阅读 · 0赞赏 · 0问答

EOS智能合约开发之EOS资源管理

我们通过eosio超级账户,部署了eosio.bios合约,部署了eosio.system合约,我们创建eosio.token账户,用来管理eosio.token合约。我们实现创建代币,分发代币,转移......
区块技术花 · 2019-09-16
242阅读 · 0赞赏 · 0问答

eos:智能合约的实战技术开发(docker)

1. 安装eosio.cdt    wget https://github.com/eosio/eosio.cdt/releases/download/v1.4.1/eosio.c......
Blockchain · 2019-09-16
245阅读 · 0赞赏 · 0问答

EOS智能合约的多索引表table

在本教程中,我们将在你的智能合约中按步骤创建和使用多索引表。建多索引表是一种为了在RAM快速访问的方法,主要用来来缓存状态和数据。多索引表支持创建、读取、更新和删除(CRUD) 业务,区块链不行(它只......
江南烟雨 · 2019-09-15
366阅读 · 0赞赏 · 0问答

444

LK币

3

粉丝

1

笔记

感谢"啊哈小虫子"

这篇精彩的笔记,目前已经帮助

  • 0
  • 4
  • 1
  • 1
  • 8
喜欢0
链客社群 加入

微博进入

商务合作>

广告投放>

公司名称:北京链客行科技有限公司

联系方式:010-67707199

ICP备案号:京ICP备18032136号

Copyright:链客区块链技术问答社区 版权所有

感谢您的提问,问题被社区永久收入以便新人查看。一定要记得采纳最佳答案哦!加油!

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励

您将赞赏给对方2LK币的奖励哦!感谢您的赞赏!

您将赞赏给对方2LK币的奖励哦!感谢您的赞赏!