Разработчики Ethereum Classic создают собственный клиент Mantis

Группа разработчиков Ethereum Classic стремится отойти от программного кода Эфириума. Поэтому они потратили несколько месяцев на создание с нуля Mantis – собственного клиента Ethereum Classic.

С тех пор как Ethereum Classic отделился от Эфириума в результате хардфорка DAO прошлым летом, две платформы умных контрактов делят между собой кодовую базу, инструменты разработки умных контрактов и многое другое. По сути, за исключением нескольких изменений протокола, таких как отключение «бомбы сложности» и изменения валютной политики в блокчейне Ethereum Classic, сети были практически идентичны.

Однако Ethereum Classic твердо намерен изменить положение вещей. При помощи своих разработчиков проект хочет позиционироваться как жизнеспособная альтернатива Эфириуму. Ранее на этой неделе Алан МакШерри (Alan McSherry), разработчик Ethereum Classic и руководитель проекта Mantis, анонсировал бета-версию нового клиента Ethereum Classic в своем блоге.

Созданный на базе языка программирования Scala, Mantis является результатом серьезных усилий сообщества Ethereum Classic, которое хочет доказать, что имеет собственную команду разработчиков, не хуже, чем в Эфириуме. Mantis должен стать основой для будущих обновлений в Ethereum Classic.

«Mantis – хорошая отправная точка для внесения изменения в Ethereum Classic», – говорит МакШерри. «Мы можем сказать, что создали с нуля клиент на Scala. И когда речь идет о будущем Ethereum Classic, мы точно можем сказать, что знаем, о чем говорим».

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

Клиент блокчейна

В мире блокчейна клиент – это ПО, которое запускается на компьютере или «узле» и соединено с сетью. В блокчейне клиент отвечает за загрузку и сохранение в актуальном состоянии полной копии блокчейна. В некотором смысле, он также выступает в роли сервера, который обслуживает другие узлы сети путем проверки блоков, подписей в транзакциях и т. п.

С этой точки зрения, Mantis концептуально представляет собой полную копию клиентов Эфириума. Он содержит алгоритм проверки майнинга, алгоритм консенсуса, всю логику сети, криптографию, которая позволяет пользователям тратить свои монеты, и логику для подтверждения умных контрактов.

Как клиент Mantis также предоставляет интерфейсы для создания транзакций. Mantis поддерживает версию интерфейса кошелька с командной строкой для создания транзакций. Пользователи также могут получать доступ к клиенту через браузер Mist по HTTP.

Стоит отметить, что Mantis – не единственный клиент, доступный для пользователей Ethereum Classic. Другие группы могут работать над другими клиентами, отмечает МакШерри. При этом у сообщества Ethereum Classic по-прежнему есть два других клиента: Geth, написанный на Go, и Parity, написанный на Rust. МакШерри отмечает, что он и его команда надеются, что Mantis в конечном счете станет основным клиентом для Ethereum Classic.

Функциональный язык

Mantis отличается от других клиентов в Эфириуме тем, что он написан на Scala – функциональном языке программирования. Главными преимуществами Scala являются простота тестирования и предсказуемость – характеристики, позволяющие разработчикам проверять код на ошибки и бреши в безопасности гораздо проще, чем в других языках.

«Если у вас есть предсказуемый код, то он сильно повлияет на качество продукта в лучшую сторону», – говорит МакШерри.

Существуют уровни функциональных языков. Scala – это скорее гибридный язык, который является чем-то средним между такими функциональными языками, как Haskell и OCaml. А это означает, что в то время как Scala позволяет разработчикам писать в функциональном стиле, он достаточно легко осваивается, что делает его доступным для широкого сообщества разработчиком, которые могут захотеть внести свой вклад в открытый исходный код.

МакШерри объясняет, что так как Scala является функциональным языком, он также позволяет применять фреймворки, такие как Stainless, которые используют строгие математические доказательства, позволяющие убедиться, что код работает так, как задумано. Такое преимущество хорошо воспринимается сообществом Ethereum Classic, которое выступает за неизменяемость и за идею того, что «код – это закон» и что контракты должны работать в более безопасной среде.

«Наша конечная цель – гораздо более качественный код, а это очевидно означает повышение безопасности для контролируемых средств», – говорит МакШерри.

Только вперед

Что касается технологической карты развития Ethereum Classic, то Mantis – первый шаг в сторону улучшений в сети и возможно более серьезного технического отклонения от Эфириума. Например, планируется в конечном итоге подключить Mantis к платформе криптовалютного кошелька Daedalus компании IOHK, которая предоставит Mantis графический интерфейс. «Это следующая цель», – говорит МакШерри.

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

«Мы рады, что дошли до той стадии, когда практически достигнута функциональность», – говорит МакШерри. «Следующий этап – довести до совершенства функциональность, посмотреть на ее производительность, вернуться назад, подчистить хвосты и сделать самый лучший клиент».

МакШерри отметил, что следующая версия Mantis должна появиться в сентябре этого года.