传统Web应用的前端文件通常托管在中心化服务器上,域名也可能被查封。对于追求抗审查性的DApp,前端部署同样需要去中心化。DApp开发通过将前端代码托管在IPFS、Arweave或Swarm上,并配合ENS域名与去中心化网关,确保用户始终能够访问应用界面。
IPFS托管是最常用的方案。开发者将构建后的静态文件(HTML、JS、CSS、图片)上传到IPFS网络,获得根目录CID。用户通过网关访问该CID,或使用IPFS伴侣插件在本地节点加载。但IPFS的CID不可变,每次更新前端代码都会产生新CID,需要更新引用。解决方案是使用IPNS(星际命名系统)将固定名称指向最新CID,或使用ENS域名解析到IPFS哈希。
ENS(以太坊域名服务)将.eth域名绑定到IPFS哈希或合约地址。用户访问app.eth时,支持ENS的浏览器(如Brave或安装了MetaMask的Chrome)自动从IPFS加载内容。DApp开发可注册并配置ENS记录,将前端指向最新的IPFS版本。同时设置内容哈希的TTL,以便更新后快速生效。
Arweave提供永久存储,一次付费永久保存。与IPFS不同,Arweave的数据自带激励机制,无需固定服务。DApp开发可将前端打包为单个文件或文件夹上传,获得交易ID。通过arweave.net网关访问,但Arweave的读取延迟略高于IPFS。对于需要极高抗审查性的DApp,Arweave是更佳选择。
去中心化托管面临的挑战是访问速度。IPFS网关可能被限速或封锁。DApp可自建网关或使用Cloudflare的IPFS网关(已被部分国家封锁)。另一种策略是使用Fleek或Pinata的加速服务,将IPFS内容映射到自定义域名,同时保留去中心化备份。
