去中心化、人人平等的网络世界,更多的可能等你来开拓

15000+跨学科人群,机器学习、机器视觉、自然语言处理、知识图谱、量化交易、物联网、区块链、产品经理、交互设计、建筑设计、服装设计、珠宝设计、平面设计、音乐、艺术等。

上一期介绍了分布式社交协议solid,solid把应用跟数据分开了:

数据是一种分布式的服务POD,有点像我们会碰到非常多的网盘产品,有些网盘存用户的照片,有些网盘存用户的文章,有些存用户的歌单,有些存用户的运动数据,有些存用户的社交好友关系,有些存用户的知识等等,只要值得存储的数据,都可以有一种网盘的形式去存储;

应用也是一种独立的存在,它本身不存储用户的数据,它是整合用户数据的地方,也是处理用户数据的地方,比如我们可以开发一款图片社交产品,用户可以在上面发图片,发的图片会保存在用户选定的网盘上,此款社交app只是把用户的照片跟用户的个人信息汇总在一起,按照某个逻辑来呈现。就算此款app,只提供了几个月的服务就被关闭了,用户的照片数据还是存在于用户选定的网盘上;当有另一款app也需要用户提供照片数据时,可以直接调用用户之前发布的照片数据。

整个网络世界,变成了应用跟数据两种基本服务。

非常灵活,我们可以开发各种的创新应用。因为不需要面临数据冷启动的问题。

下面用代码的方式,帮助大家深度了解技术原理,有几个知识点,我们需要提前理解:

什么是POD?

webID是什么?

阅读难度:

技能要求:JS基础、HTML基础

字数:900

阅读时长:4

STEP1

获取一个 solid pod

为了读写数据,你需要拥有一个solid pod和账号。访问inrupt网址( https://inrupt.net/ ),注册一下,获取一个webID(账号)。

我的webID:

https://shadowcz.inrupt.net/profile/card#me

STEP2

新建一个HTML文件

新建一个html文件,输入以下代码:

STEP3

添加 Solid auth client 库 及 jQuery 库

为了支持solid,我们需要添加2个组件,一个是JS,一个是登录页面。

·JS库:

https://solid.github.io/solid-auth-client/dist/solid-auth-client.bundle.js

·登录页面:

https://solid.github.io/solid-auth-client/dist/popup.html

popup是登录页面,在登录页面填入我们自己的webID,然后会跳到webID对应的POD服务提供站点处,登录授权即可。


· jQuery 库:

https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js

STEP4

添加登录状态的UI及登录,退出按钮

在html文件里添加标签,如下:

Step 5

为登录按钮添加JS事件,并运行html

在html文件里添加一个script标签,并输入以下js代码:

打开终端,输入:

python -m http.server

打开浏览器,输入:

http://localhost:8000

登录下试试,如下图:

Step 6

为退出登录的按钮添加一个js事件

输入以下代码:

Step 7

把登录用户的webID显示出来

可以把授权的用户webID显示出来,在html中输入input标签,并在script中输入js代码:

Step 8

获取用户存储在POD上的数据

使用RDFlib.js库,操作我们存储在POD上的Linked Data;RDFlib.js已经在html里引用了,我们看一下如何用js获取数据:

使用RDFlib.js获取webID的名字,对应的RDFlib的代码,主要有3步:

Step 9

显示其他字段

由于我们刚创建的webID没有friends关系,可以使用官方示例的一个webID,在

<input id="profile">尝试填入:

https://ruben.verborgh.org/profile/#me

点击view按钮,可以拉取friends关系,js代码:

至此,9步完成了一个简单的solid 应用。

去中心化的网络世界,是不是很性感?

有没有兴趣一起研究下solid源码?及探索相关的应用?

(0)

相关推荐