TrustSQL对接开发指南

Similar documents
一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

<4D F736F F D20D0C5CFA2BBAFB7A2D5B9D6D8B5E3D7A8CFEEB9E6BBAE2E646F63>

关于建立境内违法互联网站黑名单管理制度的通知

? 這 全 都 是 市 政 府 提 供 給 我 的 資 料 低 底 盤 公 車 計 畫 96 年 預 算 新 台 幣 4,500 萬 元 97 年 預 算 新 台 幣 1 億 6,500 萬 元 98 年 預 算 新 台 幣 3 億 2,300 萬 元, 共 有 307 台 低 底 盤 公 車,99

01

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 一 一 般 公 共 服 务 支 出 二

目錄


Partition Key: 字 符 串 类 型, 表 示 当 前 Entity 的 分 区 信 息 这 个 Property 对 于 Table Service 自 动 纵 向 和 横 向 扩 展 至 关 重 要 Row Key: 字 符 串 类 型, 在 给 定 Partition Key 的

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

}; "P2VTKNvTAnYNwBrqXbgxRSFQs6FTEhNJ", " " string imagedata; if(0!= read_image("a.jpg",imagedata)) { return -1; } string rsp; ytopen_sdk m_sd

段 工 作 4 某 一 階 段 必 須 有 產 品 來 顯 示 已 告 一 段 落 1 6. ( 2 ) 下 列 那 一 項 技 術 為 一 個 處 理 器 中 含 有 兩 個 執 行 單 元, 可 以 同 時 執 行 兩 個 並 行 執 行 緒, 以 提 升 處 理 器 的 運 算 效 能 與 多

X

单元四数据的查询 数据库原理与应用 课内例题 任务 5 多表查询 课内例题 例创建数据表 orders, 并向表中添加记录 首先创建表 orders,sql 语句如下 : CREATE TABLE orders( o_num int NOT NULL AUTO_INCREMENT, o_date d

季刊9web.indd

x MapReduce A Italic URL Constant width Constant width bold Constant width italic 這個圖示代表提示或建議 這個圖示代表一般註解


计算机网络实验说明

说 : 荀 子 极 偏 驳, 只 一 句 性 恶, 大 本 已 失 5 朱 熹 说 : 荀 扬 不 惟 说 性 不 是, 从 头 到 底 皆 不 识 6 采 取 的 都 是 这 种 理 论 框 架 另 一 种 理 论 框 架 始 于 20 世 纪 前 期, 这 便 是 诸 子 学 研 究 的 框 架

untitled

标题

untitled

1. 概 述 1.1 扫 描 对 象 序 号 1 IP 地 址 域 名 1.2 漏 洞 等 级 分 布 风 险 类 型 数 量 高 风 险 1 中 风 险 5 低 风 险 4 信 息 类 4 7% 29% 高 风 险 36% 中 风 险 低 风

家装知识(六)

案例分享产品文档

Chapter #

支付宝2011年 IT资产与费用预算


C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

XXXXXXXX

untitled

untitled

untitled

untitled

证券期货市场之主要诚信规范

标题

深入理解otter

( 九 ) 賡 續 辦 理 地 籍 圖 重 測, 健 全 地 籍 管 理, 確 保 人 民 產 權 ( 十 ) 推 動 智 慧 綠 建 築 與 都 市 防 災, 發 展 建 築 技 術 創 新 科 技, 建 構 全 人 關 懷 生 活 環 境 ( 十 一 ) 持 續 辦 理 農 村 社 區 土 地

一、

T-Linx2.0外部应用开放平台接口

通联支付网络服务股份有限公司

以太坊钱包开发

?????????????(2008~2020?)

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

Microsoft Word - 全文.doc

本 次 培 训 是 由 北 森 生 涯 ( 北 京 ) 教 育 科 技 有 限 公 司 的 首 席 培 训 师 彭 勃 老 师 担 任 讲 师, 培 训 内 容 围 绕 着 职 业 生 涯 规 划 理 论 与 实 践 如 何 设 计 大 学 生 生 涯 规 划 课 程 多 元 化 生 涯 规 划 教

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas


學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

I

论文,,, ( &, ), 1 ( -, : - ), ; (, ), ; ;, ( &, ),,,,,, (, ),,,, (, ) (, ),,, :. : ( ), ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ), ( ),,,, 1 原译作 修补者, 但在英译版本中, 被译作

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

