更新时间:2023-01-16 GMT+08:00

Chaincode库接口

该静态库集成在BCS实例中。用户在开发链代码时,可以使用BCS提供的API接口文件对开发中的链码进行本地编译。

先将API接口文件下载(下载链接参见资源下载)并解压到本地的GOPATH目录中,按照4.2.6章节的链代码示例代码来引用同态库。当链码开发完成后,将链码安装到BCS中时,链码会自动链接到BCS中的库代码,实现对链码端同态加密库的调用。

链码中调用同态加密库的引用路径为:import "ahe/PSW/api/ChainCode"

请确保使用该引用路径,否则链码端调用同态加密库会失败。

ValidateInitBalance

  • 接口原型

    func ValidateInitBalance(BalanceInfo, PubKey string) (InitBalance string, err error)

  • 功能描述

    校验sdk.InitBalance生成的balanceinfo中余额证明的有效性。

  • 输入说明

    参数名

    类型

    描述

    是否必须

    BalanceInfo

    string

    初始余额数据

    Pubkey

    string

    余额加密的公钥信息

  • 输出说明

    参数名

    类型

    描述

    是否必须

    InitBalance

    string

    初始余额密文

    err

    error

    错误信息

  • 处理说明

    验证余额有效后,返回余额的密文。

  • 注意事项

    这里用户余额真实性由用户的app逻辑保证,Chaincode端无法验证该用户的真实金额,只能验证该金额是大于0的范围。

ValidateTxInfo

  • 接口原型

    ValidateTxInfo(txInfo, cipherBalanceA, cipherBalanceB string) (newCipherBalanceA,newCipherBalanceB,newCipherTxA,newCipherTxB string,err error)

  • 功能描述

    校验PrepareTxInfo生成的Txinfo中交易证明的有效性。

  • 输入说明

    参数名

    类型

    描述

    是否必须

    txinfo

    string

    交易证明数据

    说明:

    交易信息数据包含有交易密文数据和交易证明数据,该信息来源于sdk.PrepareTxInfo返回的txinfo信息。

    cipherBalanceA

    string

    A当前的交易余额(密文)

    cipherBalanceB

    string

    B当前的交易余额(密文)

  • 输出说明

    参数名

    类型

    描述

    newCipherBalanceA

    string

    交易后待更新的A的余额

    newCipherBalanceB

    string

    交易后待更新的B的余额

    newCipherTxA

    string

    交易金额(A的同态加密公钥加密)

    newCipherTxB

    string

    交易金额(B的同态加密公钥加密)

    err

    error

    错误

  • 注意事项

    这里A是转账方,B是收款方。