Skip to content

KleeTaurus/go-trustsql-sdk

Repository files navigation

GoTrustSQL

license GoDoc

基于 Golang 语言的 TrustSQL SDK

概述

该 SDK 实现了底层密钥对生成、地址生成、签名/验签等基础功能,并对 TrustSQL 提供的三类(信息共享/身份管理) API 接口进行了封装。

特性

SDK 基础命令

  1. 生成密钥对
  2. 根据私钥生成公钥(压缩公钥)
  3. 根据公钥生成地址(压缩地址)
  4. 利用私钥对数据签名
  5. 利用公钥对数据和签名进行验签

SDK API 接口

  1. 数字资产(暂未实现)
  2. 信息共享
  3. 身份管理

示例

下列示例演示了该 SDK 的基本使用方法。

func SendToTrustSQL(content map[string]interface{}) (*tsiss.IssAppendResponse, error) {
    privateKey := "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    client, _ := trustsql.NewClient(privateKey)
    client.SetIssRequestTimeout(5 * time.Second)
    //testURI := ""
    //client.SetAppendIssURI(testURI)
    accountAddr := client.GetAddrByPubkey()
    pubKey := client.GetPublicKey()
    issAppend := &tsiss.IssAppend{
        Version:  "1.0",
        SignType: "ECDSA",
        MchID:    "gbxxxxxxxxxxxxxxx",
        //MchSign:     "",
        Account:    string(accountAddr),
        CommitTime: time.Now().Format("2006-01-02 15:04:05"),
        //Content:    map[string]interface{}{"c": "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"},
        Content: content,
        InfoKey: bson.NewObjectId().Hex(),
        //InfoKey:     "1242123jjj",
        InfoVersion: "1",
        State:       "0",
        Notes:       map[string]interface{}{"notes": "comments"},
        PublicKey:   pubKey,
        Sign:        "",
        ChainID:     "ch_tencent_test",
        LedgerID:    "ld_tencent_iss",
    }
    signStr, err := client.GetIssSignStr(issAppend)
    if err != nil {
        fmt.Printf("get issSignStr error: %s\n", err)
        return nil, err
    }

    issAppend.Sign = client.SignString(signStr, true)
    appendRes, err := client.AppendIss(issAppend)
    if err != nil {
        fmt.Printf("append error: %s\n", err)
        return nil, err
    }
    //fmt.Printf("appendRes: %+v\n", appendRes)
    return appendRes, nil
}

环境依赖

参考资料

  1. Bitcoin Wiki
  2. Base58Check encoding
  3. Bitcoin Developer Reference
  4. Technical background of version 1 Bitcoin addresses
  5. Merkle Trees
  6. 数据库那么便宜,为何还要死贵的区块链来存储数据?
  7. Data Insertion in Bitcoin's Blockchain

License

GoTrustSQL is MIT licensed. See the included LICENSE file for more details.

Releases

No releases published

Packages

No packages published