- 根据需求,选择合适的DOB协议(DOB0/DOB1)
- Pattern 应保持简单
- 使用有意义的特征名称(traitName),清晰描述属性
- 仔细设计 DNA 的生成规则(DNA的长度,每一位是什么含义)
- 详细记录 Pattern 的结构,便于未来参考
- 根据具体需求使用适当的patternType(options/range/rawNumber/rawString)
- 处理特征生成中的边缘情况
- 根据渲染需求选择合适的解码器
- 优先使用标准解码器(DOB0/DOB1),以提高兼容性
- 若标准解码器(DOB0/DOB1)无法实现渲染需求,可自行开发并部署自定义解码器,并将解码器的部署信息提交至https://github.com/sporeprotocol/dob-decoder-standalone-server,以便decoder server 识别
- 测试解码器在不同平台(JoyID、Omiga 等)上的兼容性
- 对于媒体资源(如图片等),优先使用 BTCFS 而非普通链接,以增强去中心化程度
- 使用 IPFS 时,确保内容已正确固定(pinned)并备份
- BTCFS 需考虑内容大小限制及 Gas 成本
- 根据需求选择合适的内容格式(PNG/SVG)
这一阶段是快速验证 Cluster 设计的合理性,以及 DOB 渲染是否符合预期,兼容性是否良好。我们建议在这个阶段不断地优化和调整 Cluster 的参数,直到渲染效果满意为止。
- 可先用普通链接测渲染效果
- 渲染效果验证通过后,媒体资源定稿时,再将其上链 在可行性验证阶段,媒体资源可能随时需要根据测试情况来调整,所以无需将媒体资源上链,可考虑使用普通链接,待渲染效果验证通过后,媒体资源定稿时,再将其上链。在使用普通链接时,需要确保图片所在的服务器正确地支持 CORS,以便图片正常显示。
在 dob-cookbook 里的示例中,找到一个与你的需求相近的示例代码,将代码复制并粘贴到 CKB 在线编辑器(CCC Playground),修改相应的参数,然后运行。
- 确保 CCC Playground 左下角的运行环境是
Testnet(测试网络)
。 - 打开 CCC Playground 右边的 Console,查看输出结果。
- 依次点击 Console 中输出的链接,查看交易详情,观察渲染效果。
- 也可以在 https://dob-render.vercel.app/ 上查看 DOB 的渲染效果,甚至可以通过编辑 dob decode response 的 json,来微调 DOB 的参数,以调整到预期的渲染效果,待渲染效果符合预期,则将参数同步更新到 cluster 的pattern 配置项中。
- 确保你的 DOB 渲染效果符合预期,且兼容性良好,再进行下一步。
一旦完成 MVP 的验证,便可以开始进行工程化集成了。在这个过程中,需详细处理下列问题:
- 精心设计 DNA 的生成规则
- 编写 DNA 的验证单元测试,以确保 DNA 中相应字段的分布符合预期
- Cluster Description 应包含项目介绍,以便于用户了解项目背景
- 验证 Traits 生成和分布的正确性
- Traits 的边缘情况的处理
- 生产环境用户如何 mint DOB?测试环境应严格按生产环境的方式进行
- 注意生产环境中潜在的并发问题,确保并发 mint 时,DNA、DOB 的属性分布符合预期(而非相同)
- 理想的情况是用户支付费用的交易上链后,便给用户 mint DOB
- 也可以由后端预先 mint DOB,然后定时批量地分发给用户,但由于不具有实时性,用户体验较差
- 如果支持用户使用多币种来支付,则需额外的兑换服务
- 在不同平台上测试渲染效果
- 优化图像质量和大小
- 所有媒体资源,于本阶段定稿
- 完成基本的 UI 测试
- 完成基本的功能测试
- 完成必要的非功能测试
在完成测试环境的验证后,应用正式上线前,需额外提供一个准生产环境,确保结果符合预期之后,再向用户开放生产环境。
- 需提前至少一周以上将媒体资源上链
- 媒体资源上链后,更新测试环境的 cluster 里的媒体信息,重新 createCluster,进行相关的验证,验证通过后,再准备准生产环境的 Cluster。
- 创建测试用的 Cluster,确保 Cluster 中的媒体资源能够在主网上正常渲染
- 为了避免误导用户,建议该 Cluster 的名字要特殊化,比如前面加上
⚠️ 标志,并避免与项目名称一致 - 其它参数尽量与最终生产版本保持一致,以便测试渲染结果
- 将应用部署到主网,但不开放给普通用户访问,仅供内部测试使用
- 注意应用里的环境变量,确保相应的配置均已正确,避免在测试环境使用到主网的配置、主网上用到测试环境的配置
- 验证连接钱包,查看连接后的地址是否是主网的钱包地址
- 验证其他功能,确保所有的交易均运行在主网
若有条件,建议准备一份上线文档,供相关人员查阅和校对。
- 建立必要的应急预案文档
- 尽量选择在周中(周二-周四)进行上线
- 观察平台报错日志,并及时处理
- 提供定时的服务健康性检查,在服务异常时下发 push 通知给相关人员
- 建立必要的反馈渠道
- 积极响应和解决用户反馈的问题
- 若遇紧急事件,应及时采取措施,并第一时间告知用户