目 录(目录名)

<4D F736F F D D0ADD2E9B7D6CEF6CBB5C3F7BCB0B2BFB7D6CAB5CFD6D4B4B4FAC2EB2E646F63>

目 录 CONTENTS 总 第 2 期 要 情 速 递 3 国 务 院 连 发 五 文 支 持 创 新 创 业 6 江 苏 省 机 关 事 业 单 位 养 老 保 险 改 革 年 内 启 动 9 全 市 人 社 系 统 上 半 年 工 作 分 析 会 召 开 本 刊 记 者 摘 自

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

身份认证绑定步骤 : 学生在微信客户端打开应用, 触发微信公众号授权 ( 授权页面提示授权给腾讯微校 ) 微信公众号授权后, 回调跳转到微校身份绑定页面, 输入校园账号 ( 例如学号 ) 以及相应的密码, 微校页面数据发送到微校后台 ( 注 : 微校后台不会保存学生的账号和密码 ), 微校后台把对应

untitled

最 佳 做 法 : 在 需 要 时 或 需 要 前 从 CDN 下 载 内 容, 并 使 它 们 与 Flash 代 码 和 文 件 分 离 存 盘 率 vs 响 应 速 度 当 用 户 玩 游 戏 时, 客 户 端 可 以 把 每 一 个 变 化 实 时 写 到 后 端 Web 服 务 器, 也

达内Linux云计算学院

untitled

1 公钥管理 1.1 公钥管理配置命令 display public-key local public display public-key local { dsa rsa } public [ { begin exclude include } regular-expression ]

untitled

请求示例 示例返回结果 更新数据 更新数据请求 Content-Type 请求参数 返回结果字段说明 请求示例 示例返回结果 删除数据 ( 单条 / 多条 ) 删除

untitled

修 訂 歷 史 修 訂 日 期 修 訂 內 容 版 次 民 國 103 年 7 月 7 日 監 理 服 務 網 網 址 異 動 V1.0 民 國 103 年 7 月 22 日 1. 新 增 教 練 職 務 的 審 查 V 學 號 7 碼 以 下 II

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之

目 录(目录名)

关 于 我 姓 名 : 葛 云 杰 网 名 :Dylan Oracle OCM Oracle 用 户 组 年 轻 专 家 中 国 OCM 联 盟 成 员 山 东 Oracle 用 户 组 联 合 创 始 人 齐 鲁 IT 联 盟 联 合 创 始 人 软 件 研 发 工 程 师 具 有 十 年 以 上

Microsoft Word - 校字文.doc

R D B M S O R D B M S R D B M S / O R D B M S R D B M S O R D B M S 4 O R D B M S R D B M 3. ORACLE Server O R A C L E U N I X Windows NT w w

目录 移动云 1. API 访问 调用方法方法 公共参数 公共请求参数 公共返回参数 签名机制 安全组... 错误! 未定义书签 2.1 安全组列表... 错误! 未定义书签 2.2 创

劇情大綱 這是有關一對兄妹的故事 不過 所有的情節 必需先從一隻山羊說起 邱興傳 阿傳 在一次部隊的演習中撿到了一隻山羊 沒有烙印記號也 沒人招領 所以退伍時決定把羊帶回家 他攔了一台空的小貨車 央求對方 載他和羊到火車站去 也就在半路上 山羊講話了 山羊說 牠是鬼 卻被一個假裝是鬼的人給騙了 才逼

LAMP Jane Erica Erica Jane Jane Erica Ann Ann LAMP 3 LAMP Erica Ann Jane Betty Carla Ann Ann Jane Ann Ann Ann 2 Jane Erica 75 Jane Ann RIAA Jane ; Ann

Microsoft Word - 鲁人社字 号.doc

untitled

F515_CS_Book.book

(CSR)...2 CA CA CA CA Base64 CA CA SSL

Microsoft Word - Enriched TEKLA Curriculum Guide (chi ver)

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

Microsoft Word - 第2部分.doc

