热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

BuidlerDAO:解析LensProtocol的数据孤岛与技术细节

到现在为止Web3的社交产品依然没有出现杀手级应用,问题何在?撰文:jaso
到现在为止 Web3 的社交产品依然没有出现杀手级应用,问题何在?

撰文:jason chen

浅研了一下 LensProtocol,由 Aave 团队打造的 web3 社交协议,它本身不是一个前端的社交产品,而是一个中后端的协议服务层,开发者基于其提供的 API 可以在上面低成本构建出社交产品,这应该也就是为什么 lens 的 logo 是一束花的原因吧,它希望自己成为这片社交花园里的根和土壤,开发者们可以在其之上种出鲜花。

相信大多数人对于 web3 的主要叙事都在于痛斥 web2 的 facebook、twitter 等公司垄断用户数据权,制造数据孤岛,用户拥有自己的社交数据和关系链也是 web3 原生的重要叙事,于是也冒出了很多号称 web3 twitter 的产品,但到现在为止 web3 的社交产品依然没有出现杀手级应用,我觉得抛开行业成熟度原因主要在于:

  • 第一,在此之前多数 web3 社交产品依然在走制造数据孤岛的老路,怎么理解呢?基于区块链的社交产品确实可以让用户成为他数据的 owner,但产品数据的边界依然是合约,如果用户使用了 10 个产品,则用户的数据会散落在 10 个独立合约中,且每个产品合约的数据格式和标准都不一样,虽然透明了,但孤岛依然存在。从而导致用户的社交数据依然无法打通,用户在各个产品中产生的数据虽然属于其自己,因为独立的合约和不一致的数据格式,依然无法「带走」,假设一个产品挂了,那在此之前所产生的社交数据也很难被利用起来,除非其他的产品专门投入资源去做数据同步,所以目前 web3 社交产品只解决了拥有的问题,而非连接;
  • 第二,开发一个社交产品的成本也是很高的,其实这个成本主要还是在中后端,但是中后端的功能确可以被穷举且标准化,不外乎就是点赞、关注、发帖、收藏等功能,而前端业务层看似纷繁复杂也不过就是基于中后端标准功能的组合拼装。所以我认为 lens 也是基于这两点认为如果他们再做一个社交产品,也不过就是市面上的 10 个产品变成了 11 个,继续增加孤岛,所以他们把自己向下藏了一层,首先制定了标准,将什么样的行为需要铸造为 NFT,发布的内容需要用什么样的数据格式等问题都标准化,能够保证基于其标准所开发出的产品是不存在孤岛问题;
  • 其次通过阅读其开发者文档会发现 lens 的模块化设计非常充分,将能力拆分的颗粒度很细,尽可能做了解耦,从而便于开发者在上面去灵活的拓展业务逻辑。如下图所示,这是 lens 的主合约,可以看到其上面已经产生了 540 万条社交数据,包含了发布、收藏、关注等动作,所以 lens 打造了一个大陆,而不是一个孤岛。

关于标准,分为接口标准和数据标准,首先说一下接口标准,如下图 1 所示这是 lens 提供的所有一级 API,基本上社交关系的主要能力都包括了,图 2 是单关注这一个能力所拆分出来的二级 API,可见其颗粒度是做的很细的,开发者可以基于这些 API 自由拼装组合。

数据标准则又细分为 NFT 和非 NFT 两类,lens 的核心数据围绕 NFT 展开,首先每个用户需要一个.lens 域名才能拥有个人主页,其他的数据都是挂在这个域名下的,这个域名本身是一个 721 类型的 NFT,从这个角度也算是 DID 的范畴。

除了域名外用户的关注、收藏等动作也会被铸造为 NFT,如图 1 当用户进行关注时,触发了合约的 follow 函数,从所产生的链上数据可以看到 mint 了一个 NFT,如图 2 当取关的话则会将该 NFT 销毁掉。

社交数据其实是索引关系非常复杂的,lens 的接口对于开发者也非常方便,将链上数据包了一层不需要开发者自己去分析数据,而是如下图为例,如果需要查询某个人的关注者,通过接口可以直接以很清晰的以拉清单的形式将数据获取到并层层下钻。

另外对于 post 内容发布,首先它不是作为 NFT 呈现的,我在此之前还以为用户发的内容都会铸造成 NFT,如图 1 所示就是正常的链上数据写入的过程,这里我还没有理解清楚为什么 lens 不把他们做成 NFT。如图 2 这是 post 的写入数据,包含的数据有挂载在谁身上,挂载的内容是什么,发布内容用 contentURI 一个外链来索引。

具体内容则是存储在链下的,contentURI 会指向一个存储地址,但是 lens 对于数据的存储格式也是有一套标准规范的,这样就可以达到上文中提到的各产品基于 lens 构建后可以互通的效果,如图 1 为解析出来的一个数据格式,包括名称、内容、类型等。图 2 为枚举的数据格式,图文音视频等都包括,从而结构化内容数据。

以上就是对于 lens 的浅研,不愧是 Aave 出来的,确实对 web3 的原生很透彻,基于 lens 诞生出来 web3 原生 twitter 的可能性还是很大的,也许是研究还不够深,也存一些疑惑,比如个人主页是一个.lens 的 nft 域名,而所有的数据和关系链都挂在上面,但是该 nft 又是可以买卖的,社交关系可以买卖我觉得还是挺奇怪的。


推荐阅读
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • C/C++ 应用程序的安装与卸载解决方案
    本文介绍了如何使用Inno Setup来创建C/C++应用程序的安装程序,包括自动检测并安装所需的运行库,确保应用能够顺利安装和卸载。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • ArcBlock 发布 ABT 节点 1.0.31 版本更新
    2020年11月9日,ArcBlock 区块链基础平台发布了 ABT 节点开发平台的1.0.31版本更新,此次更新带来了多项功能增强与性能优化。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 使用 ModelAttribute 实现页面数据自动填充
    本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • 美团安全响应中心推出全新配送业务测试活动,带来双重福利,邀您共同参与! ... [详细]
  • Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ... [详细]
  • 本文探讨了Python类型注解使用率低下的原因,主要归结于历史背景和投资回报率(ROI)的考量。文章不仅分析了类型注解的实际效用,还回顾了Python类型注解的发展历程。 ... [详细]
  • 深入探讨前端代码优化策略
    本文深入讨论了前端开发中代码优化的关键技术,包括JavaScript、HTML和CSS的优化方法,旨在提升网页加载速度和用户体验。 ... [详细]
  • 本文介绍如何通过Java代码调用阿里云短信服务API来实现短信验证码的发送功能,包括必要的依赖添加和关键代码示例。 ... [详细]
  • 本文探讨了如何选择一个合适的序列化版本ID(serialVersionUID),包括使用生成器还是简单的整数,以及在不同情况下应如何处理序列化版本ID。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
author-avatar
白羊浅蓝色
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有