编程界语言之争、框架之斗,仿佛从未停止过……
Java、Python、C#,谁才是全世界最好的语言?
在区块链世界里,Go语言也加入了最好语言的争夺!

开源之后,百度超级链步履不停,
以前开发者开发者想编程访问节点的远程接口,只能对照protobuf的接口声明编写代码,
而现在,百度超级链提供了Go, Java, Python, C#四种主流语言的SDK,
无论你是哪个编程语言派,都可以在这里满足需求,易用性大大提升。

我们开源了哪些新能力呢?

我们开发了各种语言的SDK(Software Development Kit),方便开发者使用超级链。目前针对开源的XuperUnion项目提供了Go, Java, Python, C#四种主流语言的SDK,这些SDK提供了与链上节点的交互能力,涵盖了如下功能:

一、 数字资产管理
a. 数字资产转移:超级链使用XuperModel数据模型,兼容了经典的UTXO。 开发者可以通过调用Transfer接口,实现将某个账户的数字资产转移到其他账户。
b. 余额查询:开发者可以调用GetBalance接口,查询某个Address或合约账号名下的数字资产余额。

二、 状态查询
a. 交易查询:通过交易ID可以查询已经发起过的交易的状态和内容,包括交易详情、合约运行结果、打包在哪个区块
b. 区块查询:通过区块ID可以查询该区块的详细内容,包括区块高度、出块者、交易列表、时间戳、是否是孤块等等
c. 系统状态查询: 查询当前节点托管了几条链,每条链的区块高度、最新的区块ID、创世区块ID、各个接口的TPS/QPS等信息。

三、 智能合约
a. 创建合约账号:超级链中的智能合约是部署在合约账号下面管理的,创建合约账号需要消耗一定的Gas,合约账号可以由多个私钥按照一定规则集体控制。这些参数可以在创建合约账号时设定。
b. 部署合约:调用Deploy接口,将WASM字节码部署到超级链上,每个合约需要有一个唯一的名字标识。
c. 调用合约:调用Invoke接口,并填入合约的输入参数,智能合约将会被运行,产生状态修改的“补丁”,然后交易原文+状态补丁整体经过SDK所关联的私钥进行签名,最终发送到区块链上。
d. 查询合约:调用PreExec接口,并填入合约的输入参数,合约将会被运行,但是产生的状态修改不会生效到区块链,而是返回到调用者,用于调试或不需要上链的合约调用场景。

各语言的SDK应该如何使用呢?
附四种语言使用方法:

Go
github地址为 https://github.com/xuperchain/xuper-sdk-go
在项目里面import "github.com/xuperchain/xuper-sdk-go”即可使用go SDK
具体使用文档见项目WIKI https://github.com/xuperchain/xuper-sdk-go/wiki

Java
github地址为 https://github.com/xuperchain/xuper-java-sdk
项目为maven工程,按照maven的依赖方式即可引入SDK。
具体使用方式见 https://github.com/xuperchain/xuper-java-sdk/blob/master/README.md 或者项目下的test用例。

Python
github地址为 https://github.com/xuperchain/pythonsdk
项目已经上传到pip上,可以通过 pip install xuper来获取SDK
具体使用方式参考随项目发布的一个wallet demo。

C#
github地址为 https://github.com/xuperchain/xuper-sdk-csharp
该SDK依赖 .Net Core 3.x 使用之前确保安装相关依赖。
通过dotnet add package XChainSDK来获取SDK
具体使用方式参见项目README

更多的功能会在后续慢慢加入,期待大家的使用和反馈, 也欢迎给我们提pull request。

Logo

XuperCore是百度超级链XuperChain内核技术,也是开放原子开源基金会首个开源项目,拥有623篇核心技术专利,致力于创建“更快、更通用、更好用” 的区块链底层技术。

更多推荐