bitshares-core Waves exonum burrow multichain openchain ergo iz3node iroha Acryl Add a filter Рис. 1: Облако имен репозиториев, находящихся в системе. Размер каждой надписи зависит от количества упоминаний соответствующего репозитория в системе. pluggable YAC Tendermint SCP Round Robin PoW PoS PoET LPoS DPoS DLCPoA BFT Autolykos Add a filter Рис. 2: Названия алгоритмов консенсусa. Размер каждой надписи зависит от количества репозиториев с данным алгоритмом. Перечень отображен- ных алгоритмов соответствует тем распределенным реестрам, описание которых присутствует в нашей системе.
BFT bitshares-core rippled Waves PoS neo pluggable bitcoin PoW multichain Round Robin fabric graphene stellar-core SCP iroha YAC bigchaindb Tendermint burrow go-ethereum Рис. 3: Граф алгоритмов консенсуса. 1 Критерии ранжирования репозиториев Для оценки и сравнения платформ распределенных реестров была разрабо- тана система критериев. Согласно этим критериям на основе соответствую- щих репозиториев GitHub оценивается активность разработки и поддержки проектов с открытым исходным кодом. Перечень всех рассматриваемых ре- позиториев представлен на рис. 1. На рис. 3 представлено их соответствие используемым алгоритмам консенсуса. Оценка производится по следующим признакам: 3
fabric exonum ergo corda burrow bitshares-core bitcoin bigchaindb Waves Acryl Add a filter Рис. 4: Оценки репозиториев по критерию Активность разработчиков. 1. Активность разработчиков. Оценка (рис. 4) складывается из данных за 3 месяца, предшествующих моменту оценки. • Среднее количество добавляемых строк в неделю, • Среднее количество коммитов в неделю, • Давность последнего релиза. Для этого пункта используется ин- вертированная шкала, то есть репозитории с более давними ре- лизами считаются менее активными. 2. Фидбек (рис.5). Для всех issue текущего репозитория, у которых есть хотя бы один комментарий, FA: FA = 1 n X n (closed_at(i) created_at(i)), 4
fabric exonum ergo corda burrow bitshares-core bitcoin bigchaindb Waves Acryl Add a filter Рис. 5: Оценки репозиториев по критерию Фидбек. где n количество комментированных issue, closed_at(i) and created_at(i) даты закрытия и создания issue i. В этом критерии мы учитываем только те issues, в которых есть хотя бы один комментарий. Такое условие накладывается, чтобы избежать подсчета тех issues, которые были поставлены для внутренних целей проекта или тех, которые закрывают за давностью и не актуально- стью. 3. Заинтересованность аудитории (рис. 6) складывается из • количества форков; • количества развивающиеся форков. Под развивающимися форка- ми мы будем понимать те, у которых не совпадают даты создания и даты обновления. Этот пункт показывает заинтересованность 5
• количества созданных issue за последние 3 месяца (в том числе, открытые); • количества звездочек. 4. Прогресс (рис. 7) состоит из • коэффициента роста / падения активности разработки вычисля- ется по формуле D1 = 1 n3 Pn3 j3=1 commits_per_week(j3) 1 n1 Pn1 j1=1 commits_per_week(j1) , где n1 и n3 количество недель в 1 и 3 месяцах, commits_per_week(j) количество коммитов за неделю j; • коэффициента роста команды разработчиков D2 = 1 n3 Pn3 j3=1 committers_per_week(j3) 1 n1 Pn1 j1=1 committers_per_week(j1) , где n1 и n3 количество недель в 1 и 3 месяцах, committers_per_week(j) количество контрибьютеров, кто делал коммит в неделю j. Отметим, что первые два подпункта критерия 1 схожи. Мы учитываем оба эти пункта, так как хотим получить оценку, не зависящую от стиля работы разработчиков с GitHub. Так, например, наличие в репозитории значитель- ного количества коммитов, содержащих малые изменения кода, не будет приводить к высокой оценке. Так же, наоборот, в случае активной рабо- ты разработчиков, предпочитающих редко совершать коммиты, оценка не будет занижена. Для получения высокой или низкой оценки активности разработчиков необходимо учитывать оба этих значения. 8
репозиториев GitHub. По полученным данным были построены вспомогательные графи- ки: Гистограммы • Количество контрибьютеров; • Количество коммитов за последний год; • Количество открытых issue; • Количество "звездочек"у репозитория; • Количество релизов; • Количество форков; • Количество пул-реквестов. Диаграммы • Количество коммитов понедельно; • Количество закрытий issue понедельно; • Количество добавлений и удалений строк кода понедельно. 9