授权
授权对一个世界至关重要,就像授权对任何智能合约都至关重要一样。
正如World一章所讨论的,自治世界(AW)的功能是嵌套在公共区块链中的主权链。这些世界也对公众开放。这种结构允许任何人通过部署组件或系统来增强世界。然而,这种开放性也带来了安全方面的考虑。与以太坊类似,在系统中与组件的状态进行交互需要获得组件所有者的适当授权。
验证架构
每次在 System
中调用 set!
时,世界都会检查 System
是否拥有更新组件状态的授权。只有当System
拥有必要的授权时,set!
才会被执行。下图说明了授权架构。
提供授权
组件的部署者是其初始所有者。组件所有者可以授予别人
owner
和writer
角色。只有所有者才能授予系统writer
角色,使其可以更新组件。
sozo
提供了一个授权系统的便捷工具。
sozo auth writer Moves spawn
该命令将为 spawn
系统生成一个 writer
授权,以更新 Moves
组件。