對於有觀點輸出習慣的 Web3 愛好者而言,將內容“寄存”在 Twitter 等 Web2 社交媒體上,似乎還不夠“抗審查”,也缺些專屬感和獨立性;對於 Web3 協議團隊或項目方而言,從產品服務到前端呈現全流程的去中心化,也在敘事上更具吸引力。而無論是抱著何種動力,將個人或項目官方網站制作為去中心化網站,在成本、匿名性、隱私保護等方面都有一定優勢。因此,本文將帶你一步步將個人網站(以 Notion 生成的網頁為例)部署到 IPFS 上,建立一個隻屬於你的、真正去中心化的網站(Dweb)。文章一共分為介紹、實操、建議三部分。我會先介紹去中心化網絡 Dweb 的概念及代表,再手把手教學將個人名片網站署到 Dweb 上的方法,最後,我也會總結下當前方案的優劣勢。考慮到文章篇幅和上手難度,在實操部分,我隻介紹最簡單的一種 Html 網頁框架部署方法。同時,這一教程主要靠 Fleek 工具來實現部署。Fleek 的功能強大,能打包多種網頁框架(如 WordPress、Next. js 等),有一定技術基礎的朋友,可以縱深探索。什麼是去中心化網站?去中心化網站(Dweb),字面上看就是部署在去中心化網絡上的網站。從構成部分看,Dweb 和傳統互聯網網站類似,都需要擁有一個入口——域名、一個承載主體——托管服務器。在 Web3 世界,與這兩項“功能”相對應的代表項目分別是 ENS、IPFS 和 Arweave(本文重點介紹前者,也是較多項目在使用的方案)。ENS(Ethereum Name Service)是基於以太坊的分佈式、可擴展、開放的命名系統;通俗講,就是區塊鏈域名系統。IPFS 的理念是將數據分佈存儲在世界各地、任何人可運行的節點上;本質上是項抗審查、點對點的數據存儲服務。此外,由於 IPFS 跨節點分發數據並指向特定數據,可以確保資源來自最近更新的來源,實際體驗會更快捷和可靠。關於 ENS 和 IPFS 的進一步釋義,感興趣的讀者可以閱讀《一文瞭解迄今為止最成功的非金融類以太坊應用程序 ENS》《深度解析 IPFS:新一代互聯網底層協議》。在 ENS 和 IPFS 的共同支持下,分佈式的區塊鏈基礎架構可以將內容直接存儲到智能合約(容器)中。基於 ENS+IPFS 的代表網站雖然在感知層面並不明顯,但用戶如果留意一些主流的 Web 3 應用,可以從他們的官方文檔中發現,Uniswap、 1inch 等頭部 Web3 協議已經將其網站同步至 IPFS 上。其 ENS 鏈接地址分別是 1inch. eth、uniswapexchange.eth,對於原生 Web3 瀏覽器可以直接輸入以上地址訪問,對於非原生瀏覽器,可以使用兼容地址訪問:1inch:https://1inch.eth.link/uniswap:https://uniswapexchange.eth.link。更多采用 ENS+IPFS 技術部署的網站,Almonit 做過 Dweb 網站整理,鏈接如下:https://almonit.eth.link/#/discover/,感興趣的讀者歡迎訪問查看。如何部署本文我們主要使用 Fleek 工具提供的方案,該方案優點是部署簡單,支持多種 Web 框架,除瞭支持 Html 頁面外,也支持如 Next.js、Hugo.js、Wordpress 等多種語言的網頁框架。本文聚焦在 Fleek 支持的諸多功能中最簡單的一種——Html 頁面框架部署方案,並且做瞭分步講解,希望小白看完能快速上手;對於高手而言,也能起到拋磚引玉的作用。剛剛提到需要準備一個 Html 網頁,因此會用到 notion 來生成這個 Html 網頁文件,原因主要是 notion 操作簡便,且自帶瞭 html 導出功能,可以將其作為一個可視化的 Html 網頁制作器。由於使用的工具 Fleek 采用的是自動同步 Github 的方式,因此也需要準備好一個 Github 賬號以及對應的 Repo(庫)。部署到 IPFS 網絡本身不需要域名,上傳到網絡中會生成一段 hash,類似於 Web2 中的 IP 地址,因此還需要準備一個 ENS 來映射這段 IPFS hash。概括一下,事前準備三樣東西:一個 github 賬號;一個 ENS 域名,以及對應的錢包和少量 ETH 作為 gas;一個 notion 賬號,並制作一個個人 profile 頁面。 1.從 Notion 導出 Html1.1 在 notion 設計一個 profile,Demo 如下圖。 1.2 從 notion export 功能導出我們準備好的頁面,由於 IPFS 對於靜態網頁支持的能力有限,暫時隻能選擇單頁面導出。(高階選手也可實現多級頁面——subpages)。1.3 獲得瞭導出的壓縮文件後會自動下載到本地。在本地解壓後,會得到下圖中的一個文件夾和一個 Html 文件。將“xxx. html”結尾的文件更名為“index. html”。 2.上傳到 Github2.1 進入到 GitHub 主頁,登陸(沒有賬號的需要註冊一個賬號)進入如下頁面,點擊“ New ”新建一個 Repo。2.2 對於這個新建的 Repo 建議采用 Private (隱私)庫的方式。因為這樣可以避免除瞭 Fleek 工具和創建者的其他人訪問到原始文件。2.3 接下來需要用到 Github 客戶端(如果電腦上沒有 Github 客戶端則需要下載並安裝一個)。登陸 Github 客戶端後,回到剛剛創建之後的 Github 網頁,點擊藍色框內的“ Set up in desktop ”(在桌面打開客戶端)。 2.4 安裝瞭桌面客戶端後,會有如下提示。 2.5 來到桌面客戶端,按照提示設定好一個本地目錄並記錄這個本地目錄的路徑。將第一步 “從 Notion 導出資料”中我們在下載的文件,復制到該本地目錄中。 2.5 復制完成後,回到客戶端會有如下提示。填寫一些描述內容並點擊 commit。 2.6 點擊 push origin 把文檔推送到 Github Repo 中。 3.使用 Fleek 新建一個項目“Fleek 是一套工具,包含在開放網絡及其協議上無縫構建現代站點和應用程序所需的一切。”簡單來說,Fleek 這個工具可以將個人網站簡便地部署到去中心化網絡上。3.1 首次進入 Fleek 需要註冊,建議采用 Etheretrum 小狐貍錢包直接一鍵註冊並登錄,比較方便(亦可以使用 Github 或 Email 來註冊)。3.2 註冊並登陸之後來到項目主頁,接下來需要創建一個網站項目。3.3 我們選擇剛剛第二步中創建的 Github Repo,並進入到下一步。3.4 我們選擇 Hosting services 選項重的 IPFS,選擇 Cointinue 進入下一步。3.5 選擇剛剛創建完成的網站,進入詳細配置頁面。3.6 現在網站已經部署到 IPFS 上面瞭,Fleek 工具還很貼心的關聯瞭一個映射域名,如圖所示。 3.7 接下來,綁定 ENS 域名,選擇“ Setting ”,並找到“ ENS ”。3.8 下拉到“ Add ENS ”。3.9 輸入 ENS 域名。3.10 進入到如下界面,再次點擊剛剛輸入的 ENS 地址。並選擇“ Set content hash ”,最後支付一筆 Gas 費完成綁定。 3.11 此時我們看到之前是灰色的 ENS 域名已經轉變成為藍色,綁定成功。 3.12 對於支持去中心化域名的瀏覽器,如 brave,小狐貍錢包手機 APP 等,直接輸入 ENS 如我這裡設置的 yyzfish.eth即可以直接訪問部署的Dweb,對於Web2 的瀏覽器,ENS 也有兼容方案,可以直接訪問https://yyzfish.eth.link/ 。建站過程中的一些思考走完這套流程後,我體會到瞭去中心化網站相較於傳統網站的一些優劣勢。 優勢成本低廉穩定傳統的 Web2 網頁需要部署到服務器上,不僅需要維護,而且花費隨著用戶數量而增加,但是通過本文部署到 Web3 的流程,不難發現,部署到 IFPS 的花費是極其便宜的(當前免費),且無論用戶量大小如何,花費不會有變化。更完整的 Web3 敘事早期,由於鏈上 gas 高很難把完整的項目(前端+智能合約)同時部署到如以太坊網絡上。而如今,隨著 IPFS 網絡協議的完善,龐大的前端交互頁面也有瞭自己專屬的去中心化網絡。這在敘事上符合真正的“去中心化”理念。目前 Uniswap、1inch 等頭部 DeFi 協議都陸續部署到瞭去中心化網絡上面,未來或許完整部署到去中心化網絡將成為 Web3 項目的標配。對個人來說很酷ENS 域名在社交媒體(如 Twitter)上很受歡迎,不少 KOL 的昵稱為 xxx. eth,而在此基礎上實現瞭進一步延伸——把自己的博客部署到 IPFS 網絡,並以 ENS 域名作為入口,對於加密愛好者來說會是件很酷的事。匿名性與隱私保護由於 Dweb 在早期設計階段就充分考慮瞭“去中心化”與“隱私”結合,其實和 Tor 網絡有些許類似之處,都具有不可追蹤、匿名性的特點。不足對於 Web 2 的兼容性仍然有待提高雖然工具已經支持很多主流框架,但還不是全部,對於像 PHP 這種的動態網頁框架仍然是不支持的狀態。整體兼容度還有待提高。對國內用戶不友好由於當前 IPFS 的節點還遠未達到白皮書中所計劃的數量(路線圖),因此,Dweb 在國內的訪問有一定的阻礙。希望未來能夠看到更加完善的方案,以及技術的迭代。