核心用法
Structs Diplomacy 是 Structs 区块链的权限与身份管理 CLI 技能,涵盖三大核心场景:
1. 对象级权限管理
通过 permission-grant-on-object、permission-revoke-on-object、permission-set-on-object 三条命令,对游戏内对象(如建筑、舰队)进行玩家授权。权限具有叠加性(grant 追加、set 全量替换),支持精细到操作类型的访问控制。
2. 地址级权限与账户管理
- 多地址绑定:
address-register允许单一玩家绑定多个链地址,需提交 pubkey 与签名证明 - 主地址切换:
player-update-primary-address可迁移默认操作地址 - 地址权限:独立于对象权限,通过
permission-*-on-address系列命令设置
3. 查询与验证
提供 permission-by-object、permission-by-player、address-all-by-player 等查询命令,支持权限审计与地址溯源。
---
显著优点
- 双层级权限模型:对象级 + 地址级分离,适配复杂联盟协作场景
- CLI 友好设计:所有交易命令统一
--前缀,规避带-的 Entity ID 被解析为 flag 的问题 - 链上可验证:地址注册强制密码学证明,杜绝身份伪造
- 细粒度撤销:支持按权限位逐项撤销,非全有或全无
潜在局限
- 学习曲线陡峭:需理解 Entity ID 格式、权限位掩码、证明签名流程
- 无批量操作:大规模权限调整需逐条执行,Gas 成本累积
- 依赖链上状态:对象失效或玩家不存在时错误提示滞后
适用人群
- 公会/联盟管理员需分配建筑操作权
- 多账号玩家整合地址身份
- 开发者调试跨玩家对象交互
常规风险
- 权限误授:grant 追加逻辑可能导致预期外的权限累积,建议变更前先用
set查看当前状态 - 地址证明泄露:注册时的 proof-signature 若被截获,可能被重放攻击(需确认链上 nonce 机制)
- 主地址丢失:更新 primary address 后旧地址仍保留独立权限,需手动清理
- Gas 设置:建议
--gas-adjustment 1.5应对权限交易可能的复杂度波动