Что я сделал для Голоса в свои годы
Приветствую!
Меня зовут Игорь @b1acksun. Вот уже более года являюсь разработчиком golos.io. Карьеру начинал как JAVA разработчик: работал в крупном банке, разрабатывал и поддерживал систему приема платежей от населения. Успел поработать и в Hewlett-Packard. Разрабатывая различные сервисы, все чаще начал сталкиваться с задачами, которые требовали наличия web интерфейса. Вот с этих пор я и заинтересовался web разработкой.
С самого начала работы большинство моих задач в Голосе связаны с разработкой и поддержкой сервисов golos.io. В первую очередь — это клиент tolstoy. Помимо поиска и устранение багов, разработки новых фич, самым главным является подготовка клиента к хардфоркам.
В рамках этой задачи необходимо, как минимум, при изменении API, делать работоспособным клиент, как максимум — добавлять новые возможности.
Из самого интересного, что я сделал для Голоса:
1. Реализация пользовательских активов (UIA)
Самая объемная задача. Была реализована логика и интерфейс для создания, выпуска, сжигания и просмотра информации о пользовательских активах (UIA и bitAsset).
2. Разработка внутренней биржи
В рамках данной задачи была разработана биржа, которая позволила торговать пользовательскими активами (на основе BitShares).
3. Оптимизация скорости работы клиента
Думаю, многие помнят времена, когда ноды работали нестабильно и долго отдавали данные. Было решено найти узкое место. В этом помогла система метрик встроенная в клиента, которая замеряла время ответа (отдельное спасибо @muhazokotuha, который поднял сервис для сохранения и визуализации этих данных). Как только были собраны данные, сразу же стало ясно какие из вызовов можно кешировать. Был разработан кеширующий сервис для лент “Новое”, “Актуальное”, “Популярное”. В качестве хранилища выступал Tarantool.
4. Подготовка Golos.io к хардфоркам
- При подготовке к 17 ХФ мной был реализован метод get_state (так как он был удален из демона). Данный метод служит для начального формирования состояния приложения. Во время реализации в клиенте он был полностью покрыт тестами, что позволило исключить его неправильное поведение.
- При подготовке к 18 ХФ мной был реализован фича-флаг, который позволил сразу же после принятия хафрдфорка в клиенте «включить» весь новый функционал. Раньше для этого приходилось сразу после активации ХФ производить деплой.
5. Поддержка библиотеки golos-js
Важный для меня момент: постоянная работа с библиотекой golos-js, ее поддержка. Эта библиотека — один из способов получить/записать данные из/в блокчейн. Крайне важно, чтобы она всегда соответствовала последним изменениям в API.
6. Раннее тестирование релиз-кандидатов демона
Я тестирую основной функционал релиз-кандидатов новых хардфорков. Это позволяет на раннем этапе выявить основные неточности и ошибки. В результате, адаптация клиента к ХФ происходит бесшовно и без ошибок, заметных пользователям.
Считаю, что делегатами Голоса должны быть люди, максимально связанные с разработкой клиентов и инфраструктуры экосистемы!
Как и многим жителям платформы, мне хочется бурного развития блокчейна Golos. Это и появление новых фич, и стабильность работы, и увеличение количества пользователей. Немаловажным пунктом выступает развитие экосистемы — ведь чем больше сервисов существует, тем больший приток пользователей и разработчиков, тем больший рост самой платформы. Со своей стороны, готов максимально делиться наработанным опытом по разработке приложений и сервисов Голоса как с новичками, так и с разработчиками альтернативных клиентов и сервисов через свои отчетные посты делегата и в живом общении. Поддержите меня как делегата Голоса!
Связать со мною можно с помощью Telegram b1acksun_me или же в чатах поддержки Golos.io и Голос | Разработка, Golos•Core Techchat
Голосуйте за мою делегатскую ноду
Или с помощью команды в cli_wallet:
vote_for_witness your_username b1acksun true true
Ваша поддержка и фидбек очень важны для меня!
Спасибо!