公 司 进 行 了 金 融 终 端 收 费 端 产 品 的 策 略 调 整, 金 融 数 据 服 务 业 务 预 收 收 入 出 现 较 大 幅 度 下 降, 主 营 业 务 收 入 较 去 年 同 期 出 现 较 大 幅 度 下 降 同 时, 公 司 继 续 加 大 战 略 性 投 入, 人 员

通过Hive将数据写入到ElasticSearch

成人聊天qq号_欢迎加入性爱聊天qq群 成人聊天qq号_live成人聊天网

<4D F736F F D20D7A8D2B5BCBCCAF5D6B0CEF1B9DCC0ED>

目录 移动云 1. API 访问 调用方法方法 公共参数 公共请求参数 公共返回参数 签名机制 云主机备份 购买云主机备份服务 云主机备份列表...

绝密★启用前

臺銀人壽「98年九至十一職等人員甄試」

一步一步教你搞网站同步镜像!|动易Cms

上述字符串的 MD5 值即为签名的值 (32 位小写 ) 将签名值放在请求的参数中例如 sign=md5_sign 服务端 SDK 调用 API 的应用的私钥 Secret Key 为 appsecret /** parammap 请求参数 secret 密钥 *

01 SQL Server SQL Server 2008 SQL Server 6-1 SSIS SQL Server ( master ) ( msdb ) SQL Server ( master ) master 6-1 DTS sysadmin 6-1 sysa

中国证券登记结算有限责任公司 CA 认证业务技术文档 中国结算 CA 系统对外服务接口规范 中国证券登记结算有限责任公司 二 一三年五月


6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

FileMaker 15 ODBC 和 JDBC 指南

1 公钥管理 设备运行于 FIPS 模式时, 本特性部分配置相对于非 FIPS 模式有所变化, 具体差异请见本文相关描 述 有关 FIPS 模式的详细介绍请参见 安全配置指导 中的 FIPS 1.1 公钥管理配置命令 display public-key local public dis

2005 3

曲阜师范大学

Transcription:

腾讯可信区块链 对接开发指南 版权所有 腾讯科技 ( 深圳 ) 有限公司 1

目录 第 1 章对接方法... 2 1.1 总体描述... 2 1.2 公私钥 地址与签名... 2 1.3 提供的接口... 3 1

第 1 章对接方法 1.1 总体描述 的接入方法与 mysql 类似, 指定 IP 端口 用户名和密码, 通过 mysql5.5+ 的客户端连接 提供 insert 和 select 两种 SQL 接口 : 交易通过 insert into t_transaction 交易流水来实现 ; 查询 通过 select * from t_transaction(t_account t_block) 来实现 与 Mysql 的区别 : 项目 Mysql 描述 协议 Mysql 协议兼容 Mysql 协议 支持的操作 CURD 仅仅支持 Insert 和 select 区块链入链数据不可修改, 插入操作 可以随意插入数据所有入链的数据需要使用私 所以只支持 Insert 操作 钥进行签名 查询操作可以随意查询兼容 Mysql 查询 1.2 公私钥 地址与签名 统一采用 ECDSA 进行数字签名, 曲线选择与比特币相同 :secp256k1 公私钥 : 采用 secp256k1 椭圆曲线生成一对, 或者通过私钥可以算出公钥 在 中公私钥的编 码格式为 Base64 地址 : 通过私钥可以算出公钥, 通过公钥可以算出地址, 地址使用 在 中地址的编码格式 为 Base58 腾讯可信区块链 版权所有 2

Base64 签名 : 使用 secp256k1 椭圆曲线签名, 签名后的 r/s 使用 der 编码 在 中签名的编码格式为 1.3 提供的接口 1 建立连接 : Trustsql 提供兼容 Mysql5.5+ 协议的连接方式, 可以使用 libmysql 库,libmysql++ 库,mysql 客户 端等进行对接, 使用 mysql 连接举例如下 : --mysql -hip -P8066 -uuser -ppassword -Dtrustsql ip:trustsql 服务所在 ip 地址 user:trustsql 服务的用户名 password:trustsql 服务的密码 2 交易接口 : a) 字段说明 : 3

序号字段名称字段类型参与签名字段说明 1. Fseqno String Y 交易单号是 2. Fsrc String Y 源账户地址 3. Fdst1 String Y 目的账户地址 1 4. Fdst1_amount Int Y 转出份额 1 5. Fdst2 String Y 目的账户地址 2 6. Fdst2_amount Int Y 转出份额 2 7. Fattach json Y 附加字段, 每次交易可以附带上的数据 Y 数字资产 JSON, 该字段为不可变类型, 相同 8. Fassets json Fassets 才可转账 9. Ftime datetime Y 记账时间 10. Fsign String N Fsrc 私钥的签名 11. Fpubkey String Y Fsrc 的公钥 BASE64 格式 b) 操作例子 : 交易接口直接需要按照如下例子拼接 insert 语句进行操作, 举例如下 : -- insert into t_transaction -- Fseqno='xxxxxxxxxxxx', // 交易单号 -- Fsrc='3KA86SffUFYXZcbPfdEc4UX1F8z95PdGob', // 源帐户地址 -- Fdst1='1CeZ4EZamNQixcgPQ6tTXbgYkNfc5dDErB', // 目的帐户地址 1 -- Fdst1_amount=100, // 转账份额 1 -- Fdst2='1CeZ4EZamNQixcgPQ6tTXbgYkNfc5dDErB', // 目的帐户地址 2 -- Fdst2_amount=100, // 转账份额 2 -- Fattach='{JSON String}', // 附加字段, 覆盖 src 地址中 Fattach 的内容 -- Fassets='{JSON String}', // 数字资产 JSON, 该字段为不可变类型, 相同 Fassets 才可转账 -- Ftime='2017-01-01 00:00:00', // 记账时间 -- Fsign='304502206e21798a42fae0e854281abd38bacd1aeed3ee3738d9e1446', //Fsrc 私钥的签名 -- Fpubkey='BHSgdFFuE8p0FQ5+Ge1AO5XAj8su5B8UpAtWo9zNXifUk9+6T4L5rVxhxRWU7t83zek7 EYTYap6EY1LWl2Qc/Ro=', //Fsrc 的公钥 BASE64 格式 例子中代表 Fsrc 向 Fdst1 和 Fdst2 分别转账 100 份额 需要注意转账双方的 Fassets 必须一致才能转账, 即同一类资产才可转账 Fassets,Fattach 必须有值 当 (Fsrc==Fdst1)&&(Fdst1_amount=0)&&(Fdst2==NULL) 时, 等同于只修改资产的状态, 只更新 src 中 Fattach 的内容 状态的变更看作是一种特殊交易, 通过 insert into t_transaction 把输入和输出地址设置为相同帐户, 交易金额设置为 0 来实现, 实际达到更新 t_account 中 Fattach 字段的效果 4

c) 签名规则 insert 操作时需要使用 Fsrc 的私钥对请求串进行签名 签名算法如下 : 1) 参与签名字段如下 ( 字段名的 ASCII 码从小到大排序 ): Fattach;Fassets;Fdst1;Fdst1_amount;Fdst2;Fdst2_amount;Fpubkey;Fseqno;Fsrc;Ftime 2) Fassets 和 Fattach 的 json 字段排序, 生成规则 : json::object 中每个字段按照 key=value 形式展开, 并按照 key 的 ASCII 码从小到大排序 后以 & 号分隔 ; json::array 中每个字段按照 value1,value2,... 形式展开, 并按照 index 排序后以, 号分隔 ; 当 json::object 嵌套时按照 key=key=value 形式展开, 并按照 key 的 ASCII 码从小到大 排序后以 & 号分隔 ; 例如 :{"a":1,"b":"2","c":false,"d":{"d1":"v1","d2":2},"e":[1,2,3,{"e4":4}]} 转成 a=1&b=2&c=false&d=d1=v1&d2=2&e=1,2,3,e4=4 再参与签名串的拼接, 其中 key 和 value 都不包含 json 字段开头和结尾的 "( 双引号 ) 3) 拼接签名原字符串规则 : 原字符串按照参数字段名的 ASCII 码从小到大排序后使用 QueryString 的格式 ( 即 key1=value1&key2=value2 ) 拼接而成 签名时字段名和字段值都采用 UTF-8 编码, 但不进行 URL 编码 例如上面交易接口中对应的签名原串为 : Fassets=json 字段排序 &Fattach=json 字段排序 &Fdst1=1CeZ4EZamNQixcgPQ6tTXbgYkNfc5d DErB&Fdst1_amount=100&Fdst2=1CeZ4EZamNQixcgPQ6tTXbgYkNfc5dDErB&Fdst2_amount=100 &Fpubkey=BHSgdFFuE8p0FQ5+Ge1AO5XAj8su5B8UpAtWo9zNXifUk9+6T4L5rVxhxRWU7t83zek 7EYTYap6EY1LWl2Qc/Ro=&Fseqno=xxxxxxxxxxxx&Fsrc=3KA86SffUFYXZcbPfdEc4UX1F8z95P dgob&ftime=2017-01-01 00:00:00 4) 签名算法描述 : 示 sign = base64(ecdsa (sha256( 原字符串 ))) 签名后的 r/s 使用 DER 编码再转成 base64 表 5

3 查询接口 : 查询接口可以兼容 Mysql 查询类型, 直接拼装 select 语句即可, 支持使用 Mysql5.7 json 字段进行查询 a) 交易流水 交易流水查询接口可以得到的字段与交易接口相同, 举例如下 : --select Fseqno,Fsrc,Fdst1,Fdst1_amount,Fdst2,Fdst2_amount,Fattach,Fassets,Ftime,Fsign,Fpubkey from t_transaction; b) 账户信息 帐户信息查询接口可以得到的字段如下表, 举例如下 : -- select Famount, Fattach from t_account where Faddress='14qViLJfdGaP4EeHnDyJbEGQys' 字段说明 序号字段名称字段类型字段说明 1. Faddress String 账户地址 2. Famount Int 账户拥有份额 3. Fattach json 附加字段, 覆盖成 t_transaction 表中最后一条交易 Fsrc 地址中 Fattach 的内容 4. Fassets json 数字资产 JSON, 对应 Faddress 产生第一笔交易的 Fassets 的内容, 之后所有交易都必须相同 5. Fmodify_time datetime 修改时间 6. Ftrans_hash String 最后交易 hash 值 c) 区块信息 区块信息查询接口可以得到的字段如下表, 举例如下 : -- select Fhight, Fprev_hash,Fcreate_time from t_block where Fhight='0' 字段说明 序号字段名称字段类型字段说明 1. Fhight Int 区块高度 2. Fprev_hash String 前一个区块 hash 值 3. Froot_hash String 根区块 hash 值 4. Fcreate_time datetime 创建时间 5. Fhash String 本区块 hash 值 4 系统状态查询 : 查询系统运行状态 : 版本信息, 是否 leader, 是否在修复数据等, 举例如下 6

-- show @@trustsql_info; 字段说明 序号字段名称字段类型字段说明 1. trustsql.version String Trustsql 版本号 2. trustsql.ip String 当前节点 ip 3. trustsql.port Int 当前节点监听端口 4. trustsql.default_charsert String 默认连接字符集 5. trustsql.node.id Int 当前节点 id 6. trustsql.node.count Int Trustsql 网络总结点数 7. trustsql.repairing Bool 当前节点是否在修复数据 8. trustsql.socket.so_rcvbuf Int Socket 接收缓冲区大小 9. trustsql.socket.so_sndbuf Int Socket 发送缓存区大小 10. trustsql.socket.so_timeout Int Socket 超时时间 ( 秒 ) 11. trustsql.socket.tcp_nodelay Bool IPPROTO_TCP 设置 TCP_NODELAY 标志位 trustsql.socket.connect_tim Mysql 连接超时 ( 秒 ) 12. eout_millis Int 13. trustsql.bft-raft.members String Trustsql 网络成员节点列表 14. trustsql.bft-raft.leader String Trustsql 网络主节点 id 15. trustsql.bft-raft.isleader Bool 当前节点是否为主节点 16. trustsql.bft-raft.majority Int 需要多少节点保持正常运行 17. trustsql.bft-raft.currentterm Int bft-raft 当前 Term 值 18. trustsql.bft-raft.lastappende 最后追加数据的高度 d 19. trustsql.bft-raft.commitinde 最后提交数据的高度 x 20. system.jvm.version jvm 版本号 21. system.jvm.processors jvm 运行数量 22. system.jvm.totalmemory jvm 总内存大小 7

23. system.jvm.maxmemory jvm 最大使用内存限制 24. system.jvm.freememory jvm 内存空闲大小 8