Тестирование ECIP-1017, новой монетарной политики

В декабре этого года Эфириум Классик перейдёт на новую монетарную политику ECIP-1017. Она активно обсуждалась зимой и была принята сообществом. К маю мы в ETCDEV подготовили необходимые изменения для обеих программ-клиентов, Parity и Geth, после чего провели обширное тестирование. В начале сентября новая политика была реализована в основной сети с Geth 4.x.x и включена в тестовую сеть Morden на блоке 2M.

В дополнение к нашим модульным тестам и ручному тестированию, мы решили, что нам нужно также сделать общедоступную систему для проверки полной интеграции с сетью. Эти инструменты и среды могут быть полезны энтузиастам, экспериментирующим с ETC, разработчикам dApp для проверки совместимости с предстоящим форком, а также как компонуемая, многократно используемая система для изучения и интеграции с тестовой сетью в будущем.

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

Тестовая сеть

Мы разработали простую сеть с 8 нодами и 2 майнерами, используя клиенты Parity и Geth. Для того чтобы более реалистично воспроизвести поведение реальной сети, мы добавили симуляцию проблем с сетью и задержки отклика. Это позволило нам продемонстрировать справедливое распределение блоков и анкл-блоков. Конфигурация должна была также позволять майнинг на CPU и работу программного обеспечения на базовом оборудовании.

Вы можете в несколько кликов запустить изображённую ниже топологию при помощи Google Cloud Containers или в любом кластере Kubernetes.

Мы подготовили набор инструментов командной строки для настройки и проверки статуса сети, а также проверки доходов майнеров и блокчейна. Хотя ECIP-1017 подразумевает переход в новую эру каждые 5 000 000 (пять миллионов) блоков, наша конфигурация по умолчанию будет составлять 500 блоков, так что через 2–3 часа (вместо 2–3 лет!) работы этой частной цепочки сеть будет переходить в новую эру, как это описано в ECIP-1017, с сокращением объёма эмиссии на 20%, и мы сможем удостовериться, что вознаграждение за каждый найденный блок и общий доход майнеров соответствуют спецификации.

Как это работает

Прежде всего, вам понадобится создать в Google Cloud новый кластер Container Engine. Если у вас нет аккаунта Google Cloud, вам будет нужно зарегистрироваться и активировать Google Compute API. Можно также запустить сеть в пользовательском кластере Kubernetes, но это не предусмотрено скриптами по умолчанию, так что вам придётся их редактировать для проекта, реализуемого не в Google Cloud.

После настройки своего вычислительного кластера и завершения настройки вы можете развернуть сеть с помощью команды bin/deploy.sh:

Проверка статуса сети

Затем проверьте статус сети, введя команду bin/status.py:

На приведённом скриншоте можно видеть, что блокчейн работает как ожидалось, мы уже во второй эре и форка не произошло. Отлично!

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

Возможно, вы захотите отключить одного из майнеров, а после перезапуска он начнёт майнить альтернативную ветвь. У вас есть возможность поэкспериментировать с сетью, перезапускать отдельные её части или даже изменять её топологию, если вы в достаточной мере знакомы с возможностями Kubernetes.

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

Мы хотим убедиться сами и продемонстрировать другим, что и Geth, и Parity, способны следовать одной цепочке после ожидаемого сокращения вознаграждения, как того предусматривает принятая монетарная политика. Мы хотим также убедиться в том, что все участники нашего блокчейна с действующим ECIP-1017 корректно определяют состояние и суммы получаемых вознаграждений. С этой целью мы написали скрипт verify.py, который загружает весь изучаемый блокчейн на локальный компьютер (будьте терпеливы, это может занять некоторое время 😉 и проверяет корректность каждого блока.

Помимо тестирования совместимости Geth, Parity и других программ-клиентов, вы можете использовать его для эмуляции приложения для Эфириум в различных условиях, так что не стесняйтесь менять и настраивать эту тестовую сеть так, как это нужно вам.

Ссылки

Источник: блог ETCDEV



Рубрики:Важное, Сообщество, ETC, эфир

Метки: , ,

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s