青铜虐王者?以太坊被无名项目虐哭的背后,GitHub的活跃度排名你真的看懂了吗?...

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Blockchain_lemon/article/details/82504283

640?wx_fmt=gif


作者/ Valentin Mihov
编译/ Aholiab



常混GitHub的人都知道,想要从数以百万的项目中找到靠谱的项目,有一个重要的参考标准,就是「开发者活跃度」。


然而,最近一家数据分析公司的CTO(本文作者)在分析过GitHub的开发者活跃度指数以及多个数据平台根据该指数提供的排名后,却发现,现有的指数数据和排名有些隐藏的坑,连以太坊这样的王者都被无名项目给虐了。


总之,活跃度排名的水很深,还是让圈内人为你揭秘吧。



作为开发者,在GitHub浏览项目时,「开发者活跃度」(Dev Activity)是一个重要的参考指标


越多开发者愿意投入时间和精力在一个项目上,项目的活跃度高,活跃度高则往往意味着:开发者相信这个项目是靠谱的;这个项目的功能更丰富;以及这个项目存在「猫腻」的可能性更低。


虽然有些土豪开发者可以靠「刷量」把项目的活跃度给刷上去,但对于GitHub上的绝大多数普通开发者来说,刷量的成本是可望而不可即的。况且刷上去的项目,也很容易露出马脚,经常上GitHub的人往往一眼就能看出来。


那么,这是不是说GitHub是筛选项目最靠谱的参考数据呢?带着这个疑问,我们研究了大量活跃度指数的数据,通过将此数据与不同项目进行深度对比,发现一个有意思的现象,那就是现有的活跃度数据和排名并不能反应项目的质量和靠谱程度


既然如此,这一现象是怎样造成的?开发者在参考项目的活跃度时,到底该参考哪些数据呢?



王者败给青铜,GitHub活跃度应该怎么看?


CryptoMiso是一个活跃度数据平台,通过对以太坊、比特币等知名项目的GitHub活跃度指数进行对比时发现,在活跃度的整体排名上,「王者」竟然败给了无名「青铜」。


Particl和DigiByte这样几乎没有存在感的项目,git commits的数量远远高于以太坊,排名竟然也将比特币和以太坊远远甩在身后


640?wx_fmt=png


可问题是,Particl和DigiByte这样的项目凭什么提交数就比比特币和以太坊高呢?通过深挖,我们发现Particl「借鉴」了一部分比特币的源码,随着「借鉴」的操作,也分流了一大批比特币项目下的提交数(commits)和贡献者,简单来说就是窃取了比特币的胜利果实。


而这种操作Particl绝不是个例,类似这样的项目还多着呢。


随便举几个例子:


  • DigiByte,CryptoMiso上排名第8位的项目,复制/粘贴了比特币的源代码;

  • ChainCoin,CryptoMiso上排名第18位,把比特币的源代码进行分叉,虽然提交数不多(不到30个),但仍然比以太坊要高;

  • GlobalCoin,CryptoMiso上排名第22,同样把比特币的源代码给分叉了,虽然活跃度不高,但排名却比较靠前。


虽然CryptoMiso在展示排名时会在对别的项目进行分叉的项目下用小字标注出来,但这么做似乎也并没有什么效果,像DigiByte这样直接复制/粘贴的项目,能耐它何


还有一个有意思的发现是,像CryptoMiso这样的数据平台往往只抓取一个代码库(repositories)的数据。比如以太坊就有很多个代码库,只抓取一个数据往往无法全面反映出以太坊的活跃度。


实际上,以太坊有大量超级活跃的代码库。


640?wx_fmt=png


你可能会想,那我们换个数据平台怎么样?行啊,我们就来看看另一个数据平台Coincheckup,通过对过去一年的提交数进行筛选,很遗憾,数据显示结果与上面如出一辙DigiByte和Particl仍然分别排在第8位和第12位


要找到以太坊,需要往后翻三页。就连比特金(Bitcoin Gold)这样连一条提交都没有的项目,也排在了以太坊的前面。


还有更虐的,很多看起来提交数很多的项目,实际上掺了不少「水分」


比如有些提交就是用pixel art画了个像素风格的画,也能算做有效的数据。


640?wx_fmt=jpeg


640?wx_fmt=png


除此之外,利用这些数据平台去查看项目的GitHub活跃度指数,也是件及其麻烦的事。你要一个一个的去看各个项目的数据,然后再把这些数据放到一起来对比。


不仅如此,正如上面提到很多数据网站抓取的库很单一,你还要再确定这些库抓取的对不对。总之,非常麻烦。


那么,要想更科学的获取项目的GitHub活跃度指数该怎么办呢?



事件 vs. 提交,谁更靠谱?


从上面可以看出,按照项目的提交数这个标准来判断项目的活跃度,根本无法有效的反映出项目实际的活跃度。


因此,有些开发者认为,现有的排名机制不好,更科学的方法应该是基于「项目在GitHub上所产生的事件」。那么,事件到底又指什么呢?


事件(event)可以包括以下几个维度


  • 代码推送(code pushes)数量;

  • 互动行为数量,包括添加/删除/编辑/评论等行为;

  • pull request交互数量,包括在PRs里的添加/删除/编辑等;

  • GitHub Wiki编辑数量;

  • commits的评论数;

  • 开源代码库数量。


通过事件(event)来判断项目的活跃度还有一个好处,那就是所有事件的返回格式都是统一的。如下面代码所示:


640?wx_fmt=png


调用语句也非常简单:


640?wx_fmt=png


通过「事件」来获取GitHub项目的活跃度,不仅能避免上面的问题,还有以下好处:


  • 避免了对某个项目代码库代码的分叉,就能自动继承该项目的事件数据;

  • 历史抓去记录不可更改;

  • 开发者活跃度数据更多元,不仅有提交代码数量,还包括上面提到的种种维度。


通过这样的判断标准再来筛选,我们得到了以下结果


640?wx_fmt=png


看到了吗,以太坊和比特币妥妥出现在了它们应该出现的位置上,而那些在现有筛选机制上排名靠前的项目,如DigiByte、比特金等,则一个都没有出现


利用这一方法,我们也对ERC20 Token进行了筛选,得到的结果也靠谱了很


640?wx_fmt=png


从上图可以看出,排在最前面的分别是:Status, EOS, BAT, Golem,甚至连波场(TRON)这样近期被黑的厂商,也排在了相对客观的位置。



其他有意思的发现


通过今天的文章,我们可以得出一个结论:GitHub项目的活跃度指数,基于事件比基于提交数更科学,也可以避开很多坑。


同时,通过数据的结果来看,也能看出一些有意思的现象:比如ERC20项目的开发者活跃度,比很多区块链平台项目高得多。


这意味着,以太坊已经吸引到了大量的优质开发者基于这个平台做开发


作为开发者之一,相信通过科学的方法筛选和分析数据,找的项目会更靠谱。从今天起,也尝试起来吧。


PS. 本文提到通过事件(event)筛选开发者活跃度的数据平台为: 

https://santiment.net




最新热文:



640?wx_fmt=jpeg


大力戳↑↑↑  加入区块链大本营读者⑦号群

(群满加微信 qk15732632926 入群)

(内容转载请联系微信:qk15732632926)

(商务合作请联系微信:fengyan-1101)


640?wx_fmt=jpeg

展开阅读全文

没有更多推荐了,返回首页