System Contracts
CITA 链生成时,通过系统合约来生成创世块,并作为链的最基本配置。拥有权限的管理员可以发送交易修改创世块的部分配置,所以了解系统合约至关重要。 你可以在 /scripts/contracts/src
目录下查看所有的系统合约,当然,接下来我们会一一解释。
合约说明
节点管理系统合约
按照快速搭裢的步骤,生成的链默认包含四个节点。如果你需要增加或是删除节点的话,管理员可以通过发送交易来做自定义配置。
节点管理合约存放在/scripts/contracts/src/system/node_manager.sol
, 地址是 0xffffffffffffffffffffffffffffffffff020001
节点管理的相关描述及方法介绍见 node_manager
配额管理系统合约
和以太坊消耗 gas
不一样, CITA 中消耗 quota
, 我们把它称作 配额
,但是作用是类似的, 你可以把 quota
视为 CITA
的 gas
。 CITA 中关于配额,有两个限制 BQL(BlockQuotaLimit) 和 AQL(AccountQuotaLimit),分别表示区块的配额上限和用户配额上限。管理员可以通过发交易给 配额管理合约来做自定义修改。
配额管理合约存放在 /scripts/contracts/src/system/quota_manager.sol
, 地址是 0xffffffffffffffffffffffffffffffffff020003
配额管理的相关描述及方法介绍见 quota_manager
配额价格管理系统合约
通过上边的讲述,我们已经清楚的知道配额的含义。CITA 类似于高速行驶的汽车,那么 quota
就是消耗的汽油,当然 quota
也是有价格的,我们用 quota_price
来表示它。幸运的是,管理员可以通过发送交易给配额价格管理系统合约来做自定义修改。
配额管理合约存放在 /scripts/contracts/src/system/price_management.sol
, 地址是 0xffffffffffffffffffffffffffffffffff020010
配额价格管理的相关描述及方法介绍见 price_manager
权限管理系统合约
CITA 是一个面向企业级应用的区块链平台,严格的权限管理必不可少。我们提供了完整的权限管理接口,覆盖了企业级应用最常见的权限场景。
权限管理合约存放在 /scripts/contracts/src/system/permission_management.sol
, 地址是 0xffffffffffffffffffffffffffffffffff020004
权限管理的相关描述及方法介绍见 permission_management
用户管理系统合约
CITA 为了方便对用户的管理, 我们采用基于组的管理方式,管理员可以选择对组,对组内用户进行增删改查的灵活管理。
组管理合约存放在 /scripts/contracts/src/user_management/group_management.sol
, 地址是 0xffffffffffffffffffffffffffffffffff02000a
组用户管理合约存放在 /scripts/contracts/src/user_management/group.sol
, 地址是 0xffffffffffffffffffffffffffffffffff020009
用户管理的相关描述及方法介绍见 user_manager
批量转发系统合约
CITA 支持批量调用合约。
批量转发合约存放在 /scripts/contracts/src/system/batch-tx.sol
, 地址是 0xffffffffffffffffffffffffffffffffff02000e
权限管理的相关描述及方法介绍见 batch-tx
紧急制动系统合约
在极端情况下,管理员可以通过发送交易到紧急制动系统合约,开启紧急制动模式,只接受管理员发送的交易,屏蔽掉其他所有交易。
紧急制动合约存放在 /scripts/contracts/src/system/emergency-brake.sol
, 地址是 0xffffffffffffffffffffffffffffffffff02000f
紧急制动相关描述及方法介绍见 emergency-brake 紧急制动相关描述及方法介绍见 emergency-brake
协议号管理系统合约
自 CITA 诞生以来,我们致力于研发成熟稳定,功能健全的区块链平台。CITA 的性能,功能上依旧在快速迭代,考虑到未来可能存在的兼容性问题,减少对现有客户的影响,我们增加了协议号管理系统合约。
协议号管理系统合约存放在 /scripts/contracts/src/system/version_manager.sol
, 地址是 0xffffffffffffffffffffffffffffffffff020011
协议号管理的相关描述及方法介绍见 version_manager
合约函数签名
在 test-chain/template/contracts/docs
目录(test-chain
为默认链名称)提供了所有系统合约函数签名,感兴趣的朋友可以自行查阅。