首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NNS系统架构优化设计

↑关注获取专业的区块链开发学习计划

Dapp即基于区块链智能合约的分布式应用,目前正以迅猛之势蓬勃发展。但是很多人都在思考,怎么样的系统架构才能最为契合智能合约,构建出最好的Dapp。

首先,大部分人第一印象都会惯性的把区块链当成一个数据库来使用,认为这不就是一个分布式数据库嘛,只要放入数据,然后任意索取即可。这种想法会遇到一个显著的矛盾,区块链的数据形态是一个数据块的串行链接,而数据库的传统使用会发生大量并行请求。结果是什么?那就是请求大规模延时,甚至卡死。

此外,还有另一个显著区别,区块链的本质是牺牲效率换取安全,故而几乎所有公链都有数分钟到数秒不等的出块间隔,这与传统数据库的几毫秒甚至更低的延时相去甚远。这一特性也决定了Dapp系统应该有一个与传统不同的构架。

基于以上,我们设计了并推荐一种Dapp系统架构原则(以NEO环境为例):

实现分为三层,链数据层、数据库缓存层、前端缓存层,数据从左至右流式处理。

通过数据缓存层1:1复制链数据层原数据,并按一定方式展开、加工为前端展现需要的形式。每个块的生成,只会触发不重复的一次(一批)数据读取。

前端缓存层以块间隔与数据缓存层同步,大幅减少对于链数据层的并行请求、减少前端运算量(直接处理链数据是复杂的)与开发复杂度。

为了验证这一架构的合理性,我们对NNS竞拍合约的一个范例性前端工具进行了针对痛点的重构。

经过数周测试,NNS目前版本存在以下问题:

1. 完全意义相同数据在同一时间不同位置呈现不一致

2. 后台API、数据库压力大,频繁卡顿

重构方法

1. 设计全量数据类,将竞拍合约抽象为一个数据类

2. 改造数据入库逻辑,以合约通知为触发器逐渐填充完整数据类

3. 改造前台数据展现逻辑,只一个块间隔同步一次,数据呈现只取前端缓存,前端维护竞拍会列表。

最终目标是:数据呈现完全一致、最少的后台压力、最佳的前端体验、最友好的能力输出。

目前我们正在努力验证中,预计将在2-3周内完成,之后进行进一步测试。系统架构优化可能会推迟NNS主网上线时间,但为了方便后续更方便对接其他钱包,我们认为花费更多时间是值得的。完成之后,NNS也将迎来正式上线。

目前测试网已开启.neo 域名竞拍公测!欢迎大家体验域名竞拍流程。

测试地址:

https://testwallet.nel.group/#login

测试教程:

NNS域名竞拍测试参考教程

NNS社区始终保持技术驱动,开放共享的态度,欢迎大家加入NNS社区,一起创造价值,分享价值。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180816G1CR6Q00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券