Осваиваем смарт-контракты на Ethereum
-
Онлайн среда разработки
https://remix.ethereum.org/Документация одного языка, попроще: https://vyper.readthedocs.io/en/stable/
Документация другого языка, помощнее и посложнее: https://solidity.readthedocs.io/en/latest/Пробуем осваивать...
-
Тоже давно хотел этим заняться. Составлю компанию и начну изучать Вайпер параллельно с https://eth-brownie.readthedocs.io/en/stable/
-
https://ethfiddle.com/
Вот тут вот играться можно, правда на старой версии Solidity, но для понимания процесса - то что нужно.А вот ещё лучше!
https://studio.ethereum.org/ -
Сложно, с этими типами, непривычно всё, конечно. И всё, вроде, понятно, а над простейшими вещами бьёшься часами.
Плюс гавнокод же получается в любом случае, лишь смутное представление, как оно должно работать и какие проблемы могут быть... Аудит нужен в любом случае, а где его брать? -
CertiK, OpenZeppelin, Quantstamp, PekShield, Hacken.
-
Так, ну что-то я задолбался, на сегодня хватит...
Что я понял: разобрался, как там данные хранятся, методом тыка понял, как сделать настройки изменяемые и начал создавать структуру "сущностей", чтобы каталогизировать рынки...С помощью https://studio.ethereum.org/ даже сделал махонькое подобие dApps, то есть сразу и интерфейс будем потихонечку впиливать
Вообще, как бы, всё очень хорошо, за полдня уже какой-никакой смарт-контракт, какой-никакой доступ к нему со странички...
На сегодня наверное хватит, ещё вечером надо статью написать, про то, как децентрализованный каталог лучше организовать, я вроде понимаю как, но не уверен, что это оптимально.
-
Пользователь @tdg написал в Осваиваем смарт-контракты на Ethereum:
CertiK, OpenZeppelin, Quantstamp, PekShield, Hacken.
Эх.. ну вот открыл я Квантстамп например... Видно, щёки надувают, всех консультируют, все дела... Сколько это будет стоить, и насколько это эффективно? Просто для того, чтобы 2-3 сообразительных паренька просмотрели код и дали рекомендация по тому, как его лучше поменять, придется оплачивать десятка два дармоедов, которые вокруг этих пареньков собрализь, то есть х5-х10 от реальной стоимости... Неэффективно :(
-
Пользователь @dimok написал в Осваиваем смарт-контракты на Ethereum:
Пользователь @tdg написал в Осваиваем смарт-контракты на Ethereum:
CertiK, OpenZeppelin, Quantstamp, PekShield, Hacken.
Эх.. ну вот открыл я Квантстамп например... Видно, щёки надувают, всех консультируют, все дела... Сколько это будет стоить, и насколько это эффективно? Просто для того, чтобы 2-3 сообразительных паренька просмотрели код и дали рекомендация по тому, как его лучше поменять, придется оплачивать десятка два дармоедов, которые вокруг этих пареньков собрализь, то есть х5-х10 от реальной стоимости... Неэффективно :(
На рынке катастрофически не хватает людей, которые могу сделать качественный аудит. Очередь к ним большая, цена соответствующая. Так что щеки надувают не просто так, к сожалению.
trailofbits.com $16,000 1 week 1 person
cryptomaniacs $5,000 ( two weeks, two people ~ normally $10,000, they offered some pro bono work)
certik.org (quote pending)
quantstamp.com (no response)
sigmaprime.io $27,500 11 days 2 people
openzeppelin.com (quote pending)
Рекомендую прочесть: https://medium.com/iearn/things-i-wish-i-knew-before-building-ethereum-defi-dapps-cd6bf0f07a16
-
Прочитал, интересно.
Но большая половина не про меня, а что аудит проходить сложно - ну так найдём нормальных пацанов, контакт-лист большой. -
Придумал, в какое место токены прикрутить, лучших токенов я ещё не видел...
-
Классная инициатива от ребят из y.finance: https://gitcoin.co/blog/announcing-the-kernel-security-track/
-
Пользователь @dimok написал в Осваиваем смарт-контракты на Ethereum:
Придумал, в какое место токены прикрутить, лучших токенов я ещё не видел...
Рассказывайте!
-
Кодить над, чего рассказывать.
Называться токен будет "EBES"
По-английски вполне благозвучно звучит, а по-русски - прикольно, бггг -
Насколько далеко состояние "ура, работает" до состояния "работает оптимально" :(
-
Пользователь @dimok написал в Осваиваем смарт-контракты на Ethereum:
Кодить над, чего рассказывать.
Называться токен будет "EBES"
По-английски вполне благозвучно звучит, а по-русски - прикольно, бгггНе забудьте залистить на юнисвап с хорошей ликвидностью
-
А у меня не будет токенов :( их надо за эфирки у смарт-контракта покупать и ему же продавать.
-
bonding curve?
-
Не совсем, супплай тоже фиксированый.
Просто доли от прибыли смарт-контракта. Продажа токенов считается прибылью.
Очень красиво получилось, но не могу разобраться, как Пуассона прикрутить... Кешировать значения не выход, надо штук 700 значений сохранить... и не работает что-то, в общем завтра поковыряю, хотя бы понятно, в каком направлении думать. -
То есть я знаю, как сделать футбол/хоккей, знаю как сделать (трудно сделать) теннис, знаю как сделать баскетбол... Может правда отдельные алгоритмы под них дать, по отдельности реализовать... Или можно забить на баскетбол, например... Сложно :( Но нужно сделать, иначе ликвидность будет грустная.
-
Читаю, читаю... Столько моментов, тонкостей, оптимизаций...
Видимо надо, как обычно, сначала сделать плохо, потом увидеть, почему плохо и начать узнавать, как сделать хорошо. -
Какая хорошая библиотечка, можно складывать кучу циферок в плотные байт-массивы, на ассемблере.
https://github.com/GNSPS/solidity-bytes-utils
То что надо. -
Вообще, смарт-контракты, в силу ограниченности блокчейн-программирования - это очень просто.
Создаёшь какие-то структуры данных и как-то их изменяешь, всё. Сложить, умножить, разделить, прочитать, сохранить. Сложную логику ты не можешь, да и не хочешь реализовывать на блокчейне.
Соответственно весь вопрос качества смарт-контракта - это качество структур данных, я надеюсь, что с этим проблем не будет. С чем будут проблемы - это с опытом программирования под блокчейн, я просто не знаю, как правильно реализовывать те или иные паттерны.Очень бы хотелось, чтобы кто-нибудь опытный посмотрел на мой код и указал на грубые ошибки проектирования... Но у опытных либо свои проекты, либо загруженный рабочий день, плюс они хорошо обеспечены, я не могу их заинтересовать ни деньгами, ни собственно проектом. А связываться с людьми, которые просто знают, как написать ERC20 токен не хочется.
-
https://consensys.github.io/smart-contract-best-practices/recommendations/
Вот тут интересно... Какой же плохой код я пишу :( -
Я не люблю писать тесты. Не ленюсь, а не люблю. Покрытие тестами, зачастую, это деятельность ради деятельности, написать хороший тест, который учитывает все возможные сценарии сложно, а если у нас ещё есть какие-то внешние данные - то не всегда возможно. Не лучше ли вместо набивания килобайтов тестов сделать проверки входных данных в самой программе?
Однако есть best practices и в них нас заставляют писать модули, покрывать их тестами. Иначе это плохой код... Понятно, зачем это нужно, когда у тебя в команде 10 кодомакак, и они работают над одним проектом, ты не можешь заставить одну макаку писать эту функцию, а вторую - другую. Тебе надо выделить модуль для каждой макаки, покрыть его тестом, а дальше устраивать код-ревью, после того, как тесты прошли, чтобы убедиться, что макака действительно что-то нормальное написала.
Но если ты сам себе макака - зачем нужны тесты, ты отвечаешь за каждую функцию, что она сделана наилучшим доступным тебе способом...
Не хочу писать тесты, узнавать best practices и patterns хочу, это полезно. Тесты и разбиение на модули - пустая трата времени.
-
К сожалению, studio.ethereum.org недостаточно для нормальной разработки, увы, было очень удобно.
Недостатки:
- я не смог разобраться, как отправлять массив значений контракту через их интерфейс, кажется это баг, а проект больше не поддерживается.
- старая версия solidity
Остальное всё было очень удобно, но видимо нужна среда разработки с большим контролем...
Надо разобраться, какие бывают и выбрать, truffle мне не нравится...