BCH开发者姜和平:哥白尼—BCH协议的Go语言完整版

2018年8月1日,BCH“扩融世界”周年国际峰会暨BCH生态建设项目发布会在香港丽思卡尔顿酒店召开。此次会议不仅BCH开发团队全员出席,Bitcoin.com创始人 Roger Ver,比特大陆创始人吴忌寒,BTC.top创始人江卓尔,Bitcoin ABC 首席开发者 Amaury Sechet也将出席并发表演讲。除了对BCH的未来发展方向和发展趋势进行解读,大会还会针对“扩容边界”问题开展圆桌讨论。

金色财经作为独家媒体合作方,将全程直播报道此次会议。详情请关注金色财经APP。

BCH开发者姜和平以“哥白尼—BCH协议的Go语言完整版”为主题发表演讲,以下为演讲实录。

BCH开发者姜和平:哥白尼—BCH协议的Go语言完整版

BCH开发者姜和平

大家下午好!我是姜和平,是BCH的开发者,今天介绍一下哥白尼这个项目。分四部分介绍:第一,项目背景是什么;第二,简要介绍项目;第三,当年项目进展;第四,近期的计划。

这个项目起因是因为BCH的开发原来是基于一个C++的版本,这个版本的特点是比较稳健,时间比较长,经受了更多的考验。但是,它对于开发者来讲进入的难度比较大,学习的曲线比较陡,对于新进入的开发者不太友好。

2、整个系统大部分在bitcoin abc节点上,如果有另外一个语言适应的版本,对整个系统的可能性比较好的。

3、通过客户端可以进行开发者之间的竞争和协作,提高整个客户端快速进化。

这个客户端对原来的软件结构做了重新梳理和设计,期望结构简洁,使后面开发者进入时成本更低一点。使用了Go语言实现,目的是降低开发者进入门槛,提高工程效率。bitcoin abc实现抽象出业务逻辑,保障资金安全,在主要逻辑上不能和bitcoin abc有太多的偏差。

另外,参考了BTCD的实现,是另外一个Go语言的客户端,抽象其代码结构,语言上讲结构清晰比较简洁。哥白尼项目希望用一种让更多开发者简单进入的方式来写BCH核心业务逻辑。

现在看到的图是抽象出来的软件结构,对BCH所有的代码过了一遍,把主要的模块和核心业务做了一个梳理,大概跟大家简要介绍一下,原来是没有这些层次的概念,当你要看一部分或者使用其中一部分代码时,很多代码都会关联起来,造成了它的复杂性。

我们把其中不变的部分,像Block chail、UTXO等不变的东西是路由(音)层,我们做出不同的业务逻辑,向上供各种系统使用。对外交互有两个接口,一个是RPC接口,一个是Net层面。有两种可以实现存储。

上个系统希望更多简洁,现在看到的图是一个新块来的时候整个业务处理逻辑,这是BC中比较核心的业务,通过BC处理逻辑的梳理,分析出了整个业务逻辑,包括哪些地方是比较容易发生问题的,哪些地方可以改进的,哪些地方是不能回避的。我们对核心业务做一个分析,确保做出来的客户端能够和线上跑的最广泛、最安全的版本最广泛、没有偏差。

这个项目上我们使用了Go语言,这个语言优势上来讲:

部署简单,直接打成一个程序,不依赖太多的东西。天然的并发有很好的支持。性能比C++弱一点,但是比别的语言好很多。本身语言的特性让我们觉得在BCH这样一个系统上其实需要的不是特别高的性能,需要更多的功能、更多人的进入,选择C语言可以达到这个目标。

我们项目经过了半年多的开发,现在在测试网络上已经完成了所有测试网络block的同步,其中包括交易验证和脚本验证及UTXO集合验证是我们正在做的,从bitcoin abc,当每个块来时会使UTXO集合做一个改变,会和所有发生的块跟UTXO做一个比对,来保障新的客户端工作跟bitcoin abc完全同步的。

8月份希望完成UTXO验证,9月份完成Mempool和chail验证做完,10月份中旬完成测试网络出块,10月底进入正式网络进行测试和试运行。

以上是项目的大概情况,做这个项目过程中我们发现BCH社区的开发者特别稀缺,原来大概只有四个人,后来扩展到十来个人,但是依然感觉功能太多,人完全不够。要想招到比较有质量的程序员在这个行业里还是挺难的。在这里也呼吁或者希望有更多的开发者进入到BCH的社区中进行运营开发,大家一起努力让BCH越来越好


分享到:


相關文章: