区块链游戏FOMO3D智能合约核心分析

本文详细分析了区块链游戏FOMO3D的智能合约,通过简化版合约TinyF3D揭示其核心机制。重点讲解了决定购买keys数量的递增函数以及游戏流程中的关键公式。作者还分享了自建的Python合约框架,并提供了开源链接。理解该函数是理解FOMO3D游戏核心逻辑的关键,其余部分则是流程控制和合约实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写图片描述
最近做一个区块链的项目,需要彻底分析FOMO3D的智能合约,顺便熟悉一下区块链的开发流程。
这里写图片描述
首先为了能跑FOMO3D的智能合约我尝试了truffle+galanche,对我来说不太理想,我就自己用python+solc做了一个类似的框架。

可以编译部署发布合约,自动生成前端的JS合约对象以及跑一个aiohttp的测试环境,该环境已经开源https://github.com/bluehook/pyw3c.git,
这里写图片描述
示例就是全套FOMO3D的智能合约,在分析的过程中我又重新写了一遍FOMO3D也放在示例合约中叫TinyF3D,把所有功能都整合在这一个合约里面,所有FOMO3D实现的功能,Tiny3D都有实现,并且函数名称也保持一致,可以复制到remix里面部署方便测试,交流可加微信号:bluehook。
这里写图片描述
网上已经有一些FOMO3D的分析文章,我尽量写一些没有分析到的部分。

从另外一个怪异的角度介绍一下FOMO3D这个项目,这个项目的核心是一个函数,这个函数的公式是这样f(x)=sqrt(to

本地部署指南 部署合约: 一共部署了3个合约, 其中3个收款地址被砍掉(改成了部署者的地址), p3d 也砍掉了 3个合约 我偷懒没有把合约地址写死, 用的是后续的 set 方法, 所以如果 truffle migrate 最后那段报错了, 可能没有 set 成功, 需要用其他方式调用( truffle console, 或者 remix 等) 合约部署完, 如无报错, 直接复制走 FoMo3Dlong 的地址就行了 npm install ganache-cli -g ganache-cli -l 471238800 -g 1 # 开启 testrpc 同时设定 gasLimit 和 gasPrice truffle compile truffle migrate --reset # 执行后, 复制 FoMo3Dlong: 后跟的地址 #直接输出最终合约地址, 将不会打印编译过程 truffle migrate --reset | grep 'FoMo3Dlong: 0x' | awk '{ print $2 }' 推荐做法 truffle migrate --reset > migrate.log cat migrate.log # 查看有无错误, 如合约均部署成功,但最后报错, 可能有几个赋值方法没有执行(我部署到 kovan 时就发生了这事,可以参考 migrations/2_deploy_fomo3d.js逻辑手动执行) cat migrate.log | grep 'FoMo3Dlong: 0x' | awk '{ print $2 }' 部署前端: 前端没有太多需要改的地方, 若使用英文版, 可参考下面命令行修改地址方式 若选择 bundle-cn.js 这个中文版, 则自己找到要修改的地方, 手动修改也行的 顺便说下 cn 里面还是 kovan测试网络的配置, 如需使用可把 bundle.js 里面的本地配置拷贝下 cd src/js sed -i "" 's/{{address}}/0x00/g' bundle.js # 非 mac 去除 -i 后的 "" cd ../../ npm install & npm run start 游戏激活(不激活就处于 ICO 中? 不懂...) 刚想到一个不一定靠谱的简单方式, 把 migrations 下那个 js 里面加一个 activate 的方法调用 npm install remix-ide -g # 安装个本地的 remix-ide remix-ide #注意此时处于项目根目录 OK, 浏览器访问 remix-ide, 点击左上角第6个图标( Connect to localhost ), 弹框继续 connect 左边多出 localhost, 点击 contracts 下的 FoMo3Dlong.sol 文件, ctrl + s , 触发编译 , 下一步 点击右边的上边的 Run, 选择 web3 provider, 如端口不变, 一路 next, ok, 往下看, 有个选择 合约的 select, 选中 FoMo3Dlong, 然后在 输入框中输入 migrate 得到的合约地址, 然后点击 At Address 最后点下 合约的 activate 方法 合约源码浅度分析 Fomo3D 合约源码分析 主要是对源码所有合约整理归类, 解释下合约都有啥作用, 希望对刚接触 fomo3d, 想学习 fomo3d 的有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值