如何给区块链写SDK

区块链开发完毕,需要通过SDK给其他开发者予以调用,所以SDK是降低区块链使用门槛必要的手段。

 

 

开发SDK的技术逻辑就是,通过离线构造包括签名在内的多种区块链交易,然后通过网络服务将交易数据发送到区块链节点,区块链节点监听交易并执行符合规则交易。

 

 

就以我开发的JS SDK为例,我在开发中实现以下功能:

 

1.离线钱包功能

 

1.1 实现钱包账户生成,包括助记词生成,公私钥生成,公钥转地址,keystore文件生成。

 

1.2 账户交易签名和验证,构造交易,对交易进行离线签名和验证。

 

1.3 账户转账,在不同账户之间形成资产转移。

 

2.共识功能

 

2.1 资源抵押和解冻

 

2.2 设置代表和投票

 

2.3 获得最新的代表和候选代表

 

3.合约功能

 

3.1 合约上链,实例化,调用,停用。

 

3.2 相关合约模版搜索,实现个性化合约定制

 

4.区块链管理功能

 

4.1 查询最新交易,最新高度,最新代表

 

4.2 获得交易,区块,当前节点,连接节点

 

4.3 当前区块链网络

 

5.特殊功能调用

 

5.1区块链特殊合约,譬如USDT合约安全调用

 

5.2 基本配置,例如Baas服务配置,节点配置等用于初始化连接区块链服务。

 

 

其他语言SDK都类似,开发的难点其实不在逻辑,而在于对语言的掌握,如何用不同的语言,调用相同功能,实现一致效果。例如最基本的secp256k1曲线加密算法,Go SDK我依赖比特币的Go版本,同时在地址生成加上了一些自己的设计,而在nodejs中,我使用eccrypto椭圆曲线加密库,这个就比较基础,需要专门进行修改,以符合比特币中的规定。

你可能感兴趣的:(区块链(Blockchain),商业公链解码)