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是收款方。