時間:2023-07-11|瀏覽:210
隨著Web瀏覽器逐漸應(yīng)用Web3技術(shù),對去中心化存儲的需求變得越來越明顯。不過,瀏覽器插件和使用IPFS這類分布式存儲協(xié)議時面臨越來越多的局限性。標準的Web瀏覽器并不總能以原生的方式利用IPFS技術(shù)。因此就需要有一個中介角色,為有意使用此類存儲系統(tǒng)應(yīng)用來開發(fā)應(yīng)用的開發(fā)者提供幫助。
Estuary是很多Web3開發(fā)者想尋找的解決方案。它的實質(zhì)就是一個整合了最小化Filecoin庫的IPFS節(jié)點。讓Filecoin和IPFS一起工作并不難,不過找到正確的步驟還是需要點技巧的。
在這個例子中,Textile正使用一個架設(shè)的中間服務(wù),來讓開發(fā)者使用標準API將內(nèi)容pin到IPFS網(wǎng)絡(luò)上。在理解它們的協(xié)作機制之前,需要了解一下它們各自的原理。
IPFS和Filecoin:區(qū)塊鏈世界的天作之合!
Filecoin是一個去中心化的網(wǎng)絡(luò),它能讓人們在任何地方存取數(shù)據(jù)。用戶可以通過這些節(jié)點上提供的數(shù)據(jù)存取服務(wù),用戶還能賺取Filecoin。
這個結(jié)合的另一環(huán)節(jié)就是IPFS,它是一個Web3文件系統(tǒng),讓開發(fā)者能夠在網(wǎng)絡(luò)上存取數(shù)據(jù)。在非區(qū)塊鏈領(lǐng)域能找到最相似的服務(wù)就是云計算了,不過IPFS并不是由大公司控制的。
老派的程序員可能還記得在C語言里使用指針的時候。IPFS使用類似的概念即內(nèi)容標識(CID),通過這個標識就能在可用的節(jié)點上訪問數(shù)據(jù)。
要訪問文件的時候,你可以引用IPFS的存儲服務(wù)上的CID標識,而不是使用本地硬盤里的文件地址。不過,由于瀏覽器并不能原生地理解IPFS,它們需要有將這些CID標識視為文件的方式。這就是Textile這個工具的作用了。
Textile:永續(xù)的IPFS數(shù)據(jù)倉庫
瀏覽器處理IPFS文件時碰到的問題就是它們并不具有永續(xù)性。Textile提供了一個簡單的架設(shè)服務(wù)式解決方案,開發(fā)者能夠?qū)⑵涮砑拥饺魏尉W(wǎng)站或應(yīng)用里。雖然IPFS協(xié)議在主流的瀏覽器里并沒有得到原生的支持,但Textile可以使用"Buckets"作為組織索引和pin住IPFS數(shù)據(jù)的方式,從而滿足開發(fā)者的需求。
設(shè)置bucket的步驟很容易,不外乎創(chuàng)建一個本地的秘密文件,用于存儲訪問TextileHub賬號所需的秘鑰。當你注冊一個TextileHub賬號并開發(fā)一個應(yīng)用程序時,你會得到一對公鑰和私鑰。這個秘鑰對需要用以下格式插入文本文件里:
TEXTILE_HUB_KEY=XXXX
TEXTILE_HUB_SECRET=XXXX
IPFS_GATEWAY=https://ipfs.io
這個環(huán)節(jié)可能是最有技術(shù)含量的操作了。Textile的命令行CLI工具應(yīng)該能提供公私鑰對的值,讓系統(tǒng)能夠訪問bucket。當開發(fā)者完成了這一步,應(yīng)該就能容易地使用bucket來開發(fā)應(yīng)用程序。你可以通過使用NextJS和TextileBuckets快捷開始項目的模板這個例子了解更多。
Textile的整合方案支持使用任何語言或框架來進行開發(fā)。一些開發(fā)者可能希望在產(chǎn)品中使用React或Vue框架,不過Angular或其他JS實施方案其實都是可以的。公私鑰對提供了安全架設(shè)數(shù)據(jù)的方式。它們還支持生成一個libp2p身份的操作。
當你的應(yīng)用程序的用戶設(shè)立了一個libp2p秘鑰后,他們就可以使用通過Textile架設(shè)的bucket基礎(chǔ)設(shè)施,來將數(shù)據(jù)pin到IPFS網(wǎng)絡(luò)上。取決于服務(wù)器的流量和網(wǎng)絡(luò)連接的質(zhì)量,這些文件可能需要等待一小段時間才能被公開訪問。
IPFS網(wǎng)絡(luò)上的特定數(shù)據(jù)越受歡迎的話,它的取回速度就會更快。如果你的用戶正存儲的數(shù)據(jù)需要有長期存儲的可驗證證明,TextileBucket還支持一個FilecoinAPI,讓你可以與Filecoin網(wǎng)絡(luò)里已經(jīng)熟悉的存儲提供者進行存儲交易提議。不過,如果你連一個存儲提供者都不認識的話,該怎么辦?Estuary提供了一個更為簡便的解決方案,讓你可以將數(shù)據(jù)存儲到Filecoin網(wǎng)絡(luò)上。
兩重的存儲系統(tǒng)
當數(shù)據(jù)通過Textile添加到一個bucket后,這個數(shù)據(jù)會被pin到IPFS上并可被其他人訪問,但這并不意味著它就一定在Filecoin的鏈上。通過Textile的IPFS網(wǎng)關(guān)所訪問的數(shù)據(jù)需要與一個存儲服務(wù)提供者達成存儲交易提議,才能被添加到Filecoin區(qū)塊鏈上。若要將數(shù)據(jù)pin到Filecoin網(wǎng)路上,則需要Estuary或TextilesBidbot這樣的中介服務(wù)。
通過Estuary,上傳的數(shù)據(jù)可以進入超過100個節(jié)點。不過問題是,你的數(shù)據(jù)真的在鏈上嗎?有幾個簡單的方法可以進行驗證,讓你可以獲得相關(guān)的文件、CID標識號和正存儲該數(shù)據(jù)的服務(wù)提供者的信息。
將文件上傳到Estuary是很簡單的,有以下幾個方式:
1、用戶可以在其應(yīng)用中使用Estuary的API 2、使用命令行 3、登錄后在瀏覽器中拖拽文件
Estuary還支持列出與特定賬號關(guān)聯(lián)的數(shù)據(jù)。這個列表提供了該用戶有權(quán)訪問的文件及CID標識信息,這包括了Filecoin網(wǎng)絡(luò)上保存了這些數(shù)據(jù)的存儲服務(wù)提供者的信息。Estuary提供了簡單的ReactJS整合方式,開發(fā)者可以直接復(fù)制參考。當然,開發(fā)者還需要添加自己的API秘鑰,不過大部分情況下從Estuary的手冊里參考代碼片段就可以滿足開發(fā)需求了。
Web存儲新范式
IPFS和Filecoin是互補的系統(tǒng),生態(tài)也開發(fā)了Textile和Estuary這類工具來幫助兩者的協(xié)作。隨著插件使用的受限程度增加,這些工具對當前瀏覽器里開發(fā)Web
熱點:ipfs