EOS.IO应用开发技术栈简介(Introducing EOS.IO Application Stack)

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@eriiic·
0.000 HBD
EOS.IO应用开发技术栈简介(Introducing EOS.IO Application Stack)
repost from:[https://steemit.com/eos/@eosio/introducing-eos-io-application-stack](https://steemit.com/eos/@eosio/introducing-eos-io-application-stack)

经过若干年在bitshare和steem上的实践经验得出,要开发一个分布式应用需要的远远不止一个高速的区块链服务。其中一个必备的基础就是如何支持百万级的用户并发。例如,steemit的早期用户就不得不自己另外寻找一个图片服务器,这让分布式应用不太易于使用,并且服务器质量会因为第三方依赖降低。

![](https://steemitimages.com/DQmVY72182LtgtToY378ow3MQYEZQ4s1jLheccKtU8nVEDh/image.png)

在EOS.IO中,block.one提供了一个具有完善的基础服务的平台。开发者可以在EOS.IO上构建分布式应用,而完全无需依赖其他外部服务器。EOS.IO可支持非常复杂的应用,例如:steemit、dtube、分布式交易所等。

# EOS.IO存储系统

EOS.IO存储系统是一个构件在IPFS上的分布式文件服务。持有EOS token的用户可以随意上传合规文件。与其他区块链系统不同,EOS.IO存储系统并不会对网络带宽和存储收费。EOS.IO存储服务由出块节点提供,出块节点组成一个冗余存储的分布式网络,文件将永久存储到EOS.IO网络当中,并提供给所有浏览器用户使用。

全网的出块节点都可以表明自己存储标价。而标价最低的,将得到更多的token持有者投票,从而获得出块权。注意:这里的标价并不需要支付,只是使用这些空间需相应持有的token数量。

关于EOS.IO存储服务更多的介绍将在后续发布。

# EOS.IO查询服务

除了提供文件存储服务以外,出块节点还为应用提供blockchain数据查询接口。这些API接口将以GraphQL和webAssembly为基础实现。查询API为开发者提供了一个统一的底层基础构件,这样,应用开发者可以不再需要部署和维护自己的服务器集群。

block.one还将设计和发布一个开源微服务系统。出块节点可以部署一套微服务系统,将blockchain数据map到传统数据库中,以提供只读数据的伸缩性、可用性和索引查询加速。基于这个微服务系统,出块节点维护者与应用开发者将更好地开发基于传统数据库的web应用程序。

# 如何限制资源的使用

链上应用从发布至blockchain,到提供api服务,都需要消耗网络带宽、计算资源、存储空间。出块节点维护者需要对访问进行限制来避免接口被滥用。方法是,当blockchain更新时,计算文件下载和接口查询对资源的占用情况。拥有特定数量原始token的用户将免费获得一定等级的应用访问权限。

资源限制的使用场景中,可以向资源提供者收费,或向资源获取者收费,以达到限制目的。类似地,网站可以用一定EOS得到提供应用服务必须的资源。然后,用户根据自己的需要,选择一种价格的资源授权来使用该网站的服务。这个场景非常适用于一些严重依赖带宽的服务,类似于dtube.com。

# 如何定制应用的基础服务

block.one已经意识到,出块节点提供的通用类型的基础服务是有限制的。特别是当应用需要提供服务端渲染(例如steemit),或者用户需要定制一个多索引的微服务数据库时(类似market history)。这时候就需要合约应用开发者自己另外搭建一个服务器来支撑这样的需求。应用开发者可参照出块节点提供的可扩展架构,定制一个节点,提供特定类型的API服务。通过这种方式,应用开发者可以在开发可伸缩的应用上节约大量时间,迅速将产品推向市场。

区块链文章的第一次翻译尝试,如果发现文章里面有任何错误的地方,欢迎斧正。谢谢!
👍 , , ,