понедельник, 24 сентября 2018 г.

Etherium, Solidity, geth.

Вот такие интересные имена бывают. Брендон Арванаги. Это блоггер, который пишет о блокчейне. Интересно, подробно и с примерами.

Меня заинтересовала возможность попробовать блокчейн у себя на компьютере или на собственном маленьком кластере. Оказывается, для этого есть все возможности. На Golang написана реализация Эфирного блокчейна, называется geth. Арванаги написал статью How to Set Up a Private Ethereum Blockchain using Geth где рассказывает азы работы с этой штукой. А если захочется со смарт-контрактами поиграться - пожалуйста, пост  Testing Smart Contracts Locally using Geth.

Что же дальше? Как выглядят суровые будни разработчка смарт-контрактов в России ? Об этом можно почитать в статье Как я окунулся в смарт-контракты.

А могут ли хакнуть блокчейн ? Еще как. И смарт-контракты только помогают в этом злоумышленникам. Уже и Лаборатория Касперского заинтересовалась безопасностью блокчейна. Вот интересный пост от их сотрудника (с описанием крушения The DAO).

Блокчейн: византийский консенсус, установка в локалке и версия на Питоне

Давно уже слышал, что в блокчейне решена проблема византийского консенсуса и двойных трат, но подробного разбора этого момента не видел.

В серии статей Understanding Blockchain Fundamentals кратко объясняется в чем состоит проблема византийских генералов. В изначальной формулировке (1975 года)  говорилось о двух генералах. В 1982 году вышла статья Лэмпорта и других, где задача была обобщена на
случай n генералов. Было показано, что можно достичь консенсуса, если предателей не больше трети.

В третей статье кратко описывается протокол delegated proof of stake, о котором до этого не знал почти ничего. Основная идея, что майнеров (в PoS и DPoS их называют валидаторами) выбирают пользователи, причем больше голосов у тех, у кого больше местной криптовалюты.  А в обычном PoS каждый может быть валидатором, но больше шансов добавить блок у более "богатых" пользователей.

А про двойные траты я нашел информацию в статье A Practical Introduction to Blockchain with Python. Там же, разумеется, приводится реализация блокчейна на Питоне.

А есть еще реализация блокчейна Ethereum на Go, которую можно скачать и развернуть у себя, в своей сети.

воскресенье, 16 сентября 2018 г.

Искусство тестирования ПО

Замечательная статья на Хабре Юнит-тестирование для чайников. Моки, стабы и прочие интересные штуки. Вот еще статья на эту тему, там побольше примеров. Вот здесь обсуждается классификация тестирующих объектов (Dummy, Fake, Stub, Mock) 

А вообще информации про тестировании полно. Что еще раз подтверждает необходимость тщательной отладки ПО.