将网站、落地页、应用、3D、游戏等发布到ICP去中心化云。
从Web2托管的替代方案,迈向由AI/CLI操作的去中心化应用平台。
注:幻灯片中的文字为日语,页面正文以中文对各张幻灯片进行说明。
这个Sho T官方网站本身也发布在ICP去中心化云上。本页面既是说明资料,也是ICP Sovereign Cloud的实际演示。
为什么选择ICP
使用Vercel、AWS或Wix等SaaS,同样可以实现网站、API、外部连接与AI集成。因此,ICP的价值并不只是增加了某些功能。
ICP的本质在于:网站和应用不再放在由特定管理主体运营的服务器上,而是放在由密码学机制维持的去中心化云上,从而能够成为由自己的身份(identity)管理的Canister(容器)上的实体。
这意味着什么?
本地电脑上的文件完全在自己的管理之下,但只封闭在本地。普通的云虽然可以向全世界公开,却依赖于大企业的账号与服务。
而ICP可以在将Web资产置于自己所有(以私钥签名)的同时,在网络上发布、运行与连接。也就是说,它从根本上改变了持有Web资产的方式。
补充:成本极低
如果只看便宜,还有免费托管等其他选择。但这里最重要的是:这是一个完全由自己的密钥拥有的发布平台,同时还能以极低的维护成本运营。
※参考:根据ICP Japan「告别Web2托管对比」的年度对比数据制作
今天的目标
- 第1阶段(发布流程):掌握从本地开发 → build → 同步到Asset Canister → 确认ICP公开URL的全过程。
- 第2阶段(扩展功能):展望通往Backend Canister、HTTPS outcalls、Chain Fusion、vetKeys、SEV Subnet以及AI / CLI操作的路径。
可以发布的对象
凡是在浏览器中运行的公开资产,都可以发布到ICP。
- 个人网站、作品集网站、企业官网
- 推广落地页、活动专题页、招聘网站
- 类似GitHub Pages的文档网站、Wiki
- 使用React/Vue等构建的Web应用、PWA
- 运用three.js / WebGL的3D展示空间与元宇宙前端
- 基于WebGL的浏览器Web游戏
先从静态发布开始
无需一开始就编写区块链代码(智能合约)。就像普通的Web开发一样,把 `npm run build` 生成的静态资源(`dist/` 等构建产物)部署到ICP即可。
在第1阶段,ICP被用作“替代Vercel或Netlify的安全的去中心化托管”。
整体架构
- Local:使用VS Code等工具在本地编写与编辑代码。
- Build:通过 `npm run build` 等命令生成 `dist/` 目录。
- Asset Canister:将生成的 `dist/` 内容同步到ICP上的“Asset Canister”(执行同步命令)。
- Public URL:通过 `icp0.io`、`ic0.app` 等原始URL,或经由DNS的自定义域名,从世界各地访问。
实际案例:Sho T官网
Sho T的官方网站是用Astro构建的现代静态网站。代码仓库名为 `Showying/sho-web`,其构建产物 `dist/` 被直接同步到ICP的Asset Canister。
包括你正在浏览的这个落地页(`/lp/icp-sovereign/`)在内,一切都是运行在去中心化网络上的真实演示。
所需的构成要素
要在ICP上发布,只需在普通的Web开发环境中稍作补充。
- 前端环境:Node.js / npm,以及Astro、React、Vue、Vite等你喜欢的框架。
- ICP工具:`icp-cli`(或dfx)、`ic-wasm` 等CLI。
- 配置文件:描述资源同步目标的 `icp.yaml`(或 `dfx.json`)。
- 加密资产与密钥:用于部署签名的主网Identity(私钥文件),以及作为部署费用的Cycles。
icp.yaml的思路
`icp.yaml` 是ICP部署中的核心配置文件。它定义了这样一个流程:执行 `npm run build` 生成 `dist/`,再把 `dist/` 中的静态文件同步到Asset Canister。不是直接同步原始的 `public/` 目录,而是将Astro等工具构建完成后的产物(`dist/` 等)指定为上传对象。
部署步骤
npm run dev
# 2. 生成静态构建产物
npm run build
# 3. 在本地确认构建产物的显示
npm run preview
# 4. 确认Identity与Cycles后,部署到ICP主网
icp deploy --network mainnet
不要在ICP上才第一次确认显示效果,而是在本地充分确认完成之后再进行部署。
不同对象有何不同
网站、落地页、Web应用、3D网站、Web游戏——上传到ICP的基本步骤(使用Asset Canister)都是一样的。但根据内容的性质,需要注意的要点各有不同。
- 网站·落地页:关键在于自定义域名、canonical、OGP图片等SEO设置。
- Web应用·PWA:与API的集成、客户端的状态管理与路由。
- 3D网站(three.js):压缩3D模型等的体积,加快并优化加载速度。
- Web游戏:资源分发、多人游戏时的无服务器通信、存档数据的保存。
安全与运营规则
在ICP上,你用自己的密钥拥有并管理Web资产。因此,以下机密信息绝对不能公开、泄露或记录。
- 绝对不能泄露的信息:seed phrase(助记词)、recovery phrase(恢复短语)、PEM私钥文件、identity私钥、`.env` 中的API密钥等机密数据、钱包私钥。
- 可以公开或记录的信息:identity的注册名(本地名称)、Principal ID、Account ID、Canister ID、公开URL、执行过的CLI命令等。
使用自定义域名
一开始就设置自定义域名容易混乱,因此先使用 `*.icp0.io` 等原始Canister URL进行部署与确认。
之后,再推进正式公开的流程:放置 `.well-known/ic-domains` 文件、设置DNS记录、配置Asset Canister(`.ic-assets.json5`),以及修改canonical、OGP、sitemap等。
故障排查
如果在部署或访问时出现问题,请回到以下基本项目进行确认。
- Build错误:本地构建(`npm run build`)是否真的正常通过。
- 同步目录:是否混淆了 `public` 与构建输出 `dist`;`icp.yaml` 中的同步源设置是否正确。
- 权限·费用不足:identity私钥的指定是否正确,Canister中作为部署费用的Cycles是否充足。
- 资源路径错误:图片、3D模型等的路径问题,部署前用 `npm run preview` 确认能否正常显示。
下一步
在第1阶段,ICP只是作为替代Vercel或Wix的静态托管来使用。
从这里进入第2阶段,可以引入Backend Canister、调用外部API的HTTPS Outcalls、与其他链相互读写的Chain Fusion、实现链上加密的vetKeys、保护机密信息的SEV Subnet,以及与AI智能体、CLI / ICP Skills的集成,将其扩展为自主运行的强大去中心化应用平台。
更远的世界观
再往前,将连接到本地AI、机密计算(Confidential Computing)、SEV Subnet、主权(Sovereign)的确立、AI智能体之间的交易(智能体商务)、价值互联网、多链整合、机器经济,以及宇宙与去中心化基础设施。
本地AI与去中心化云并不对立,而是将成为同时实现“个人主权”与“可信的相互连接”的未来基础设施。
总结
首先,把网站 / 落地页 / 应用 / 3D / 游戏发布到ICP吧。第1阶段把它当作便捷的Vercel替代方案,之后再逐步扩展到后端、加密与AI智能体。随着AI、CLI与ICP Skills的发展,不仅是开发者,每个人都将能够拥有自主的Web。
“像本地文件一样由自己持有,像云一样向世界开放,并作为Canister自主运行。”
常见问题
可以上传到ICP的内容有哪些?
凡是build后能在浏览器中运行的公开资产都可以,例如网站、落地页、Web应用、PWA、使用three.js / WebGL的3D网站、Web游戏,以及包含图片、音频、视频的静态内容。
与Vercel或AWS有什么不同?
Vercel和AWS同样可以实现网站、API、外部连接与AI集成。区别不在于功能,而在于Web资产的存放位置与所有权的重心。在ICP上,网站和应用可以作为由自己的身份管理的Canister上的实体来发布。
需要从一开始就开发去中心化应用吗?
不需要。可以先从静态发布开始,把 `npm run build` 生成的 `dist/` 部署到Asset Canister即可。
ICP便宜吗?
根据对比资料的估算,Wix等SaaS每年约30,360日元,而ICP + 域名每年约4,233日元,差额约26,127日元,便宜约86%。不过,其本质不只是便宜,而在于它是一个可以自己拥有的发布平台。
这个Sho T官方网站也发布在ICP上吗?
是的。这个Sho T官方网站本身就发布在ICP去中心化云上。本页面(`/lp/icp-sovereign/`)既是说明资料,也是发布在ICP上的实际演示。
下一步是什么?
组合Backend Canister、HTTPS outcall、Chain Fusion、vetKeys、SEV Subnet、AI智能体、ICP Skills、CLI等,从托管扩展为去中心化应用平台。
夺回Web资产的“所有权”
摆脱对大型云的依赖,迈向与你的身份直接关联的去中心化网络上的资产。不妨先从静态发布开始?