Block Collider – аудит и обзор кода

0
489
views

Команда ICOdaily подготовила перевод статьи «Аудит и обзор кода Block Collider» от

Еще больше новых проектов, переводов интересных статьей и новостей на нашем телеграм канале


Block Collider – аудит и обзор кода

Средний код без множества проблем, но что делает Block Collider?

Прежде чем, мы перейдем к проверке кода Block Collider (NRG), давайте рассмотрим концепцию.

Block Collider это блокчейн, который поглощает другие блокчейны. Итак, позвольте мне быть предельно ясным, я не понимаю Block Collider. Система поглощает блоки других цепей и делая это, что именно она выполняет? Таким образом, я перевел 1 ETH от 0x1 до 0x2 на Ethereum, блокчейн Block Collider майнит этот блок, теперь сеть знает об этом, и что?

Это вообще не меняет ничего, данная система не позволяет мне перевести 1 ETH в NEO или BTC. Это путь в один конец, Block Collider поглощает нижестоящие блоки, конец.

Давайте взглянем на некоторые функции.

С принятием мультичейн технологии Block Collider станет возможным:

~ Транзакции и смарт-контракты могут составляться и выполняться смарт-контрактами на других сетях

~ Безопасные транзакции могут соединяться между блокчейнами без “свидетелей”, “доверенных узлов” или любого типа централизации

~ Транзакции между цепочками могут быть ускорены настолько, что эта скорость будет выше скорости другой соединенной цепи

~ Может быть гарантировано, что смарт-контракты будут выполняться автоматически

~ Разработчики распределенных приложений могут встроить возможность балансировки нагрузки между цепями

Транзакции и смарт-контракты могут составляться и выполняться смарт-контрактами на других сетях. Как? Я начал перевод ETH в смарт-контракт NEO, как это возможно без соединения ETH NEO? Поглощающий блоки Block Collider не добавляет этой функциональности если только блоки не реализуют двунаправленный поток. Block Collider, будучи осведомленным о состоянии других блокчейнов, фактически, ничего не выполняет.

И вот почему далее мы будем рассматривать их код, несмотря на то, как мало данная концепция имеет для меня смысла на технологическом уровне.

544 коммита, 12 ветвей, 4 контрибьютора. Таким образом Block Collider имеет концепцию Rover’а, это и есть поглотитель блоков, и я очень заинтересован увидеть, как это работает, так что давайте начнем с этого.

Для начала я рад видеть const декларирование (объект не может быть изменен после инициализации). Я терпеть не могу видеть var декларации (объект может быть изменен), когда const будет работать, так что хорошее начало.

Это Waves rover (программа, чтобы собирать блоки из Waves Api), она использует преднастроенный Waves Api, чтобы собрать блок, сравнивает блок с локальным кешем, а затем пытается создать единый блок (объединяя все текущие отложенные блоки). Я не знаю, чего я ожидал, но ожидал я большего: не поймите меня неправильно, нет ничего плохого с этой реализацией, но система полагается на стандартную синхронную связь для получения своих результатов.

Я бы предпочел что-либо более децентрализованное: сейчас конечно это становится смешным, полагать, что каждый узел Block Collider’а должен также запускать узел каждого блокчейна, который он поглощает, но это решение просто самое базовое.

Та же настройка для NEO, как и для Waves.

Та же и для Lisk и сейчас это выглядит как копипаст.

Я не являюсь поклонником обработки ошибок, но это PoC, в конце концов, так что нет причин для того, чтобы придираться.

Достаточно много материала для реализации Ethereum, меньше всего блоков сканирования и фактически является реализацией взаимодействия Ethereum. Не знаю, почему неравенство, но я предпочитаю эту реализацию предыдущим трем.

Внедрение BTC происходит по той же схеме.

Теперь стало ясно как блоки связываются. Немного централизовано, но мы не будем поворачивать это против разработчиков. Таким образом, создается поток между блоками, и я не знаю почему.

Это transaction.js, хэш — это всего лишь blake2bl входных переменных. Я не вижу, как “откуда” (from) подписывает эту транзакцию, но возможно это из self.trust, так что давайте вернемся к этому позже.

По большей части это очень рудиментарный код. Я не говорю, что плохой, просто очень простой.

Не так уж много тут происходит.

Преобладающая реализация блока выше: если блок не был замайнен, то вы создаете новую Coinbase транзакцию, которая присуждает вам MinerReward (никаких сборов, в настоящее время) и подписываете блок. Простая реализация. Хотя я не вижу валидации блока.

Сервер Standard Express для взаимодействия с HTTP.

Множество жестко заданных значений, специфичных для пользователя, которые не являются очень хорошей практикой, но они и не являются изначально плохими, в подтверждении концепции.

Снова, ничего тут нет интересного, но ничего нет и неправильного. Ожидал чего-то большего для рассмотрения,

Большая часть вещества похожа на повторную реализацию вот отсюда https://github.com/bcoin-org/bcoin

Хорошие части, в большинстве взяты из концепции bcoin. 

Вердикт обзора Block Collider

Код поглощает блоки, это создает новые подписанные блоки из поглощенных блоков. Какая у этого есть цель, я честно не знаю. Почему они делают это, я не знаю также. Сам по себе код слишком обычен.

Я могу сказать, что система невероятно торопится, стиль ввода и отступов неаккуратный, и общая кодовая база испытывает к нему повышенное внимание (дублированные разделы, все файлы прокомментированы, я подозреваю, что у них был крайний срок, и они стремились все сделать на лету).

Это не проблемный код, но и не хороший код также. Я действительно не понимаю, что они приносят в игру. Кажется, они просто скопировали bcoin и добавили централизованную поточную передачу, и это на самом деле ничего не дает.

Дисклаймер. Обзоры кодов Crypto Briefing выполняются посредством анализа того, что отображается на главной ветке репо. Этот обзор не является комментарием к общему проекту, его объему или успеху. Обзор сделан в образовательных целях, все комментарии, данные в этой статье, это мнение автора. Нормально, что код быстро изменяется, следовательно, мы делаем моментальные обзоры кода, чтобы они моментально отображали снимок, сделанный в определенный момент времени. Информация, содержащаяся здесь, не должна использоваться в качестве комментария или рекомендации по проекту в целом.

 

 

 


Еще больше новых проектов, переводов интересных статьей и новостей на нашем телеграм канале

Предыдущая статьяNollycoin
Следующая статьяTaklimakan Network
ПОДЕЛИТЬСЯ

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here