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越來越好


分享到:


相關文章: