国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用 Solid 私有化存儲(chǔ) IPFS 文件哈希值

sunnyxd / 1353人閱讀

摘要:我們想要解決的問(wèn)題是,如何私有化存儲(chǔ)文件的哈希值。解決哈希值的泄漏有兩種方案自建私有節(jié)點(diǎn)。同理,定義了的哈希值為該哈希來(lái)自于的某個(gè)文件。這樣用戶在使用賬號(hào)登錄之后我們就可以讀取用戶的文件哈希值列表,然后從網(wǎng)絡(luò)中拉取文件了。

背景

星際文件系統(tǒng) IPFS(InterPlanetary File System)是一個(gè)面向全球的、點(diǎn)對(duì)點(diǎn)的分布式文件系統(tǒng),目標(biāo)是為了補(bǔ)充(甚至是取代)目前統(tǒng)治互聯(lián)網(wǎng)的超文本傳輸協(xié)議(HTTP),將所有具有相同文件系統(tǒng)的計(jì)算設(shè)備連接在一起。原理用基于內(nèi)容的地址替代基于域名的地址,也就是用戶尋找的不是某個(gè)地址而是儲(chǔ)存在某個(gè)地方的內(nèi)容,不需要驗(yàn)證發(fā)送者的身份,而只需要驗(yàn)證內(nèi)容的哈希,通過(guò)這樣可以讓網(wǎng)頁(yè)的速度更快、更安全、更健壯、更持久。

社交互聯(lián)數(shù)據(jù) Solid (Social Linked Data) 由萬(wàn)維網(wǎng)發(fā)明者 Tim Berners-Lee 發(fā)起,該項(xiàng)目旨在從根本上改變 Web 應(yīng)用程序的中心化趨勢(shì), 它將真正地讓數(shù)據(jù)所有權(quán)屬于用戶,并改善隱私問(wèn)題。它是一組約定和工具,主要用于構(gòu)建基于關(guān)聯(lián)數(shù)據(jù)的分布式社交應(yīng)用。

簡(jiǎn)單來(lái)說(shuō),IPFS 是一個(gè)任何人都可以訪問(wèn)的點(diǎn)對(duì)點(diǎn)存儲(chǔ)平臺(tái)(可以存儲(chǔ)大量非結(jié)構(gòu)化數(shù)據(jù)),Solid 是一個(gè)必須授權(quán)才可以使用的結(jié)構(gòu)化數(shù)據(jù)計(jì)算和存儲(chǔ)平臺(tái)。

我們想要解決的問(wèn)題是,如何私有化存儲(chǔ) IPFS 文件的哈希值。存儲(chǔ)在 IPFS 上的文件哈希如果被泄漏,任何人都可以訪問(wèn)該文件,這是極不安全的,不是每個(gè)人都想把自己的文件上傳到公有網(wǎng)絡(luò)里。解決哈希值的泄漏有兩種方案:

自建 IPFS 私有節(jié)點(diǎn)。該方案成本比較大,需要根據(jù) IPFS 開(kāi)放的協(xié)議重頭來(lái)寫;

自己寫一套或使用成熟的互聯(lián)網(wǎng)訪問(wèn)控制(WAC,Web Access Control)方案;

綜合考慮成本、時(shí)間等因素,我們使用第二種方案。而第二種方案有非常多的實(shí)現(xiàn),同時(shí) Solid 是所有實(shí)現(xiàn)中最具開(kāi)放性、代表性和權(quán)威性的。WAC 本身就是由 Tim Berners-Lee 在 2009 年提出的方案,如今用于 Solid 項(xiàng)目中是天作之合。

Solid 一個(gè)巨大的優(yōu)勢(shì)在于,它想將數(shù)據(jù)的所有權(quán)還歸用戶。如果想讓用戶愿意上傳隱私數(shù)據(jù)到 IPFS 網(wǎng)絡(luò)中,一個(gè)重要的因素在于如何保證用戶上傳的文件哈希不被其他人非法獲取到,而 Solid 不僅可以安全的存儲(chǔ)文件哈希值,還可以保證文件哈希值僅為用戶所有。

