Ищу программиста под Solidity для разработки смарт-контрактов под EVM
-
Пожалуйста, выполните следующее тестовое задание, проверьте, что ваш код работает на любой тестовой сети и пришлите ссылку на адрес контракта, значения газа при вызове каждого из методов, исходный код контракта и кошелёк Ethereum для получения оплаты мне в личные сообщения на форуме или по электронной почте i_love_wta@gmail.com (без символов подчёркивания, логин из восьми символов!).
Текст задания:
Создать простейшую базу данных клиентов банка, реализованную тремя методами, в случае любой ошибки каждого метода вернуть код/сообщение о сути проблемы:
SaveRecord
Добавляет в блокчейн запись о человеке, клиенте банка, открывшем депозит (без кредитной линии).Параметры вызова метода:
- sex - пол человека
- birthDate - дата рождения человека
- name - имя и фамилия строкой, размер строки гарантированно меньше 22 байт.
- balance - баланс на счету человека в евроцентах, всегда целое число.
Результат успешного вызова:
- Идентификатор записи.
ShowRecord
Выводит данные о клиентеПараметры вызова метода:
- uid - идентификатор записи, сгенерированный вызовом "SaveRecord"
Результат успешного вызова:
- Строка с именем человека и уникальным обращением, в зависимости от пола, например "Mr. Name Lastname" для мужчины.
- Текущий возраст человека (полных лет)
- Доступный баланс человека в евро.
- Количество дней, которое человек является клиентом банка.
- Адрес человека, добавившего запись о клиенте
UpdateBalance
Изменяет баланс клиента, отражая пополнение или снятие с депозитного счёта.Параметры вызова метода:
- uid - идентификатор записи, сгенерированный вызовом "SaveRecord"
- amount - изменение баланса в евроцентах, целое число
Результат успешного вызова:
- Новый баланс клиента.
Конец задания.
Используйте все доступные оптимизации, чтобы минимизировать стоимость вызова методов.
Вы можете в целях оптимизации ставить разумные условия для валидации входных данных (как, например, условие, что name в запросе к SaveRecord будет меньше 22 байт).
Все необходимые умолчания и предположения документируйте в коде.
Если вы видите какие-то критические недостатки в логике работы - укажите на них и предложите решение.
Приблизительное время проектирования - несколько часов, реализации - несколько часов.Если вы знаете кого-то, кому могло бы интересно заняться щедро оплачиваемой разработкой некоммерческого (без стремления за выгодой) уникального проекта, который сделает мир лучше - покажите ему это задание.
PS: Если вы не используете ассемблерные вставки, скорее всего ваш код недостаточно оптимизирован.
PPS: Оплата за тестовое задание составит от 0.01 до 0.1 ETH в зависимости от качества реализации и остаётся на усмотрение заказчика. Неработающие и частично реализованные задания оплачены не будут. -
Забавно, конечно.
Когда всё расписал и продумал - и программисты не нужны, ты же знаешь уже, что надо делать, а уточнить в интернетах, как именно так или иная штука делается, совсем несложно.Поэтому разработка "по ТЗ" - страшное зло. Программу надо продумывать, а сделать это сможет только человек, погрузившийся в атмосферу и обладающий определенными навыками. Бизнес пишет приблизительное ТЗ и надеется, что студия разработки проникнется идеей и сделает всё в лучшем виде. А студии оно сто лет не надо, они реализуют то, что написано в ТЗ, считая его догмой, тогда как это всего лишь наброски, сдадут работу, получат оплату... а то, что бизнесу придется переделывать сделанное через полгода - это их мало волнует.
-
Только хардкор, только "рок-звезды". Пять человек в состоянии реализовать проект любой сложности, понадобится немного времени, но программирование - это личный, а не командный вид спорта. Вот такое у меня мнение.
-
Интересно, есть ли смысл пытаться это сделать, не зная Solidity (но там вроде несложно) или нужны только опытные крипто-разрабы? Знаю Kotlin, Python, Rust (не блокчейн).
-
Пользователь @dimok написал в Ищу программиста под Solidity для разработки смарт-контрактов под EVM:
name - имя и фамилия строкой, размер строки гарантированно меньше 22 байт.
А почему именно 22 байта?) А если араб какой зайдет или латинос у них имена фамилии огого, может и больше 22 букв быть. Но это даже не важно, почему именно 22?
-
Так, я почитал, а зачем вы пытаетесь силами блокчейна переписать блокчейн? это разве не лишние функции?
все апдейты баланса, вы и так вытащите у юзера, без смарт контракта, вам только ид смарт с которым он взаимодейтсвовал нужен и вуаля сидите операции ео фильтруйте.
-
Пользователь @constantan написал в Ищу программиста под Solidity для разработки смарт-контрактов под EVM:
Интересно, есть ли смысл пытаться это сделать, не зная Solidity (но там вроде несложно) или нужны только опытные крипто-разрабы? Знаю Kotlin, Python, Rust (не блокчейн).
Если вы можете понять ассемблер, то смысл пытаться есть.
Другое дело, что для успешной реализации эффективного контракта нужно ещё понимание, как солидити хранит данные и как с ними можно работать. Там нет ничего сложного или большого, но без этого никуда.А дальше уже платформонезависимые задачки программирования, как лучше, как эффективнее, как безопаснее решить поставленную задачу.
Получил первый отзыв, человек "просто" реализовал, так, как реализовывали бы процентов 90% solidity программистов. Но расход газа получился раза в два выше от того, что мог бы быть в теории, а мне хочется всё-таки, чтобы было близко к идеальному.
Я не надеюсь, на самом деле, что где-то на ставочном форуме сидит опытнейший разработчик на solidity, которому будет интересно заниматься какой-то ерундой, которую придумал не он сам. Но это задание - показатель того, насколько сильно отличается идеальная реализация, которую можно сделать, если обладать специфичными знаниями и наивная, как делают обычно, используя все вот эти удобные высокоуровневые структуры, к которым нас приучили языки программирования.
Нормально забить на неэффективность реализации, когда у тебя под рукой гигагерцы процессорного времени и гигабайты памяти. На блокчейне за всё это надо платить пользователю, а пользователя надо любить, поэтому оптимизация (да, я знаю, что она преждевременная, но так интересно!) исключительно важна.
-
Пользователь @dimok написал в Ищу программиста под Solidity для разработки смарт-контрактов под EVM:
Бизнес пишет приблизительное ТЗ и надеется, что студия разработки проникнется идеей и сделает всё в лучшем виде. А студии оно сто лет не надо, они реализуют то, что написано в ТЗ, считая его догмой, тогда как это всего лишь наброски, сдадут работу, получат оплату... а то, что бизнесу придется переделывать сделанное через полгода - это их мало волнует.
Так для того и придумали этот всякий agile чтобы бизнес тесно сотрудничал со студией)
-
Прислали неплохую реализацию, причем человек, по его словам - новичок в solidity, ждём ещё.