QOSGroup/qos

eco refactor

Closed this issue · 2 comments

imuge commented

目前distribution、mint、stake相当一部分逻辑揉合在了eco下,不利于代码阅读和维护,建议去除eco目录,细分三大模块功能,循环引用问题通过接口实现方式解决

imuge commented

有一处问题:Context复制过程中,mapper A内部引用的mapper B不能正确初始化

imuge commented

所有模块:
module
├── approve     预授权
├── distribution     挖矿/奖励/交易费分配
├── gov     治理
├── guardian     系统用户
├── mint     通胀
├── params     系统参数
├── qcp     联盟链
├── qsc     代币
├── stake     验证节点/质押
├── transfer     转账
依赖关系:
params被其他模块依赖
mint依赖distribution
distribution依赖stake
stake涉及到与distribution交互的地方使用StakingHooks建立连接关系

单个模块组织结构:
gov/
├── client/     命令行
├── mapper/     存储操作
├── txs/
│ ├── txs.go     交易定义
│ ├── codec.go     amino
│ ├── ...
├── types/     结构定义
│ ├── genesis.go     genesis结构定义
│ ├── ...
├── genesis.go     genesis初始化/导出
├── abci.go     BeginBlocker/EndBlocker
├── alias.go     类型和方法别名
避免循环依赖,引用关系如下:
txs
├── mapper
├── types
mapper
├── types