于是我們寫了個(gè) solid-ipfs 框架用來(lái)解決這個(gè)問(wèn)題。

解決方案

代碼在 Github 上已開(kāi)源:Eximua/solid-ipfs。

以下是以一個(gè) WebId (用戶在 Solid 網(wǎng)絡(luò)中的唯一標(biāo)識(shí))為 https://alicea.solid.authing.... 的用戶舉例。


這是用戶 Alicea 在 Solid 上的個(gè)人主頁(yè),其中 Profile 和 Public Folder 是可以公開(kāi)被讀取的數(shù)據(jù)(但是寫入需要 Alicea 的權(quán)限確認(rèn)),Inbox 為隱私數(shù)據(jù),只有 Alicea 本人可以讀取和寫入。我們上傳到 IPFS 網(wǎng)絡(luò)中的私有文件哈希值將被存儲(chǔ)到 Inbox 中。

簡(jiǎn)單來(lái)說(shuō)的話,Profile、Public Folder 和 Inbox 可以理解為公有文件夾和私有文件夾。你所有的公有文件可以放到到公有文件夾里,私有的隱私數(shù)據(jù)可以放到私有文件夾內(nèi)。

更簡(jiǎn)單來(lái)說(shuō),這就是 Solid Pod。

Solid 的數(shù)據(jù)存儲(chǔ)使用 RDF,RDF 是用來(lái)描述網(wǎng)絡(luò)資源的一個(gè)框架,他把所有資源以三元組的形式進(jìn)行描述。比如(姚明,身高,226cm)定義了姚明的身高是 226 厘米。

示例中的 (alicea, type, Person) 則定義了 Alicea 的類型是人。同理,(alicea, hash, QmVCZeNR7eQNEu5Gekqqbnmk85v66cFHHjZZTGZxAqA2hD) 定義了 Alicea 的哈希值為 "QmVCZeNR7eQNEu5Gekqqbnmk85v66cFHHjZZTGZxAqA2hD"(該哈希來(lái)自于 IPFS 的某個(gè)文件)。

當(dāng)然這種描述方式不是語(yǔ)義化的,僅供示例參考。

為了對(duì)這些 RDF 進(jìn)行讀寫操作,RDF 官方封裝了 rdflib.js ,使語(yǔ)義計(jì)算可以在 Web 上執(zhí)行(也就是可以在瀏覽器里執(zhí)行語(yǔ)義計(jì)算啦)。

我們最終語(yǔ)義化的私有存儲(chǔ)樣例如下:

可以看到,我們使用了 "ipfs/hash" 這個(gè)命名空間(可以理解成文件夾)來(lái)存儲(chǔ)相應(yīng)的 IPFS 文件哈希值,并且把每一個(gè)哈希值作為一個(gè)文件(哈希值.txt)存儲(chǔ)到 Solid Pod 中。這樣用戶在使用 Solid 賬號(hào)登錄之后我們就可以讀取用戶的文件哈希值列表,然后從 IPFS 網(wǎng)絡(luò)中拉取文件了。

具體的技術(shù)細(xì)節(jié)就不再細(xì)講了,感興趣的可以自行查看代碼:Eximua/solid-ipfs。

使用 solid-ipfs

最后介紹一下 solid-ipfs 的使用方法。

solid-ipfs 其實(shí)不止可以寫入私有數(shù)據(jù),還可以寫入公有數(shù)據(jù)。

安裝

$ npm install solid-ipfs --save

使用

import SolidIPFS from "solid-ipfs";

const main = async () => {
    const solidIpfs = new SolidIPFS({
        url: "YOUR_SOLID_URL", // e.g. https://alicea.solid.authing.cn/inbox/
    });

    const result = await solidIpfs.storeHash({
        hash: "YOUR_IPFS_HASH",
    });

    console.log(result, result ? "保存成功" : "保存失敗");
}

main();

通過(guò)訪問(wèn)/ipfs/hash/ 之后即可獲得用戶的 IPFS 哈希值列表

