接口列表¶
标签:c-sdk API
基本操作¶
bcos_sdk_create¶
原型:
void* bcos_sdk_create(struct bcos_sdk_c_config* config)功能: 创建
sdk对象指针参数:
config: 配置对象, 参考配置对象
返回值:
返回
sdk指针, 失败返回NULL,可以使用bcos_sdk_get_last_error获取错误信息, 参考bcos_sdk_get_last_error接口介绍
bcos_sdk_create_by_config_file¶
原型:
void* bcos_sdk_create_by_config_file(const char *config_file)功能: 创建
sdk对象指针参数:
config_file: 配置文件, 参考配置文件
返回值:
返回
sdk指针, 失败返回NULL,可以使用bcos_sdk_get_last_error获取错误信息, 参考bcos_sdk_get_last_error接口介绍
bcos_sdk_start¶
函数原型:
void bcos_sdk_start(void* sdk)功能: 启动
sdk参数:
sdk:
sdk指针
返回:
无, 可以使用
bcos_sdk_get_last_error确认是否启动成功, 参考bcos_sdk_get_last_error介绍
bcos_sdk_stop¶
函数原型:
void bcos_sdk_stop(void* sdk)功能: 停止
sdksdk:
sdk指针
返回:
无
bcos_sdk_destroy¶
函数原型:
void bcos_sdk_destroy(void* sdk)功能: 停止并且释放
sdk对象资源参数:
sdk:
sdk指针
返回值: 无
bcos_sdk_get_last_error¶
函数原型:
int bcos_sdk_get_last_error()功能: 获取上一次操作的执行状态, 只对部分同步接口有效, 执行失败时可以使用
bcos_sdk_get_last_error_msg获取错误描述信息参数:
sdk:
sdk指针
返回值:
0: 成功, 其他表示错误码, 可以使用
bcos_sdk_get_last_error_msg获取错误描述信息
bcos_sdk_get_last_error_msg¶
函数原型:
const char* bcos_sdk_get_last_error_msg()功能: 获取上一次操作的错误信息描述, 只对部分同步接口有效, 与
bcos_sdk_get_last_error配合使用参数:
sdk:
sdk指针
返回值: 错误描述信息
RPC接口¶
bcos_rpc_call¶
函数原型:
void bcos_rpc_call(void* sdk, const char* group, const char* node, const char* to, const char* data, bcos_sdk_c_struct_response_cb callback, void* context)
功能: 调用合约,查询操作,无需共识
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 请求发往的节点名称(节点名称可以通过getGroupInfo获取), 值为NULL或者空字符串时, 在群组中按最大块高的原则, 随机选择一个节点to: 合约地址data: 参数编码调用
solidity合约时为ABI编码调用
liquid合约时为liquid编码
callback: 回调函数, 函数原型:typedef void (*bcos_sdk_c_struct_response_cb)(struct bcos_sdk_c_struct_response* resp)
bcos_sdk_c_struct_response定义及字段含义:struct bcos_sdk_c_struct_response { int error; // 返回状态, 0成功, 其他失败 char* desc; // 失败时描述错误信息 void* data; // 返回数据, error=0 时有效 size_t size; // 返回数据大小, error=0 时有效 void* context; // 回调上下文,调用接口时传入的`context`参数 };
!!!注意: 回调的数据
data仅在回调线程有效,多线程场景下,用户需自行拷贝保证数据的线程安全context: 回调上下文, 在回调bcos_sdk_c_struct_response中context字段返回
返回值: 空
bcos_rpc_send_transaction¶
函数原型:
void bcos_rpc_send_transaction(void* sdk, const char* group, const char* node, const char* data, int proof, bcos_sdk_c_struct_response_cb callback, void* context)功能: 发送交易,需要区块链共识
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明data: 交易编码proof: 是否返回交易回执证明, 0:不返回,1:返回callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回值: 空
bcos_rpc_get_transaction¶
函数原型:
void bcos_rpc_get_transaction(void* sdk, const char* group, const char* node, const char* tx_hash,int proof, bcos_sdk_c_struct_response_cb callback, void* context)功能: 根据交易哈希获取交易
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明tx_hash: 交易哈希proof: 是否返回交易证明, 0:不返回, 1:返回callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回值: 空
bcos_rpc_get_transaction_receipt¶
函数原型:
void bcos_rpc_get_transaction_receipt(void* sdk, const char* group, const char* node, const char* tx_hash, int proof, bcos_sdk_c_struct_response_cb callback, void* context)功能: 根据交易哈希获取交易回执
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明tx_hash: 交易哈希proof: 是否返回交易回执证明, 0: 不返回,1: 返回callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回值: 空
bcos_rpc_get_block_by_hash¶
函数原型:
void bcos_rpc_get_block_by_hash(void* sdk, const char* group, const char* node,const char* block_hash, int only_header, int only_tx_hash, bcos_sdk_c_struct_response_cb callback, void* context)功能: 根据区块哈希获取区块
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明block_hash: 区块哈希only_header: 是否只获取区块头, 1: 是, 0: 否only_tx_hash: 是否只获取区块的交易哈希, 1: 是, 0: 否callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回值: 空
bcos_rpc_get_block_by_number¶
函数原型:
void bcos_rpc_get_block_by_number(void* sdk, const char* group, const char* node, int64_t block_number, int only_header, int only_tx_hash, bcos_sdk_c_struct_response_cb callback, void* context)功能: 根据块高获取区块
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明block_number: 区块高度only_header: 是否只获取区块头, 1: 是, 0: 否only_tx_hash: 是否只获取区块的交易哈希, 1: 是, 0: 否callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回值: 空
bcos_rpc_get_block_hash_by_number¶
函数原型:
void bcos_rpc_get_block_hash_by_number(void* sdk, const char* group, const char* node, int64_t block_number, bcos_sdk_c_struct_response_cb callback, void* context)功能: 根据块高获取区块哈希
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明block_number: 区块高度callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回: 空
bcos_rpc_get_block_limit¶
函数原型:
int64_t bcos_rpc_get_block_limit(void* sdk, const char* group)功能: 获取
block limit参数:
sdk:sdk指针group: 群组ID
返回:
>0时返回block limit值,<=0表示获取失败, 此时可以通过bcos_rpc_get_block_number获取当前块高,然后加固定值500就是block limit的值
bcos_rpc_get_block_number¶
函数原型:
void bcos_rpc_get_block_number(void* sdk, const char* group, const char* node,bcos_sdk_c_struct_response_cb callback, void* context)功能: 获取群组块高
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回: 空
bcos_rpc_get_code¶
函数原型:
void bcos_rpc_get_code(void* sdk, const char* group, const char* node, const char* address,bcos_sdk_c_struct_response_cb callback, void* context)功能: 根据合约地址,查询合约代码
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明address: 合约地址callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回: 空
bcos_rpc_get_sealer_list¶
函数原型:
void bcos_rpc_get_sealer_list(void* sdk, const char* group, const char* node,bcos_sdk_c_struct_response_cb callback, void* context)功能: 获取群组共识节点列表
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回: 空
bcos_rpc_get_observer_list¶
函数原型:
void bcos_rpc_get_observer_list(void* sdk, const char* group, const char* node,bcos_sdk_c_struct_response_cb callback, void* context)功能: 获取群组观察节点列表
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回: 空
bcos_rpc_get_pbft_view¶
函数原型:
void bcos_rpc_get_pbft_view(void* sdk, const char* group, const char* node,bcos_sdk_c_struct_response_cb callback, void* context)功能: 获取群组的
PBFT共识的视图参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回: 空
bcos_rpc_get_pending_tx_size¶
函数原型:
void bcos_rpc_get_pending_tx_size(void* sdk, const char* group, const char* node,bcos_sdk_c_struct_response_cb callback, void* context)功能: 获取交易池待打包的交易数量
参数;
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回: 空
bcos_rpc_get_sync_status¶
函数原型:
void bcos_rpc_get_sync_status(void* sdk, const char* group, const char* node,bcos_sdk_c_struct_response_cb callback, void* context)功能: 获取群组的区块同步状态
参数;
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
bcos_rpc_get_consensus_status¶
函数原型:
void bcos_rpc_get_consensus_status(void* sdk, const char* group, const char* node,bcos_sdk_c_struct_response_cb callback, void* context)功能: 获取节点的共识状态
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
bcos_rpc_get_system_config_by_key¶
函数原型:
void bcos_rpc_get_system_config_by_key(void* sdk, const char* group, const char* node,const char* key,bcos_sdk_c_struct_response_cb callback, void* context)功能:
获取系统配置
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明key: 配置keycallback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回: 空
bcos_rpc_get_total_transaction_count¶
函数原型:
void bcos_rpc_get_total_transaction_count(void* sdk, const char* group, const char* node, bcos_sdk_c_struct_response_cb callback, void* context)功能: 获取当前区块高度下的交易总量
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回: 空
bcos_rpc_get_group_peers¶
函数原型:
void bcos_rpc_get_group_peers(void* sdk, const char* group, bcos_sdk_c_struct_response_cb callback, void* context)功能: 获取群组的网络连接信息
参数:
sdk:sdk指针group: 群组IDcallback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回: 空
bcos_rpc_get_peers¶
函数原型:
void bcos_rpc_get_peers(void* sdk, bcos_sdk_c_struct_response_cb callback, void* context)功能: 获取网关的
p2p网络连接信息参数:
sdk:sdk指针group: 群组IDcallback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回: 空
bcos_rpc_get_group_list¶
函数原型:
void bcos_rpc_get_group_list(void* sdk, bcos_sdk_c_struct_response_cb callback, void* context)功能: 获取群组列表
参数:
sdk:sdk指针callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回: 空
bcos_rpc_get_group_info¶
函数原型:
void bcos_rpc_get_group_info(void* sdk, const char* group, bcos_sdk_c_struct_response_cb callback, void* context)功能: 获取群组信息
参数:
sdk:sdk指针group: 群组IDcallback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回: 空
bcos_rpc_get_group_info_list¶
函数原型:
void bcos_rpc_get_group_info_list(void* sdk, bcos_sdk_c_struct_response_cb callback, void* context)功能: 获取群组列表详情
参数:
sdk:
sdk指针callback: 参考bcos_rpc_call接口对context的说明context: 参考bcos_rpc_call接口对context的说明
返回: 空
bcos_rpc_get_group_node_info¶
函数原型:
void bcos_rpc_get_group_node_info(void* sdk, const char* group, const char* node,bcos_sdk_c_struct_response_cb callback, void* context)功能:获取群组的节点信息
参数:
sdk:
sdk指针group: 群组ID
node: 节点名称
callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回: 空
AMOP接口¶
bcos_amop_subscribe_topic¶
函数原型:
void bcos_amop_subscribe_topic(void* sdk, char** topics, size_t count)功能: 订阅topic
参数:
sdk:sdk指针topics: topics内容count: topics长度
bcos_amop_subscribe_topic_with_cb¶
函数原型:
void bcos_amop_subscribe_topic_with_cb(void* sdk, const char* topic, bcos_sdk_c_amop_subscribe_cb cb, void* context)功能: 订阅topic,并设置接收
topic消息的回调函数参数:
sdk:sdk指针topic: topiccb: 回调函数, 函数原型如下:typedef void (*bcos_sdk_c_amop_subscribe_cb)( const char* endpoint, const char* seq, struct bcos_sdk_c_struct_response* resp);
字段含义:
endpoint: 接收消息的网络连接标记, 回复消息调用
bcos_amop_send_response时需要使用seq: 消息标记, 回复消息调用
bcos_amop_send_response时需要使用resp: 参考
bcos_rpc_call接口callback对bcos_sdk_c_struct_response的说明
context: 回调上下文, 参考bcos_rpc_call接口对context的说明
bcos_amop_set_subscribe_topic_cb¶
函数原型:
void bcos_amop_set_subscribe_topic_cb(void* sdk, bcos_sdk_c_amop_subscribe_cb cb, void* context)功能: 设置默认回调函数,接收的
topic消息没有单独设置回调函数时,默认回调函数会被调用参数:
sdk:sdk指针cb:topic回调函数, 参考bcos_amop_subscribe_topic_with_cb接口对cb的说明context: 回调上下文
bcos_amop_unsubscribe_topic¶
函数原型:
void bcos_amop_unsubscribe_topic(void* sdk, char** topics, size_t count)功能: 取消订阅
参数:
sdk:sdk指针topics: topics内容count: topics长度
bcos_amop_publish¶
函数原型:
void bcos_amop_publish(void* sdk, const char* topic, void* data, size_t size, uint32_t timeout,bcos_sdk_c_amop_publish_cb cb, void* context)功能: 发送topic消息
参数:
sdk:sdk指针topic: topicdata: 消息内容size: 消息长度timeout: 超时时间,单位mscb: 回调函数, 函数原型如下:typedef void (*bcos_sdk_c_amop_publish_cb)(struct bcos_sdk_c_struct_response* resp)
context: 回调上下文
bcos_amop_broadcast¶
函数原型:
void bcos_amop_broadcast(void* sdk, const char* topic, void* data, size_t size)功能: 发送topic广播消息
参数:
sdk:sdk指针topic: topicdata: 消息内容size: 消息长度
bcos_amop_send_response¶
函数原型:
void bcos_amop_send_response(void* sdk, const char* peer, const char* seq, void* data, size_t size)功能: 发送回复消息
参数:
sdk:sdk指针peer: 接收消息的网络连接标记, 参考bcos_amop_subscribe_topic_with_cb接口回调函数cb的字段endpoint说明seq: 消息标记, 参考bcos_amop_subscribe_topic_with_cb接口回调函数cb的字段seq说明data: 消息内容size: 消息长度
EventSub接口¶
bcos_event_sub_subscribe_event¶
函数原型:
const char* bcos_event_sub_subscribe_event(void* sdk, const char* group, const char* params,bcos_sdk_c_struct_response_cb callback, void* context)功能: 合约事件订阅
参数:
sdk:sdk指针group: 请求群组IDparams: 请求参数callback: 回调函数context: 回调上下文
返回值:
合约事件订阅的任务id
bcos_event_sub_unsubscribe_event¶
函数原型:
void bcos_event_sub_unsubscribe_event(void* sdk, const char* id)功能: 去掉合约事件订阅
参数:
sdk:sdk指针id: 合约事件订阅的任务id