傳統的 URL 縮短程式依賴集中式服務,這使得它們容易受到審查、資料外洩和單點故障的影響。去中心化、Web3 驅動的 URL 縮短器透過在區塊鏈上儲存連結映射來解決這些問題,確保不變性、透明度和抗審查性。
在本指南中,我們將使用 Next.js、以太坊智能合約和 Fleek 的邊緣優化託管來建立完全去中心化的 URL 縮短服務。最後,您將擁有一個簡化的 Next.js 應用程序,使用戶能夠無縫地縮短、儲存和解析 URL。
主要優點:
確保您擁有:
上述 UrlShortener 智慧合約允許使用者建立和管理縮短的 URL。它將唯一的短代碼映射到長 URL,從而實現高效的 URL 儲存和檢索。使用者可以使用 setURL 函數設定映射並使用 getURL 檢索原始 URL。該合約包括基本驗證,並在新 URL 縮短時發出事件。我已經部署了我的合約,地址是:0x2729D62B3cde6fd2263dF5e3c6509F87C6C05892
在專案根目錄建立一個.env:
使用以下指令建立 src/abi/URLShortener.json:
在 src/lib/contract.js 中:
將 {{REOWN-PROJECT-ID}} 和 {{REOWN-APP-NAME}} 替換為您在 Reown 中的詳細資訊。
提供者設定:
下面,我將展示如何在 Next.js 應用程式中正確設定 web3 提供程序,以正確處理客戶端渲染。
關鍵是將提供者分為兩部分,以安全地處理必須僅在瀏覽器中執行的 web3 功能。
建立 src/lib/providers.js:
建立 src/lib/Web3Providers.jsx:
修改_app.js:
在pages/_app.js:
此頁面處理連接錢包、輸入長 URL 和短代碼以及寫入區塊鏈。我們將進行與上方類似的拆分。造成這種分裂的主要原因:
在pages/index.js:
建立 src/lib/URLShortenerApp.jsx:
最後一件事是確保您的 tailwind.config.js 與以下內容相符:
對於伺服器端和動態路由,請確保您有:在檔案中匯出 const runtime = 'edge'。
1.建置應用程式:
這會產生一個 .fleek 目錄。
2.建立 Fleek 函數:
3.為您的函數命名(例如,web3-url-shortener-next-js)。
4.部署到 Fleek:
成功部署後,Fleek 將提供一個 URL 來存取您的應用程式。
您已經成功建置並部署了一個去中心化的 URL 縮短器:
這個基礎可以擴展或整合到更大的 Next.js 應用程式中。嘗試自訂 UI、追蹤分析或整合其他智慧合約來增強您的 Web3 URL 縮短器。在此處查看最終結果應如下所示:https://shortener.on-fleek.app/
您可以前往Github倉庫查看完整程式碼:https://github.com/tobySolutions/shortener
本文原發表於 Fleek 部落格
以上是在 Fleek 上使用 Next.js 建立 WebRL 縮短器的詳細內容。更多資訊請關注PHP中文網其他相關文章!