如果你還沒(méi)有 Solid 賬號(hào),可以點(diǎn)擊這里注冊(cè)。

私有文件示例

https://alicea.solid.authing....

import SolidIPFS from "solid-ipfs";

const main = async () => {
    const solidIpfs = new SolidIPFS({
        url: "https://alicea.solid.authing.cn/inbox/", // inbox -> private
    });

    const result = await solidIpfs.storeHash({
        hash: "YOUR_IPFS_HASH",
    });

    console.log(result, result ? "保存成功" : "保存失敗");
}

main();
公有文件示例

https://alicea.solid.authing....

https://alicea.solid.authing....

import SolidIPFS from "solid-ipfs";

const main = async () => {
    const solidIpfs = new SolidIPFS({
        url: "https://alicea.solid.authing.cn/public/", // public -> public
    });

    const result = await solidIpfs.storeHash({
        hash: "YOUR_IPFS_HASH",
    });

    console.log(result, result ? "保存成功" : "保存失敗");
}

main();

題外話,有的人可能對(duì) RDF、語(yǔ)義計(jì)算這些概念不熟悉,這里再簡(jiǎn)單介紹下。

RDF 為什么叫資源描述框架,這個(gè)資源具體指代什么?

RDF 中的資源指代一切資源,它是一個(gè)通用的,可以定義一切的規(guī)范。比如:文件夾、文件、文件類型、代碼、聊天內(nèi)容、郵件等都屬于資源,RDF 主要定義了這些不同類型資源的存儲(chǔ)方式和數(shù)據(jù)規(guī)范。

我們?yōu)槭裁葱枰?RDF,它能解決什么問(wèn)題?

RDF 看重語(yǔ)義化,可移植性和互操作性。語(yǔ)義化指你的數(shù)據(jù)存儲(chǔ)規(guī)范必須是人類能理解的;可移植性代表當(dāng)我想把我的數(shù)據(jù)從 A 平臺(tái)移植到 B 平臺(tái)時(shí),不需要做任何的數(shù)據(jù)格式兼容;互操作性指我在 A 平臺(tái)存儲(chǔ)的數(shù)據(jù)在 B 平臺(tái)上也可以進(jìn)行讀取和計(jì)算。

簡(jiǎn)單來(lái)說(shuō),就是所有的數(shù)據(jù)都共享同一套規(guī)范,減少為了兼容而產(chǎn)生的數(shù)據(jù)對(duì)齊時(shí)間,提升效率。RDF 是語(yǔ)義互聯(lián)網(wǎng)(Web 3.0)的重要組成部分,它的愿景是全萬(wàn)維網(wǎng)的數(shù)據(jù)互通,變成一個(gè)大型計(jì)算平臺(tái),目前這個(gè)概念更有名的叫法為“知識(shí)圖譜”。

Solid 資源列表:

Solid 中文網(wǎng)

Solid 中文社區(qū)

?3. Solid Pod 中國(guó)節(jié)點(diǎn)
?4. solid-ipfs
?

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/99867.html

