我们在使用智能合约的时候,一般是把它当前去中心、减少信任依赖的后端存在。
如果没有特殊后端功能要求,一个 DApp 只需要前端驱动 web3js 就可以实现了。
可以看到,现在前端部分依旧是一个中心化的客户端。思路是把整个前端 dist 上传到 ipfs 获取项目的 hash 访问路径。
这一步不需要在智能合约上做任何操作。
如果想把资源通过前端交互动态上传到 ipfs,也只需要前端加上与 ipfs 交互的逻辑,执行存储操作。
如果还要刷新后依旧展示,即保留上传后的资源 ipfs hash 值,那么合约需要支持 set 这些 hash 值到合约的状态上。