EOS架构分析
发布于 7 个月前 作者 stvenyin 5196 次浏览 来自 分享
  • 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
  • 关于我
  • 背景
  • 在校黄冈华师一附中(清华,华中科技大学科方向)在湖北,和武大一起被认为是清华和北大那样的学校。
  • 班级前稳1~2,全县前10.
  • 全国大学生一等奖
  • 奥林匹克竞赛一等奖
  • 10年华为linux内核嵌入式开发。
  • 11年开始接触区块链,11年底正式区块链开发工作。
  • 12年参与国外ACE开发,IOCP及分布式服务器实现,深圳研究院徐博士指导开发成果。
  • 16年中科院做过实际的以太坊底层架构改良,网络安全冻结分析
  • 主要c/c++,java,go,python,精通Linux/Unix操作系统,熟悉密码学,p2p内部原理,比特币内部原理,且商业运行。发布论文,务实。
  • 对各种算法,人工智能深度学习算法,神经网络系统剖有研究,网络爬虫搜索引擎。
  • 主要交易系统MT4后端核心插件,系统开发,反汇编,汇编。
  • 深圳区块链源中瑞交易所钱包负责人,负责交易所主架构,人员分配,技术指导。
  • 纳克链技术负责人纳克链。
  • 以太狗技术顾问,对ERC-721协议有深入了解。
  • stvenyin微信/QQ:893692456。推动以太坊,EOS架构研究区块链应用落地。
  • 感恩大家!
2 回复

这都是从哪里摘抄的。。。

steemit的文章确实不错,谢谢分享。安利个EOS智能合约与DApp开发入门: http://xc.hubwiz.com/course/5b52c0a2c02e6b6a59171ded

回到顶部