编号077 Conflux CPP SDK 开发 (L1验收完成)

(1)项目名称:
Conflux CPP SDK

(2)项目类型:
研究探索类

(3)项目介绍:
目前Conflux官方已经推出了rust、js、golang、java、python的SDK和第三方开发的.NET Core SDK,基本能够满足Web端、桌面端、Android端大部分应用程序开发的需求,但是由于目前在一些追求程序运行性能的领域(如大型PC端游戏方面如虚幻4引擎、Cocos2d-x等)依然需要采用C++语言进行开发,所有需要开发一套原生的C++ SDK接口与系统进行交互。
在项目编写的前期,我主要参考了C++实现Ethereum的源码(目前主要是golang实现)以及github上最流行的eth C++ SDK - aleth项目,但是由于C++语言本身的限制(静态语言、不支持反射),在golang与js等语言中容易实现的功能,在C++中则变得十分的繁琐(比如ABI编解码的问题)。
本项目的SDK接口主要参考conflux官方的golang实现,尽量做到与golang接口名称的统一,降低开发人员的学习难度,同时兼顾js与java实现,进行接口的补充与完善。

(4)实现成果:
1.外部账户管理相关功能,包括新账户创建、KeyStore导入、PrivateKey导入、密码更新、账户删除功能。
2.RPC底层通信功能,包括支持https、hhtp、原始socket协议的RPC通信。
3.支持原始20字节hex地址与最新的base32编码地址。
4.ABI的编解码功能。
5.智能合约相关功能,部署、Call、Send交互。
6.编写相关功能的示例代码,方便开发人员参考。
7.编写SDK开发文档。

(5)远期目标:
1.使用C++ SDK开发开发一款2D休闲类游戏,主要为验证SDK稳定性并完善其功能。

(6)项目进度计划:
2021年5月-7月完成如下工作任务
1、github开源SDK
2、github开源开发文档
3、github开源示例代码
4、Forum论坛版块技术交流

(7)申请人:
csyangbinbin

(8)申请时间:
2021/5/27

(9)团队背景:
团队人员均拥有十年左右的C++上位机与嵌入式的开发经验,拥有丰富的windows与linux平台应用开发经验,目前主要从事信号数据处理相关领域工作。

(10)团队构成与分工:
csyangbinbin,SDK主要开发者,负责SDK整体设计与核心代码的编写。
ALLYCSCUI、BaoGuo,主要负责测试用例编写与文档编写相关任务。

(11)经费明细:
15k USDT , 主要用于团队内部激励。

(12)是否开源:
完全开源

(13)资料链接:
(14)产品链接:
(15)项目灵感来源:
(16)其他需要说明的情况:
(17)收款钱包地址:
cfx:aakd0d2x8zuu7zr3vfm3rwnjyv5rxxuvyjz1xwmk1y

(18)项目的精益画布:

2 Likes

支持支持!!

:666:

生态评审规则已更新,见:Conflux社区生态项目申请指南
请按照新项目申请指南中的内容对申请帖进行编辑,并准备评审材料。
项目激励开题答辩时间2021年5月30日,周日,下午14:30
请项目方申请人私信一下联系方式
感谢支持conflux生态建设

golang用的少,建议把官方js-sdk实现的功能函数都实现就很棒了

各位大宝宝们六一儿童节快乐 :slight_smile:

更新下近期的开发进度:
1.SDK基础框架已经基本完善。
2.交易发送、ABI编解码、合约部署调用功能已进行功能性测试,基本可用,开始进行代码封装。
3.账户管理已经开发一部分。
编码工作完成率估计在40%左右吧。
文档还没时间编写,等代码在整理完毕就开始写API文档与示例代码。

开发进度更新:

完成账户相关功能
(1)创建新账户
(2)导入私钥
(3)导入keyStore
(4)修改账户密码
(5)删除账户
(6)显示账户列表

感谢大家的支持

开发进度更新:
完成了官方json-rpc文档中全部33个rpc的调用与返回数据解析功能。至此RPC相关功能开发完毕。

开发文档编写完成。文档地址:https://csyangbinbin.github.io/cpp-conflux-sdk

1.使用QT库完成了一个综合性的demo程序。
2.代码已经开源
cpp-conflux-sdk

1.在Ubuntu16.04+GCC5.4与WIN10+VS2019平台编译通过。(32位与64位均编译测试通过)
2.增加测试用例代码,并在ubuntu与win10系统通过测试。(在tests目录下,使用gtest测试框架)
3.完善文档,修正格式与拼写错误。
4.基于QT5的demo程序 https://github.com/csyangbinbin/cpp-conflux-sdk/releases/download/v0.11/CFX_QT_Demo.zip

项目验收申请

项目概况

C++SDK的代码编写已基本完成,已实现账户管理、RPC通信、ABI编解码、智能合约调用等功能。针对每个功能点已编写了对应的示例代码并编写了相关的测试用例,并编写了基于QT5的综合性的演示程序,目前代码已经在ubuntu16.04与WIN10平台下编译通过并且测试用例也已通过,故向社区委员会申请项目验收。

项目已在github上开源,项目地址为: https://github.com/csyangbinbin/cpp-conflux-sdk
项目文档地址: https://csyangbinbin.github.io/cpp-conflux-sdk
基于QT5开发的Demo程序下载地址: CFX_QT_Demo.zip

后续开发计划

  • 后期会将此SDK集成到Godot游戏引擎内,方便开发大型区块链游戏。
  • 移植到更多的平台与架构(如arm平台,mac系统等)。
  • 持续対软件进行优化,Bug修复等。

什么引擎,都没听过,直接上虚幻5啊老铁!

1 Like

不是很主流的引擎,比较轻量级不过功能齐全,比较适合制作独立游戏。

游戏界:
端游虚幻5
手游unity

godot引擎比较小巧,底层使用C++编写,可以比较容易的集成区块链相关的代码,目前已经将C++SDK中账户管理的功能移植到引擎中了,在引擎中可以直接使用内置的脚本语言调用。
现在正在策划开发一款类似axieinfinity的NFT游戏(目前缺美工 :sweat_smile:),如果有对此 项目感兴趣的小伙伴可以联系我哦,一起打造C链最强多人对战链游。

在godot引擎内测试了C++sdk绑定的代码,基本可用。

Conflux社区077号生态开源项目《Conflux CPP SDK开发》L1阶段验收报告:

链接:https://pan.baidu.com/s/1Bm6epoSj5TKCAvvskWnQvg
提取码:unx2

感谢社区小伙伴的辛苦工作,对于验收中提出的意见与改进在后续的修改中会持续完善。:+1: