Как запустить ICO на Ethereum с помощью смарт контракта?
Привет, сейчас бум на ICO и если Вы хотите запустить ICO Вам конечно потребуется уйма денег\времени на написание white paper(белой бумаги), рекламы ICO на форумах, создание красивой главной страницы, создание сообщества для проекта, и самое главное у Вас должна быть хорошая идея и возможность её реализовать(сейчас ICO не запускает только ленивый). Я не буду описывать все шаги, что потребуется сделать, расскажу только как создать смарт контракт: если послать на него деньги(эфир) выдаст Вам определенное кол-во токенов (по курсу).
Предварительная подготовка
Мы будем использовать кошелек Ethereum для загрузки контракта, и для теста мы создадим его в тестовой сети, чтобы можно было проверить работу контракта не тратя реальных денег. Для этого запустите кошелек Ethereum и в меню переключите на тестовую сеть (Дополнительно -> Сеть -> Testnet). Подождите пока не загрузится блокчейн тестовой сети, это может занять несколько часов.
Чтобы загрузить наш контракт в сеть нам потребуется немного тестового эфира, его можно получить на сайте. Введите номер тестового кошелька в формате 0x6044... Иногда правда эфир не приходит(скорее всего перебои в работе сайта), поэтому нужно подождать или воспользоваться другим способом. Если Вы в комментариях напишите свой кошелек я отправлю немного тестового эфира.
Создание и загрузка контракта
Мы создадим контракт, который сам выпускает токены когда на него переводят деньги. Для того чтобы получить токены просто нужно послать эфир на адрес контракта, в ответ Вам прийдут токены, а деньги переведутся автору. Также контракт автоматически перестанет принимать деньги по достижению определенного блока.
На верхней панели нажимаем Contracts, далее Deploy new contract, копируем и вставляем код контракта. Справа в выпадающем списке выбираем Crowdsale(это название контракта) и заполняем поля как на скриншоте:
Немного про эти параметры:
- start block - Номер блока с которой ICO будет работать. Здесь можно указать номер уже прошедшего блока и тогда продажа заработает сразу же, либо указать номер блока в будущем и ICO заработает начиная с этого блока. Я выбрал блок 1290000, он уже прошел, поэтому ICO будет работать сразу же после загрузки контракта.
- end block - Номер блока до которого ICO работает, после этого блока токены не выпускаются!!! Я выбрал 1400000, если взять что блок формируется минуту то ICO продлится 76 дней.
- rate - это курс обмена эфира на токены, к примеру если указать 1 то курс обмена будет за один эфир дают 1 токен, если указать 100, то за один эфир дают 100 токенов.
- wallet - Здесь Вы должны указать номер Вашего кошелька, на который будет поступать прибыль от ICO.
Далее нажимаем Deploy и выставляем лимит газа не меньше чем 2 000 000 и нажимаем Send. После некоторого ожидания Ваш контракт примет сеть и можно будет тестировать.
Тестирование
В текущей версии кошелька Ethereum, чтобы увидеть новые токены, нужно добавить их по адресу. Нам нужно получить адрес токена и адрес контракта (адреса будут разные). На первый адрес нужно добавить в качестве токена, а на второй слать деньги для получения токенов. Для того чтобы получить эти адреса нажимаем на транзакцию в разделе Latest Transactions и нажимаем по ссылке To: Crowdsale. Откроется окно
В самом верху под названием контракта (Crowdsale) будет указан его адрес (для моего скриншота это 0x9BeC1ABc21e7C60FfAacA5bAD561234C0f90c90A), далее листаем в самый низ и копируем адрес токена в разделе Token (мой адрес 0x4E686a74dF3a00e68c451980585b5FC361aC118f). У нас есть адрес токена(0x4E686a74dF3a00e68c451980585b5FC361aC118f) и адрес ICO(0x9BeC1ABc21e7C60FfAacA5bAD561234C0f90c90A). Добавляем новый токен: нажимаем на Contracts и в самом низу будет кнопка Watch Token. Просто вводим адрес токена (0x4E686a74dF3a00e68c451980585b5FC361aC118f) все остальное подгрузится само и нажимаем Ok.
Когда любой человек отправит эфир на адрес нашего ICO, то в ответ будет получать токены, а мы будем получать эго эфир.
Все это круто, но мне лень делать все это ...
Тогда воспользуйтесь уже готовым контрактом. Отошлите тестовый эфир (сеть ropsten) на адрес 0x9BeC1ABc21e7C60FfAacA5bAD561234C0f90c90A и получите свои токены. Тестовый эфир можно получить на сайте или написать мне я отправлю немного. Также не забываем добавить токен в наблюдаемые.
Заключение
Это был один из примеров проведения ICO, и как мне кажется, самый простой в реализации. Другие примеры смарт контрактов можно посмотреть в репозитории проекта zeppelin.
Всем удачных ICO.