Fomo3D源码解密:框架篇

FoMo3D迅速引爆,各路人马纷纷登场,我们抛开各种分析和解读,深入源码,直指本质。深入剖析背后的工作机制。

代码观感

网上已有人把FoMo3D散落在各处的合约源码做了搜集、分拆和整理,合并成一个工程,具体可见:

https://github.com/reedhong/fomo3d_clone

直接把工程clone下来,具体的合约代码在contracts/目录下。粗略一看有几个直接的观感:

1. 合约代码量大,复杂。是苑风见过的最复杂的合约代码了,总共4000行左右。具体可以见后面的框架分析。

2. 大量用了Interface的机制去拆解合约。这样做可以很方便进行某些合约逻辑的更新,对于项目方来讲,有了很大的灵活性。当然,也留下不少搞事情的后门。

3. 代码质量不错。随处可见的ASCII码的注释风格,一看就是老司机。这种好东西,最值得深入分析,肯定收获良多

框架分析

我们先看整体的代码结构,无图无真相,上一个简单的UML示意图:

Fomo3D源码解密:框架篇_第1张图片
image

通过上图,我们可以分析出:

1. 整个FoMo3D涉及8个合约的部署。具体就是图中标注出颜色的合约。蓝色指的是能看到代码的合约。红色的合约暂时还没看到代码。

  1. Interface的大量使用,去拆解合约。通过传入合约地址的方式,实现合约的互调

3. FoMo3Dlong是主合约,玩家下注买key就是调用这个合约的接口操作。4. PlayBook主要负责玩家数据的管理,特别是推广员系统,主要在这里面

5. TeamJust用作合约的权限控制,类似于以太猫的CEO,COO,CFO。具体原理后续在展开

6. Divies负责跟以前P3D的合约通信,把部分游戏的收益,返给P3D的持有者。从这里也可以看出以太坊作为游戏平台的魅力所在,可以把不同游戏的数据天然地打通。游戏与游戏之间不是生灭关系,能相互促进。

解密暂时到这里,后续我们将深入代码细节,来剖析整个游戏的运作机制,敬请关注。我们有专门的群讨论区块链游戏开发,添加下面的微信,可入群。

Fomo3D源码解密:框架篇_第2张图片
image

你可能感兴趣的:(Fomo3D源码解密:框架篇)