相關(guān)文章

  • 【董天一】關(guān)于IPFS的熱門問(wèn)題

    摘要:作者簡(jiǎn)介董天一中國(guó)區(qū)技術(shù)布道人指南作者。目前網(wǎng)絡(luò)上有一些對(duì)的解讀五花八門,各式各樣,有看好的,也有打擊的,總之一項(xiàng)新技術(shù)誕生之初遇到的問(wèn)題都遇到了。問(wèn)題文件丟失認(rèn)為系統(tǒng)不可靠,會(huì)造成用戶文件的丟失。 作者簡(jiǎn)介:董天一 ,IPFS/Filecoin中國(guó)區(qū)技術(shù)布道人 ,《IPFS指南》作者。畢業(yè)于北京大學(xué)軟件與微電子學(xué)院曾擔(dān)任甲骨文亞洲研發(fā)中心(中國(guó))數(shù)據(jù)庫(kù)開(kāi)發(fā)工程師。 資深區(qū)塊鏈技術(shù)開(kāi)發(fā)...

    李義 評(píng)論0 收藏0
  • 【戴嘉樂(lè)】利用IPFS構(gòu)建自己的去中心化分布式Wiki系統(tǒng)

    摘要:全稱,中文名星際文件系統(tǒng),是一個(gè)旨在創(chuàng)建持久且分布式存儲(chǔ)和共享文件的網(wǎng)絡(luò)傳輸協(xié)議。在網(wǎng)絡(luò)中的節(jié)點(diǎn)將構(gòu)成一個(gè)分布式文件系統(tǒng)。使用稱為去中心化命名系統(tǒng),每個(gè)文件都可以被協(xié)作命名為易讀的名字。三項(xiàng)目實(shí)踐利用構(gòu)建一個(gè)去中心化不可篡改的分布式系統(tǒng)。 作者簡(jiǎn)介:戴嘉樂(lè)( Mr.Maple ) | 前百度高級(jí)研發(fā)工程師 | IPFS應(yīng)用實(shí)踐者&布道師|個(gè)人網(wǎng)站:https://www.daijial...

    keithxiaoy 評(píng)論0 收藏0
  • 站在Web3.0 理解IPFS是什么

    摘要:在中,一個(gè)文件的哈希值完全取決于其內(nèi)容,修改它的內(nèi)容,其相應(yīng)的值也會(huì)發(fā)生改變。則是用一個(gè)哈希指向一個(gè)真實(shí)內(nèi)容文件的,文件更新這更改哈希的指向,當(dāng)然更新指向需要有哈希對(duì)應(yīng)的私鑰。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:站在Web3.0 理解IPFS是什么原文已更新,請(qǐng)讀者前往原文閱讀 盡管網(wǎng)絡(luò)上,已經(jīng)有不少文章討論IPFS,不過(guò)真正講明白IPFS想做什么的很少,文本嘗試站在未來(lái)Web3....

    young.li 評(píng)論0 收藏0
  • 【董天一】什么是IPFS?(二)

    摘要:作者簡(jiǎn)介董天一,中國(guó)區(qū)技術(shù)布道人,指南作者。由于每個(gè)文件的哈希值全網(wǎng)唯一,查詢將很容易進(jìn)行。如果僅僅使用哈希值來(lái)區(qū)分文件的話,會(huì)給傳播造成困難,因?yàn)楣V挡蝗菀子洃洠拖竦刂芬粯硬蝗菀子洃洠谑侨祟惏l(fā)明的域名。 作者簡(jiǎn)介:董天一 ,IPFS/Filecoin中國(guó)區(qū)技術(shù)布道人 ,《IPFS指南》作者。畢業(yè)于北京大學(xué)軟件與微電子學(xué)院曾擔(dān)任甲骨文亞洲研發(fā)中心(中國(guó))數(shù)據(jù)庫(kù)開(kāi)發(fā)工程師資深區(qū)塊鏈...

    shuibo 評(píng)論0 收藏0
  • 【戴嘉樂(lè)】詳解IPFS的本質(zhì)、技術(shù)架構(gòu)以及應(yīng)用

    摘要:戴嘉樂(lè)去年月參與了的眾籌,從而了解到技術(shù),獨(dú)立開(kāi)發(fā)了兩款基于的開(kāi)源應(yīng)用,一個(gè)是與有關(guān)的系統(tǒng),另一個(gè)是相關(guān)的地理位置檢索系統(tǒng)。現(xiàn)在支持的數(shù)據(jù)結(jié)構(gòu),支持比特幣以太坊的區(qū)塊數(shù)據(jù)。 戴嘉樂(lè)是前百度高級(jí)研發(fā)工程師,ipfser.org&巴比特專欄作者。戴嘉樂(lè)去年8月參與了FileCoin的眾籌,從而了解到IPFS技術(shù),獨(dú)立開(kāi)發(fā)了兩款基于IPFS的開(kāi)源應(yīng)用,一個(gè)是與IPFS有關(guān)的wiki系統(tǒng),另一...

    whlong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

sunnyxd

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<