去中心化、人人平等的網絡世界,更多的可能等你來開拓

點擊加入mixlab社區

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源碼?及探索相關的應用?

——公衆號回覆留言即可加入社羣。

以上爲全文。

近期活動推薦

快!TensorFlow、黑客馬拉松、DevFest千人大會 ,GDG DevFest 2018在召喚你

--------------------------------------

mixlab 無界社區 是一所面向未來的實驗室,它提倡“跨界創新,開放成長”的理念。

——跨界 開放 互助 學習 思維 創新。

目前社區彙集了15000+跨學科人羣,主要來自GoogleBrain、微軟、華爲、阿里魯班、騰訊、曠視、三角獸、物靈科技、衆安保險、美團、360等科技人才、設計師及CEO和投資人;高校分佈MIT、Oxford、Cambridge、CMU、UoM、清華、上交大、同濟等學生及教師羣體;學科跨越機器學習、自然語言處理、量化交易、物聯網、區塊鏈、前端、後端、產品經理、UI設計、建築設計、服裝設計、珠寶設計、音樂、藝術等。

社區典型的用戶技能爲: ML00:小程序開發、AI+設計、區塊鏈技術 ML04: 算法作曲 ML05:AI變臉 ML07:WebGL+Three.js數據可視化 ML14:增長黑客 ML16:機器學習 ML37:AR ML41:人工智能+音樂 ML44:珠寶設計+參數化設計 ML83:量化交易、數字貨幣交易 ML109:Arduino、processing ML113:人工智能+服裝設計 ML206:VR/AR ML245:建築設計智能化

詳細介紹點擊以下卡片:

mixlab期待您的加入!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章