熟悉Web开发流程的同学应该都清楚,开发一个完整的服务器后端,无非要弄清楚几样东西。
1.请求如何接入?是http,restful, 还是 rpc?
2.应用逻辑写在哪里,怎么写
3.数据如何存储?用什么数据库?
4.当前服务如何调用其它服务(高级,异步)
将此模式应用到 Substrate 上,官方给出了如下结构图。在这个图中,Off-chain workers 起到了非常重要的作用。
笔者通过对 substrate 的深度分析,在这里给出上图的一个细化图,基于此图,采用 substrate 进行 Web3.0 的开发就就豁然开朗了。
区块链应用开发更加复杂一些,因为涉及到链上链下不同部分的操作。对上图 Substrate Application Structure 的解释如下:
1.外界使用 Json RPC 与 substrate node 进行交互
2.(几乎)所有对链上状态的修改,都应该使用 transaction 提到到 Runtime logic 中进行处理
3.Runtime logic 对 Runtime 的 Storage 具有完全的读写能力。对 Offchain Storag