Skip to content

GRPC Manage

linj edited this page Nov 23, 2022 · 1 revision

Manage

[TOC]

manage 管理执行器,主要功能是动态地给其他执行器配置和调整参数值。如给token执行器增加黑名单,给game执行器设置最大的赌资等等。 所有修改都是通过指定的manager账户地址,发送交易去修改参数值。这样做可以避免系统因为修改参数值而导致硬分叉。

1 添加/删除一个token-finisher CreateTransaction

调用接口

rpc CreateTransaction(CreateTxIn) returns (UnsignTx) {}

参数:

message CreateTxIn {
    bytes  execer     = 1;
    string actionName = 2;
    bytes  payload    = 3;
}

message ModifyConfig {
    string key   = 1;
    string value = 2;
    string op    = 3;
    string addr  = 4;
}

参数说明:

Chain33.CreateTransaction结构按通用要求填写: execer,执行器名称,这里固定为manage actionName,操作名称,这里固定为Modify payload携带的内容格式如下:

参数 类型 说明
key string 目前支持token-finisher,token-blacklist
value string 对应地址,如: 1CbEVT9RnM5oZhWMj4fxUrJX94VtRotzvs
op string 操作方法,add 添加,delete 删除
addr string 可为空

返回数据:

message UnsignTx {
    bytes data = 1;
}

参数说明:

参数 类型 说明
data bytes 交易十六进制编码后的数据

2 查看finish apprv列表apprv列表 GetConfigItem

调用接口

rpc QueryChain(ChainExecutor) returns (Reply) {}

参数:

message ChainExecutor {
    string driver    = 1;
    string funcName  = 2;
    bytes  stateHash = 3;
    bytes  param     = 4;
    bytes  extra     = 5;
}
message ReqString {
    string data = 1;
}

参数说明:

参数 类型 是否必须 说明
driver bytes 执行器名称, 这里固定为 manage
funcName string 操作名称, 这里固定为 GetConfigItem
stateHash bytes 所有交易在对应的执行器执行后写入KVDB中重新计算得到的新state的哈希值
param bytes types.Encode(&ReqString)
extra bytes 扩展字段,用于额外的用途
data string 具体数据,这里是token-finisher. 指定查询的是 finish apprv列表

返回数据:

message ReplyConfig {
    string key   = 1;
    string value = 2;
}

参数说明:

参数 类型 说明
key string 配置项的标识符
value string 配置项的值, 这里是对应地址列表
Clone this wiki locally