先做这三件事:① 打开
环境自检 确认全绿;② 登录后台改掉默认密码;③ 按
123.html 把合约地址填进参数中心。做完这三步,系统就能跑起来了。
一、认识这套系统
大虎链是一套跑在 POL(Polygon)链上的 H5 收益 DApp,前后台都在同一台服务器上:
| H5 用户端 | http://45.153.129.24/ — 手机钱包浏览器打开 |
| 后台管理端 | http://45.153.129.24/admin/login/index — 电脑浏览器打开 |
| 环境自检 | /env-check.php — 检查服务器是否达标 |
| 本教程 | /guide.html |
| 密钥总览 | /123.html |
| 服务器 SSH | ssh root@45.153.129.24(密码见 123.html)—— 面板打不开时的万能入口 |
伪静态已启用。 本站点已套用 ThinkPHP 伪静态规则,全站使用 http://45.153.129.24/admin/login/index 这类干净地址。.env 中的 URL_ENTRY 保持为空即可。
二、第一步:检查服务器环境
2
看到「环境检查通过」的绿色横幅就说明服务器达标。若有红色项目,按页面提示处理(通常是扩展没装,在宝塔 → 软件商店 → PHP 8.2 → 安装扩展)。
3
重点确认三项:Redis 连接、MySQL 连接、数据表完整性。
三、第二步:登录后台上手
2
用默认账号 admin / admin888 登录。若开了图形验证码,按图输入即可。
3
立刻改密码(重要):宝塔面板 → 计划任务 → 添加 Shell 脚本,内容填 cd /www/wwwroot/45.153.129.24 && /www/server/php/82/bin/php think admin:reset admin 你的新密码,执行一次后删除该任务。
后台九个模块是干什么的
| 数据大盘 | 全网入单、收益、用户数一览,看清整体运营状况 |
| 参数配置 | 最常用。日化、递增、复投、职级、分红、复投比例全在这里改,改完立即生效 |
| 用户管理 | 查用户、看上下级关系、手工调账、改职级、封禁账号 |
| 订单管理 | 所有入单质押订单,可手工补单 |
| 收益流水 | 静态 / 动态 / 级差 / 分红逐笔明细,支持导出 Excel |
| 双池资金 | 共盈池与平衡池余额、解锁价格设置、发放记录 |
| 结算管理 | 手动触发每日结算、查看结算批次、重跑某一天 |
| 链上同步 | 合约地址配置、区块扫描、价格同步、链上链下对账 |
| 提现审核 | 用户提现申请的通过 / 驳回 |
| 数据统计 | 按日快照,做报表用 |
四、第三步:配置链上合约(不可跳过)
系统刚装好时合约地址是 0x000...000。此时链上同步会直接跳过(不会报错、不会写脏数据),但用户的入单也不会自动到账。这一步就是「用户在链上付了 POL,后台能不能自动开单」的总开关。
没有入单合约?先花 3 分钟部署一个
不需要会写代码,也不需要注册任何账号。打开
一键部署页面:
① 点「连接钱包」→ ② 核对收款地址和 7 个档位 → ③ 点「开始部署合约」→ 在钱包里点确认。
大约 10 秒完成,页面会显示合约地址、部署区块,并
自动写入下面的配置,你直接跳到第 6 步验证即可。
部署手续费约 0.002 POL(极低),钱包里留 1 POL 就够。私钥全程不离开你的手机/电脑。
收款地址一定要填对。用户入单的 POL 会实时转入这个地址,填错了钱就进错地方。建议填平台对公钱包,不要填交易所充值地址。
两个地址分别填什么(最常见的卡点)
| 收款地址 | 用户入单的 POL 会实时打进这个地址 —— 填你自己要收钱的那个钱包地址。打开 TP / OKX 钱包 App,点「收款 / 接收」,把那一串 0x 开头、共 42 位的地址复制过来即可。 不要填交易所的充值地址(比如 OKX 的「充值地址」)。交易所地址收到链上转账不会自动入账,钱会卡住。 |
| 管理员地址 | 只有这个地址能修改收款地址和入单档位,建议和收款地址填成同一个,也就是你自己的钱包。它动不了任何人的资金,只能改设置。 |
懒得复制粘贴?连上钱包后这两个框会自动填成你的钱包地址,「用我的钱包地址」按钮也能一键填入 —— 正常情况下你一个字都不用打。
点「连接钱包」没反应怎么办
99% 是因为当前浏览器里没有钱包。普通浏览器(微信、手机自带浏览器、电脑 Chrome)本身不带钱包功能,页面自然连不上 —— 不是页面坏了。
| 手机(推荐) | 复制 http://45.153.129.24/deploy.html,打开 TP 钱包 / OKX 钱包 / MetaMask App,进「发现」或「浏览器」入口,粘贴打开,再点「连接钱包」。 |
| MetaMask 手机版 | 页面顶部有「用 MetaMask 打开」按钮,点一下会直接跳进 App。 |
| 电脑 | 装一个 MetaMask 浏览器插件,装好后刷新页面再点连接。 |
现在页面顶部会直接显示红色提示告诉你这件事;点「连接钱包」也会弹出提示。如果连提示都看不到,那才是真的故障,把页面显示的文字发给技术排查。
动手前先确认两件事
| 合约已部署在 POL 主网 | 地址在链上能查到、有代码。还没部署就先部署,这一步无法跳过。 |
| 合约的事件签名要和系统一致 | 入单事件必须是 Deposit(address,uint256,uint8,address,uint256),入单函数是 deposit(uint256 amount, uint8 tier, address referrer)。签名不一致会出现「同步成功但扫到 0 条」,用户入单永远不到账。 |
操作步骤
1
后台左侧进入「链上同步」页面。顶部四个数字分别是:链上区块高度、同步游标、已入账交易、异常交易。
2
在「合约配置」卡片里填「入单合约地址」,0x 开头共 42 位十六进制。填错格式会直接提示,不会写入。
3
填「起始区块」= 合约部署所在的区块高度。两种填法:
① 点「自动探测部署区块」按钮,系统自动二分查找后填上(约 10~40 秒)。注意:这需要节点支持历史状态查询,公共免费节点经常限流,探测失败很正常,改用方法 ② 即可;
② 打开 polygonscan.com → 搜索合约地址 → 找到 Contract Creation 那一行点进去 → 交易详情里就能看到所在区块号,复制过来。
千万不要填 0:POL 主网已有九千多万个区块,从 0 开始扫要跑很久。
4
「单次扫描区块数」保持默认 2000(一次同步最多扫多少区块),然后点「保存配置」。
5
只有改过起始区块、且之前已经同步过一次的情况下,才需要点「重置游标」。原理:起始区块只在系统第一次为这个合约建立游标时生效,若不重置,新填的高度不会起作用。首次配置不用点。
6
点「立即同步链上事件」。成功会弹出「同步完成:起始区块 ~ 结束区块,新增 N 条」,下方「链上交易记录」表格出现扫到的入单事件。
7
点「执行对账」,比对链上事件总数与数据库订单数是否一致。
出问题对照表
| 「同步完成:xxx ~ xxx,新增 N 条」 | ✅ 正常,节点连得上、能扫区块 |
| 「未配置入单合约地址」 | 地址没保存成功,回第 2 步重填 |
| 「无法连接链上节点」 | 去「参数配置 → 基础配置 → 链上RPC」换一个节点(当前默认 https://polygon-bor-rpc.publicnode.com) |
| 同步成功但「新增 0 条」,而实际有人入过单 | 合约事件签名与系统不符,回上面核对合约代码 |
| 「异常交易」显示数字 | 把表格「状态」筛成「异常」,看「备注」列的原因 |
| 自动探测部署区块失败 | 正常现象(公共节点限流)。按第 3 步方法 ② 从 polygonscan 手动抄区块号 |
改过入单档位后,用户入单全部失败?
这是最容易踩、也最容易被误判成「合约坏了」的坑。
入单档位是写在链上合约里的(合约里的 tierAmount)。后台「参数配置 → 入单档位」只改页面显示,改不了合约。
两边一旦不一致(例如后台加了 1 POL 这一档,链上还是 100 POL 起步),用户选任何一档都会被合约直接拒绝 —— 钱包里只会弹一句「交易模拟失败,该交易在链上成功的可能性较低」,确认按钮变灰点不了。
这时候问题不在用户余额,也不是合约损坏,而是平台参数没同步到链上。
一键修好:打开
/deploy.html →
① 点「连接钱包」,连上
合约管理员钱包;
② 滚到「
第 4 步 · 同步链上档位」,页面会自动列出「链上当前档位 / 后台当前档位 / 合约管理员 / 是否一致」;
③ 看到红字「✗ 不一致」就点「
把后台档位同步到链上」,在钱包里确认(Gas 约 0.001 POL,几秒钟);
④ 页面变绿显示「✓ 一致,用户入单正常」就修好了,用户立刻能正常入单。
替代做法:把后台「入单档位」改回与链上一致(默认
100,200,500,1000,3000,5000,10000,同时把「最小入单额」
order.min_amount 改回
100),保存后点一次「刷新缓存」。两种做法二选一即可。
| 提前在哪看到不一致 | 「参数配置」页顶部、「链上同步」页的「入单档位比对」卡片,都会红字告警并给出修复入口 |
| 用户端会看到什么 | 入单页顶部出现黄色「⚠️ 入单档位正在同步,暂时无法入单」提示卡;就算直接点支付,也会看到中文原因,不再是一句「交易模拟失败」 |
| 谁能同步 | 只有合约的 owner 地址能改档位。部署时「管理员地址」填的是谁,就用那个钱包来点同步 |
| 档位能改成几个 | 1~20 个都行。记住:改完后台档位务必回来点一次「同步链上档位」,否则用户会立刻无法入单 |
最稳的验收方法:用小号钱包自己往合约入一单最小档 100 POL。几分钟内「链上交易记录」会出现这笔交易、状态变「已入账」,并自动生成对应订单;「我的」页面也能看到这单和首日收益。这一步过了,链上链路才算真正打通。
参数在哪改:合约地址在「参数配置 → 基础配置 → 入单合约地址」,起始区块、确认数、单次扫描区块数在「参数配置 → 链上同步」组。链上同步页的「合约配置」卡片改的是同一份数据,会一并写入并留下操作日志。
五、第四步:业务参数总览(全部可改,改完即生效)
进入「参数配置」页,下面是按需求说明书预置的默认值,运营中可随时微调:
| 入单档位 | 100 / 200 / 500 / 1000 / 3000 / 5000 / 10000 POL(固定 7 档) |
| 静态日化 | 默认 0.5%/日,可调区间 0.05% ~ 1.5%;支持「每日递增」按天数累加 |
| 共盈池 | 首日 10%,每日递增 0.05%;达到预设解锁价格时全网一次性解锁本息;保本兜底 |
| 平衡池 | 每笔入单的 2% 自动划入;周期结束后按入单额度加权,发放给最新入单的 300 人 |
| 动态见点奖 | 第 1 层 10%、第 2~10 层 5%、第 11~20 层 1%(共 20 层) |
| 职级级差 | V1 万→3% / V2 3万→6% / V3 5万→9% / V4 10万→12% / V5 30万→15% / V6 50万→18% / V7 100万→21% / V8 300万→27% / V9 500万→30% |
| 全网分红 | V5 分 5%、V6 分 2%、V7/V8/V9 各分 0.5%(基数 = 全网当日静态收益,加权平均) |
| 智能复投 | 领取比例 50%→复投 10%,60%→20%,每 +10% 复投同步 +10%(阈值与比例均可改,可整体关闭) |
规则类参数已改成表格编辑:动态见点奖层级、职级级差、全网分红、智能复投这 4 项本来是一串 JSON,现在是一条一行:直接填数字、下拉选职级即可,下面还有一行中文摘要(例如「当前配置:V5 · 5 级 瓜分 5%,V6 · 6 级 瓜分 2%」)让你当场核对。区间重叠、职级重复、比例超出范围会立刻红字拦住,保存时后端还会再校验一次,不会把参数改坏。
调参小技巧:改任何比例前,先在「收益流水」记下当日数值,改完第二天再对比一次,确认效果符合预期。所有参数都有操作日志,可在参数配置页的「变更记录」里查到是谁在什么时候改的。
六、第五步:设置定时任务(不设置 = 没有每日收益)
这是最容易漏、后果最严重的一步。每日结算、链上同步、价格更新全靠定时任务驱动。不配 = 用户看不到任何收益。
1
宝塔面板 → 计划任务 → 添加任务,类型选「Shell 脚本」。
2
按下面的表逐条添加(共 5 条),路径已经写好,直接复制。PHP 路径以面板实际版本为准(本机为 /www/server/php/82/bin/php)。
| 整站 404 | 地址漏了 /index.php 前缀,或 .env 里的 URL_ENTRY 与服务器伪静态配置不匹配 |
| 白屏 / 系统繁忙 | 多半是 Redis 或 MySQL 连不上。打开 /env-check.php 看红色项;再看 runtime/.log/ 最新日志 |
| 连不上数据库 | 确认 .env 的库名/用户/密码是否被改过;宝塔 → 数据库 → 确认 dahu123456 用户有该库权限 |
| 后台登录后跳回登录页 | Redis 会话失效。检查 Redis 是否在跑、.env 的 SESSION STORE 是否为 redis |
| 用户入单不到账 | ① 合约地址是否已配置?② 定时任务 chain:sync 是否在跑?③ 「链上同步」页点「同步」看是否报错 |
| 用户说入单报错、一堆英文 | 先让用户看入单页「钱包余额」那一行。入单是链上转账,钱包里的 POL 必须 ≥ 所选档位 + 少量 Gas;余额不足时页面会直接标红并给中文原因。合约已部署的前提下,绝大多数是用户钱包余额不够 |
| 没有每日收益 | 定时任务 think settle 没配或没跑成功。到「结算管理」手动跑一次看看报错信息 |
| 改了参数不生效 | 参数中心有缓存。参数配置页点「刷新缓存」即可 |
| 「KPI 风险」里的倒计时准不准 | 它是按最近 7 天的真实数据外推的现金流模型,不是预测。真实新入单增速一旦掉下来,倒计时会明显变短。趋势超过 ±50% 时会被截断,避免早期数据少把结果拉飞 |
|---|
| KPI 页面显示「尚未开始」 | 系统还没有入单,没有存量就没有生存线。第一笔入单到账(或跑一次链上同步)后会自动开始测算 |
|---|
| KPI 页面现金储备显示读取失败 | 链上节点没响应,读不到收款钱包余额。到「链上同步」页确认合约与 RPC 正常,或到「环境自检」看节点是否可用 |
|---|
| 正式上线要把合约管理员换成公司/运营钱包 | 不用重新部署合约。到 /deploy.html 的「第 5 步 · 上线前交接」:填新管理员地址 → 点「第一步:提名新管理员」(用现任管理员钱包确认)→ 换成新钱包连接本页 → 点「第二步:接管管理员权限」。两步式,中间填错可以随时撤销,不会丢权限。 注意:如果页面上显示「当前合约是旧版本,不支持交接」,说明这个合约是在加上交接功能之前部署的,需要用新版重新部署一次(第 2、3 步),部署时直接把管理员地址填成正式钱包即可 |
|---|
| 怎么改合约的收款地址 | 同样在 /deploy.html 的「第 5 步」,在「新的收款地址」里填新钱包 → 点「修改收款地址」→ 钱包确认。改完只影响之后的入单,历史订单不受影响 |
|---|
| 用户钱包里有钱,页面却显示「读取失败」/ 余额显示不出来 | 八成是平台连链上的通道(RPC 节点)失效了。到「系统设置 → 链上同步」看能否读到区块高度;读不到就换一个可用的 RPC 地址(.env 的 POL_RPC / POL_RPC_BACKUP),改完清一次参数缓存。公共节点会限流或停服,正式运营建议用自己的付费节点 |
|---|
| 换了入单合约地址后要检查什么 | ① 「链上同步」里填新合约地址,起始区块填合约部署时的高度(在 polygonscan 查创建交易);② 到 /deploy.html 第 4 步点「同步链上档位」,让链上合约的档位与后台一致,否则用户入单会被钱包拦成「交易模拟失败」;③ 回「订单管理」核对历史订单的合约地址是否需要归档 |
|---|
| 用户入单时钱包弹「交易模拟失败」 | 99% 是后台「入单档位」改过、但没同步到链上合约(合约只认自己的档位)。到 /deploy.html 的「第 4 步 · 同步链上档位」点一下即可,详见「四、第三步」里的专门小节 |