判斷一個項目是否是空氣項目,最好的辦法無疑就是直接查看其代碼。但對非計算機專業或不懂計算機的投資者來講,他們甚至都看不懂代碼在講什么,更談不上去對其進行判斷了,對此,我們采用一些量化的手段去對每個項目提交的質量進行判斷,并形成每月的代碼質量榜單。簡單來講,即是通過代碼去看團隊有沒在用心干活。
一般來講,可以到為大家所熟知的非小號(www.feixiaohao.com)、coinmarketcap(coinmarketcap.com)或項目方官網去查詢代碼。比如我看好EOS,我就會去查詢這個項目有沒有代碼庫,代碼庫是否開源。但是我們也發現,有很多比較知名的商業項目,他們只有一個庫,但里面是空的,這其實很可能是項目方擔心代碼開源會被抄襲,因此暫時并未披露,對于這樣的項目,我們也希望他們之后能盡快公布進度,或者在周報里做一些披露。
如果一個項目既有代碼庫,又開源了,我們就可以通過以下5個標準去對其進行量化打分,也就是我們每個月都會出版的代碼質量榜單。
【庫熱度】
首先在coinmarketcap查詢項目代碼庫地址,左下角“Source Code”就代表其代碼庫地址,或者在項目官網上也可以找到庫地址。
點擊進入代碼庫,可以看到ETH代碼庫主要界面,最上面一排可以看到主要的幾個庫,也是更新最頻繁的幾個。下方可以看到最近更新的幾個庫。評判代碼庫質量,我們首先用的指標是庫熱度,具體點進某個庫可以看數據。我們嘗試點進go-etherum,可以看到該庫的詳細信息。
go-etherum庫界面如下圖所示,在右上角我們可以看到它的Watch、Star、Fork 三項數據,這三個數據可理解為類似微博的關注、收藏、復制。這三個指標越高,我們就認為庫熱度越高。
我們對庫熱度的打星標準為:計算代碼庫Watch、Star、Fork三項指標的平均值,高于500定義為極高,得1星;100-500定義為高,得0.5星;20-100定義為中,20以下定義為低,中和低不得星。
可以看出,ETH代碼庫里,go-etherum庫熱度極高,均值大于500,可以判定其得到一星評價。
【開發者數量】
查看開發數量如下圖所示,可看到在go-etherum庫共有266個開發者。這也是一個非常重要的指標。一個比較優秀的項目會有很多人去進行開發。基于這幾個指標我們都有定量標準。統計該庫本月內提交過commits的開發者contributers數量。高于12定義為多,得1星;6-12定義為中,得0.5星;6以下定義為少,不得星。
【迭代速率】
版本迭代對項目來講是非常關鍵的,假設你在那里寫代碼,即使一天寫幾千條,最后沒有成品出來依然沒有用,特別是應用類的產品,假如寫了3個月代碼最后連一個給用戶的東西都沒有,這款產品無疑是比較失敗的。
在go-etherum庫界面,“release”代表版本迭代次數,點擊“release”看查看其迭代版本。
可以看到,eth在4天前有一個版本出來,13天前有一個,說明其迭代速度還是很快的,代碼質量比較優秀。
我們根據發布的所有版本數量除以項目開始到現在的時間就可以算出其迭代速率,發布版本速度越快說明團隊開發進度較快較活躍。以大餅、姨太主鏈版本迭代速度為基準值,得出區塊鏈項目版本迭代標準為每14.25天發布一次。進而統計該庫release單版本平均花費天數,除以上述基準值得出該庫迭代速率。低于2定義為快,得1星;2-4定義為中,得0.5星;4以上及無release的定義為慢,不得星。
【當月提交】
在go-etherum庫界面點擊“commits”查看當月代碼提交數,右邊branch是指庫有很多分支,可以通過不同分支寫代碼最后再進行合并。
對于當月代碼提交數的打星標準為:0.005*提交commits次數(commits次數需大于10),最多得1星,如200及以上可得1星,100可得0.5星,10以下不得星。
【提交類型】
為防止某些無意義代碼更新或重復提交,我們需對提交的代碼類型進行人工審核,堅持客觀數據主觀分析。該項需要建立在足夠的提交樣本上才能做出判定,因此,若當月提交在10次(含)以下,我們給出“提交太少,無法評判”的認定;若提交次數在10次(不含)以上,則深度查看統計階段內的commits,將其類型分為:
【A1】- 持續需求開發迭代階段
【A2】- 明顯的開發迭代后的集中BugFix、Test階段
【A3】- 初始化提交導致的功能迭代、配置修改混合
【B】- 日常運維型的少量BugFix、Test階段
【C】- 日常運維型的修改配置
【D】- 其他難以被歸類的類型
A1及A2得1星,A3得0.5星,B、C、D不得星;
一月份:
1. 評價指標大豐富:本次代碼質量榜將原有三項評價指標進行了擴充,融入版本迭代速率、活躍開發者數量等指標,更加全面地對各類項目進行評價。
2. 幣種描述大完善:本次代碼質量榜中貼心地列出所有虛擬貨幣名稱以及其簡稱,方便大家快速識別各種貨幣。
二月份:
1. 每月排名動態變化:引入項目排名動態變化機制,可以清晰地看到各項目每月排名升降變化趨勢。
2. 評判標準修正:對于當月有3個以上活躍庫的項目,熱度、提交次數評判不再局限于最活躍的兩個庫,而是將本月所有活躍庫納入考察范圍中,另外對部分Fork自大餅庫的熱度進行了修正,Fork指標數值不再對項目本身的庫熱度產生影響。
3. 完善項目詳細描述:拒絕刻板的定性描述,針對榜單排名前20、部分熱門項目進行代碼詳細解讀,讓大家能準確知道各項目最新開發進度。(注:此項工作量較大,目前僅能對上述范圍內的項目展開評測)
4. 新增風險項目預警環節,對部分進度更新緩慢、已過roadmap時點而未有效交付產品的項目進行風險提示。
三月份:
1. 擴充項目范圍:利用新技術增加了評審項目的數量,目前已包含市值前200的所有項目,后續仍會進一步擴大。
2. 修正提交次數評星方法:我們認真回顧了以往排名,發現在原有階梯式評星模式下,有部分項目因為僅提交99次commits而未達到100次的標準就導致整體評級少了0.5顆星,但本質上99與100次commits并無太大區別,原有的評判標準在臨界點的評判上缺乏公允性,因此我們對提交次數的星級規則進行了修正。
3. 豐富榜單元素:在原有基礎上新增各項目月底市值排名,方便讀者對比發現存在較大升值空間的技術幣種。
四月份:
1. 新項目加入:ela、ont、datum、ipc、ubtc
2. 鑒于前段時間bec、smt等token發現的以太坊漏洞,這次會嘗試加入新的安全審計部分。