🔧 产品与技术
正在运行的东西证明一切。
大多数代币白皮书描述的是尚不存在的软件。本章描述的是今天就能下载的软件。三款原生 iOS 应用已发布并在 App Store 上线,网页平台已在生产环境运行,Solana 代币服务已经在主网上铸造真实的 NFT、验证真实的支付。将治理代币长期经济的两份智能合约代码已完成,正在推进分阶段审计——我们就说到这里,一字不多。
全家福一览
每个客户端——无论 iOS 还是网页——都只与一个 Django 后端对话,而只有后端与 Solana 对话。应用绝不直接触碰链:规则永远是 应用 → Django → Solana。
⛩️ Matsuri——消费者应用
面向来宾与居民的主应用:预订、支付、购物、众筹、直播、挖矿,以及完整的离线灾害生命线——集于一处,对访客模式友好。
应用围绕五个标签页组织——活动、商店、餐厅、众筹、我的页面——直播、搜索、钱包、NFT 和灾害中心随处可达。每个界面都有自己的章节;下表只是地图。
| 界面 | 一句话概括 |
|---|---|
| 活动与体验 | 预订游览、活动、聚会和课程;QR 门票与工作人员检票——文化体验 |
| 餐厅 | 带饮食需求筛选的探索加真实订座引擎——餐厅 |
| 商店 | KYC 认证卖家市集,托管订单与 NFT 商品——商店 |
| 众筹 | All-or-Nothing 模式的活动,分级 MTC 返现——众筹 |
| 直播 | 带聊天、掉落和五渠道打赏的直播——直播 |
| 挖矿、钱包与 NFT | 参拝マイニング(sanpai mining——参拜挖矿)、AR 御神签、MTC 钱包、NFT 画廊——挖矿 |
| 灾害生命线 | 离线避难所地图、网状网络消息、SOS 信标——灾害生命线 |
| 支付 | Stripe(银行卡、Apple Pay)、Solana Pay / Phantom、MTC 余额——价格永远在服务器端重新计算 |
在功能之外,应用还深度拥抱 iOS 平台:主屏幕小组件、Siri App Intents、Spotlight 索引、订单/众筹/直播的 Live Activities,以及按用户在服务器端本地化的推送通知。
灾害生命线的幕后
灾害生命线一章讲它做什么;这里讲为什么在一切都失效时它仍然可用。设计约束粗暴而简单:每一个生命线工具都必须完全离线可用,且无需登录。
覆盖全国的避难所数据集直接随应用二进制包发布——避难所地图、距离列表和大圆方位避难所罗盘完全不需要网络。5 种语言的安全指南也以同样方式内置。
蜂窝网络瘫痪时,手机自身成为网络:离线点对点网状网络公告板通过多跳中继在设备之间逐台传递帖子,每条消息都由其源设备进行密码学签名——所以一条跳了五跳的帖子无法在途中被伪造。
DisasterWatchdog 服务在启动和回到前台时轮询 JMA(日本气象厅)公开数据源;重大事件会自动弹出全屏灾害中心——访客与登录用户一视同仁。
「我很安全」通过任何幸存的渠道发出:网状网络、SMS、系统分享面板,或 web171——日本官方灾害留言板。
🛡️ GCF Admin——运营者应用
面向 GCF(Global Community Friends)成员与工作人员的运营应用:网页管理门户(gcf.works)能做的一切,都装进了手机。
| 界面 | 一句话概括 |
|---|---|
| 仪表盘 | KPI 卡片、收入图表、快捷操作 |
| 成员 | 成员列表、详情与层级管理——GCF |
| 收入 | 佣金追踪与结算管理 |
| 内容 | 创建并发布活动、文章、播客和视频 |
| 导游席位 | 发布并监控导游市场——文化体验 |
| 圣地与信标 | 站点管理与赞助信标配置——挖矿 |
| 挖矿配置 | 以基点计的御神签概率、实时调整的动态倍率——挖矿 |
| 推荐 | 品牌化 QR 码生成与推荐追踪 |
挖矿经济正是在这款应用里被掌舵的:把访客推向人口稀少地区的动态倍率(0.01×–50×)、御神签概率表,以及由市町村和商户出资的赞助信标——全部在这里运营,而非写死在代码里。
📰 J-Times——媒体应用
「日本を、世界へ / 把日本带向世界。」文化媒体应用:文章、播客与视频——在这里,阅读本身就能赚取 MTC。
| 界面 | 一句话概括 |
|---|---|
| 文章 | 带阅读进度的富文本阅读器;新闻编辑部技术栈包括 AI 文章生成与 TTS——媒体 |
| 播客 | 6 个系列,包括 Japan Decoded 和 Tech Japan Forward |
| 视频 | 系列节目加短视频 |
| 媒体挖矿 | 阅读、收听、观看和测验都能赚取 MTC——每日上限 50 MTC——媒体 |
| 方案 | Free / Premium / Pro 读者层级;高级单品经 Stripe 单次销售 |
互动按用户、按内容追踪进度,奖励费率可由管理员调节,两次奖励之间有 5 分钟冷却,并设 50 MTC 每日上限——奖励注意力,却不沦为水龙头。
📦 一个共享内核:JCCore
三款应用全部构建在共享 Swift 包 JCCore 之上——高风险的底层管道只实现一次,而不是三份各自漂移的副本。
| 模块 | 职责 |
|---|---|
| JCAuth | 基于 Keychain 的令牌存储、会话管理、生物识别认证(Face ID / Touch ID) |
| JCNetworking | 类型安全的 API 客户端、WebSocket 支持、自动 snake_case 线协议转换 |
| JCModels | 共享数据模型——用户、代币、分页、会员方案 |
| JCDesign | 主题协议与设计令牌(间距、圆角) |
| JCUtilities | 日期与字符串工具 |
用户能感知到的一个结果:权威的 4 级会员阶梯(等级体系)在每款应用里含义完全一致,因为它由同一份代码解码。
🖥️ 后端平台
后端是一个单体 Django 应用,运转着整个经济——预订、托管、众筹账本、直播、挖矿,以及每一日元和每一枚 MTC 的流动。
- 框架
- Django 4.2 + Django REST Framework
- 异步任务
- Celery 任务队列处理后台作业
- 实时通信
- Django Channels WebSocket——聊天、直播互动、在线状态
- 数据库
- PostgreSQL
- 直播视频
- LiveKit,自托管于 Hetzner——不依赖第三方流媒体服务
- 法币轨道
- Stripe 处理银行卡与 Apple Pay;Stripe Connect 负责卖家入驻与结算
- 支付安全
- 每一个改变状态的支付调用都必须携带幂等键
- 定价
- 价格永远在服务器端重新计算——客户端永远无法自报价格
- 链访问
- 应用 → Django → Solana,没有例外
加密支付流程展示了这条架构规则的实际运作。应用从不自行构造或验证 Solana 交易——它把用户交给 Phantom,把证明交给 Django。
如果用户在支付中途被打断——来电、没电、断网——应用会在下次启动时续接待完成的 Phantom 支付,而幂等键保证预订恰好结算一次。
🔏 代币服务——按需铸造
一套专用的三层技术栈(已在主网上线)处理所有真正触碰 Solana 的事务:
- 铸造 API(Django + DRF + Celery)——由 API 密钥鉴权的端点,供 Matsuri、GCF 和 J-Times 平台调用,用于自动发行 NFT/SBT、代币操作和链上元数据管理。
- Solana 签名器(Node.js + Fastify)——唯一持有签名能力的服务:SPL 代币的创建与转账、权限放弃、元数据更新、SBT 铸造,以及 Metaplex Core Collection 管理,并针对索引器延迟具备重试/退避容错。
- 管理面板(Next.js)——币种与元数据管理:用于永久元数据托管的 Arweave 上传、创作者信息与验证标记。
这套栈铸造着平台的真实资产:活动出席 NFT 掉落、御朱印(goshuin——寺社朱印)御神签 NFT,以及 GCF Platinum SBT 证书——全部是按 Collection 分组的 Metaplex Core 资产,Phantom 等钱包能正确展示,且均可在 Solscan 上验证。
🔐 安全与隐私
认证令牌加密存放于 iOS Keychain;Face ID / Touch ID 把守敏感操作。
全程 HTTPS,应用与后端之间启用证书固定(certificate pinning)。
平台从不持有用户的私钥。签名委托给 Phantom——应用递交请求,钱包签名,后端在链上验证。
把钱包绑定到账户需要对服务器新签发的挑战进行签名,因此被截获的签名无法被重放来冒领他人钱包。
参拜挖矿签到强制 200 米地理围栏、GPS 精度与邻近性检查,以及每人每站点每天一次的限制——瞬移的机器人什么也赚不到。
MTC 余额存放于经审计的只追加账本;提现到自托管钱包须通过限额、冷却时间与防欺诈筛查。
✅ 工程质量
Rust 合约对自己的要求比应用更严:零 clippy 警告、生产代码零 unwrap 或 panic,单元测试之外还有基于属性的测试——因为合约代码一旦部署,就无法在下周二打补丁。
⚖️ 智能合约——开源设计
今天在链上的:MTC SPL 代币(9 亿枚固定,铸造与冻结权限已放弃)、5.5 亿 MTC 的 Streamflow 锁仓(悬崖解锁 2027-06-01)、初始 Raydium MTC/SOL 流动性池,以及生产应用中的 Solana Pay / Phantom 支付验证。除此之外,没有了。
下方的程序代码已完成,且尚未部署到任何集群。安全工作以与 Hashlock 的分阶段审计推进(2026 年 4 月于 TEAMZ Summit Tokyo 启动):Phase 1 覆盖 matsuri-buyback——提交包已完成,启动目标 2026 年 8 月,发现报告 9 月,最终报告 10 月,主网部署目标为 DEX 上市之后的 2026 年 10–12 月。Phase 1.5 覆盖 matsuri-vesting 加 matsuri-distribution,定于 2027 年第一季度,在 2027-06-01 的 Grand Unlock 上线。我们不会把其中任何一项描述为「已通过审计」——审计准备已完成,分阶段审计正在进行中。
所有合约代码均已开源:github.com/Cootakahashi/matsuri-contracts。安全建立在可见的设计之上,而非隐匿。目标架构:
matsuri-buyback——收入入口
把回购承诺——Matsuri 总部销售额的 20% 与 GCF 会员费的 25%——转化为链上 MTC 需求的程序。它的决定性属性:它是一条传送带,而不是一个金库。
- 职责
- 将收入原子化地兑换为 MTC 并转发——接受白名单代币、兑换、转发
- 兑换路由
- 通过 CPI 调用 Jupiter v6,Jupiter 程序 id 固定且不可变
- 接受的代币
- 上线时为 MTC、USDC、SOL——白名单由权限方管理
- 滑点防御
- 三层:运行时 bps,套在初始化时设定的不可变上限内,再套在编译期 10% 的硬顶内
- 时间锁
- 接收方与权限方的变更走 提议/执行/取消 流程,限定 24 小时至 30 天
- 从不持有余额
- 每次兑换后强制执行零余额后置条件——交易之间没有任何东西可偷
- 规模与测试
- 1,797 行代码,17 个测试(13 单元 + 4 属性)
- 状态
- 代码已完成,Hashlock Phase 1 审计目标——未部署
在 Phase 1 中,转发接收方是一个 Squads 多签;在 Phase 2 中,它会变为一个把收入分流到流动性注入和生态资金池的 Buyback Splitter。
matsuri-vesting——一个金库、一个接收方、一座时钟
执行 Grand Unlock 时间表的程序。它被刻意设计得很无聊:没有矿工、没有打分、没有认领——只有时钟上的算术。
- 设计
- 一个金库、一个受时间锁保护的接收方、一座时钟
- 资金池
- 5.5 亿 MTC,于 2027-06-01 从 Streamflow 悬崖解锁到达
- 周期
- 730 天(2 年)为一周期;每周期释放剩余池的 50%
- 释放路径
- advance_epoch_and_release 是无需许可的摇柄——任何人都可以触发到期释放
- 不可变性
- 减半系数、周期长度和总池量在初始化时锁定,永远无法更改
- 规模与测试
- 1,629 行代码,26 个测试(22 单元 + 4 属性)
- 状态
- 代码已完成,Phase 1.5 审计目标(2027 年第一季度)——未部署
Phase 2 设计参考
另有三个程序以公开设计参考的形式存在——为透明而发布、明确标注不用于部署,并计划在后续审计阶段中加固:
| 程序 | 设计意图 |
|---|---|
| matsuri-worship | 参拜路由引擎——挖矿中反过度旅游倍率的链上对应物 |
| matsuri-referral | 用于 En-Mining 的 縁(en——缘)推荐树——挖矿 |
| matsuri-distribution | 带按矿工打分的减半分发——正在打磨进入 Phase 1.5 审计范围 |
Phase 2 的分发路由器(把释放分流到参拜、推荐和通用资金池)与 Buyback Splitter 仍处于设计阶段。在每个程序通过其审计阶段之前,对应逻辑作为预言机在 Django 中以链下方式运行——同样的规则,分阶段升级为免信任执行。
共享设计原则
- 处处使用检查算术——没有未检查的数学运算,生产代码路径中零 unwrap 或 panic。
- 纯数学模块——奖励与释放计算被隔离在无副作用、被穷尽测试的
math模块中。 - 权力分立——权限方只能通过有界时间锁提议变更;暂停能让程序停机,却永远无法转移或没收资金。
- 不可变的经济参数——定义代币稀缺性的参数在初始化时锁定,这是刻意为之。
应用已经发布。后端正在运行。合约已经写完、测完,正排队接受审计。剩下的只是排期——而路线图将它逐日期铺开。