Ethereum контракт. Как создать собственный жетон.

Тема в разделе "Разработка", создана пользователем Ognefest, 5 июн 2017.

  1. Ognefest

    Ognefest Скин-трейдер

    Как создать свою криптовалюту не написав ни единой строчки кода.

    1) Создадим собственную криптовалюту.
    2) Построим свою собственную демократию.
    3) И сделаем личный Центробанк на блокчейне.


    Установка Ethereum Wallet
    Качаем официальный эфириум кошель отсюда: https://github.com/ethereum/mist/releases/

    Первое, что нужно сделать после установки – это создать личный аккаунт. Все что для этого понадобится – это хороший пароль. Для того чтобы продолжить, нужно купить немного Эфира. Но не волнуйтесь, большая часть контрактов будет стоить не больше цента. Если вы хотите только поэкспериментировать, то рекомендуем переключиться в режим Testnet. Перейти в меню develop > network > testnet а после этого develop > start mining. Через несколько вы получите достаточно тестового Эфира, для того чтобы поэкспериментировать, так что вы можете остановить майнинг, чтобы не нагружать компьютер.

    Кошелек позволяет добывать Эфир только в тестовой сети. Для того чтобы майнить настоящий Эфир, нужен более серьезный инструмент.


    AlethOne это очень простая программа для добычи с двумя кнопками. Одна кнопка, чтобы начать добычу с помощью вашей видеокарты. Вторая – чтобы отправить награду в кошелек. Загрузите его отсюдаhttps://github.com/ethereum/webthree-umbrella/releases

    Допустим вы хотите создавать смарт-контракты в настоящей сети, но не можете их добывать. Тогда есть несколько вариантов. Попросить Эфир у друзей – пусть отправят вам немного. Или обменяйте биткоины на Эфир. Если вы любите биткоин обратите внимание на проект http://btcrelay.org/ который позволяет менять биткоины на эфир и обратно без участия третьей стороны.

    Создаем свою валюту (token)
    В нашем первом контракте, мы создадим жетоны (token). Жетоны в экосистеме Эфириума это ваша личная расчетная единица, которая может выполнять функции: монет, баллов голосования, золотых сертификатов, долговых обязательств, игровых предметов и т.п. Жетоны всех типов обладают похожими свойствами и имеют одинаковые базовые функции — их можно передавать. Это значит, что жетон, который вы создадите автоматически будет совместим с Ethereum Wallet или другими подобными программами.

    Перейдите на страницу контрактов и нажмите кнопку «deploy new contract»



    Текст контракта скопируйте отсюда: http://chriseth.github.io/browser-solidity/?gist=21935dc37c5bfbe92e5a

    Вставьте его вместо имеющегося кода в поле ввода SOLIDITY CONTRACT SOURCE CODE. Если все сделали правильно, то с левой стороны появится выпадающий список SELECT CONTRACT TO DEPLOY. Выбираем там MyToken. Появятся дополнительные настройки для создания своих жетонов. В принципе там можно писать все что пожелаете, но в данном уроке мы заполним их так:

    10000 – это количество жетонов которое мы хотим создать (включая «центы»)

    My DAO Shares – это название для наших жетонов (Например как «доллар»)

    % — это символ для валюты (подобно $)

    2 – это количество знаков после запятой для центов

    Все должно получиться как на картинке:

    Ethereum контракт. Как создать собственный жетон

    Прокрутите страницу вниз. Там вы увидите количество эфира которое нужно заплатить для того чтобы контракт начал работать в системе. Не меняйте этот параметр. Нажмите кнопку deploy. Напечатайте свой пароль для подтверждения и подождите несколько секунд пока контракт установится.



    Вы будете перенаправлены на главную страницу. Войдите в свой аккаунт и (не позже чем через минуту) увидите, что вы владелец 100.00 только что созданных жетонов. Для того чтобы отправить жетоны друзьям войдите на страницу SEND. Потом выберите валюту которую вы хотите отправить – эфир или только что созданные жетоны. Введите адрес друга, количество жетонов и нажмите кнопку отправить.



    После отправки друг не увидит ваши жетоны. Потому что его кошелек еще не знает про этот тип валюты. Ему нужно добавить вашу новую валюту вручную. Перейдите на вкладку контракты, и вы увидите там контракт, который мы только что создали. Щелкните по нему, чтобы посмотреть подробности. Это очень простой, контракт, поэтому подробностей практически нет. Просто нажмите на кнопку «COPY ADDRESS» чтобы скопировать адрес контракта. Отправьте этот адрес вашему другу.

    Для того чтобы друг смог видеть жетоны, которые вы придумали, он должен зайти на страницу контрактов и щелкнуть по кнопке “WATCH TOKEN”. Все что осталось сделать, это добавить во всплывающем окне адрес вашего контракта. Вся информация про вашу валюту подтянется автоматически. Можно перенастроить эти параметры под себя (например, поменять название), но все изменения влияют только на то, как новая валюта будет отображаться в данном кошельке. После всего этого данный кошелек тоже сможет видеть новую валюту и получит возможность отправлять ее кому-нибудь еще.


    Вот вы и сделали собственную крипто-валюту! Такие жетоны могут быть полезны для взаиморасчетов в местных сообществах, или для учета рабочих часов или для каких-нибудь программ лояльности.
     
    West475 нравится это.
  2. Ognefest

    Ognefest Скин-трейдер

    Ethereum на практике часть 2: Как создать улучшенную демократию в 100 строчках кода.

    Мы сделали жетоны (token). Но какой в этом смысл если они ничего нового не делают? Сейчас мы создадим новый контракт, который будет использовать уже созданные нами жетоны. В нашем контракте мы опишем демократическую организацию на блокчейне. Каждый у кого есть жетоны сможет голосовать за предлагаемые решения.
    Так что давайте вернемся во вкладку CONTRACTS -> Deploy contract и вставим исходный код DAO (Демократической Автономной Организации http://chriseth.github.io/browser-solid ... f5e43e6dab) в поле Solidity Source. Выбираем из выпадающего списка контракт Democracy и устанавливаем такие параметры:
    Amount = 0. Тут вы можете указать с каким количеством эфира будет стартовать ваша DAO. Но эфир можно добавлять позже, поэтому оставляем ноль. (Примечание переводчика: в последней версии контракта, это поле убрали, что вполне логично).
    В поле sharesAddress вставляем адрес контракта, который описывает наши жетоны. Обратите внимание на круглый разноцветный значок. Если он не совпадает в точности с тем значком, который соответствует вашему первому контракту, значит вы что-то напутали.
    В поле minimumSharesForVoting указываем минимальный кворум, который необходим, чтобы вопрос был принят. Единицы измерения – «центы». То есть если вы при создании валюты вводили, все то что я советовал, тогда с учетом двух знаков после запятой число 500 будет означать 5.00 токенов. Всего токенов у нас 100. Значит для принятия решения хватит 5% голосов.
    minutesForDebating: это минимальное время, которое отводится на голосование по одному вопросу. Напишем маленькое число – 10 минут, потому что мы учимся. Но в реальности лучше установить что-то типа 20000 чтобы сэкономить эфир и дать возможность голосовать в течение 2 недель.

    Ваш контракт должен выглядеть примерно, как на картинке:
    Ethereum на практике. Как создать смарт-контракт
    После публикации вы увидите на основной панели как ваш контракт постепенно устанавливается:

    Ссылка на новый контракт отобразится во вкладке CONTRACTS. Если его там нет (когда вы устанавливаете чужой контракт) нужно добавить его вручную. Вам нужно добавить адрес контракта и его JSON-интерфейс. JSON-интерфейс это такая строка, которая объясняет кошельку как взаимодействовать с кодом. Имя можете указать любое. Нажимаем Ok.

    Кликните на этот новый контракт, чтобы открыть его страничку. Если на этом контракте нет эфира, нужно немного добавить, чтобы посмотреть, как работает эта необычная демократия. Если контракт уже имеет какие-то фонды, то нажмите кнопку «show contract info».
    Экран разделен на две части. Слева «читать из контракта», справа «писать в контракт». Чтение из блокчейна не производит никаких вычислений, поэтому это бесплатно, т.е. не требует эфира. sharesTokenAddress это адрес вашей валюты. А в поле numProposals написано, что по данному контракту еще нет предложений. Давайте это изменим.
    С правой стороны экрана перечислены те функции, которые производят вычисления и вносят изменения в блокчейн. Поэтому они платные, то есть требуют Эфир. Выберите из выпадающего списка newProposal, чтобы создать новое предложение.

    В поле beneficiary укажите адрес человека, которому вы хотели бы перевести деньги из общего фонда. Количество Эфира который вы хотите перевести укажите в поле etherAmount. Это должно быть целое число. А чуть ниже в поле JobDescription можно написать причину, по которой вы хотите совершить этот перевод. Поле transactionByteCode пока что оставляем пустым. Нажмите выполнить и введите свой пароль. Через несколько секунд количество предложений (numProposals) по контракту увеличится на единицу. И само предложение отобразится слева. Предложения нумеруются, начиная с нуля. Поэтому у нашего первого предложения (proposal) будет номер – 0. Если предложений будет много, вы можете посмотреть любое из них, когда введете порядковый номер в поле proposal.
    Голосовать за предложение очень легко. Выбираем функцию «vote» из выпадающего списка. Введите номер предложения за которое вы хотите проголосовать. И поставьте флажок Yes, если вы хотите поддержать предложение. Или оставьте пустым если вы хотите высказаться против. Нажмите кнопку EXECUTE, чтобы отправить свой голос.
    создать смарт-контракт Ethereum
    Когда минимальное количество голосов набрано, можно выполнить контракт (executeProposal). Если в предложении мы просто собирались отправить эфир, то поле transactionBytecode снова оставляем пустым. После того как вы нажали кнопку EXECUTE, не торопитесь вводить пароль. Обратите внимание на поле «estimated fee consumption». Если там красными буквами выводится предупреждение, это значит, что функция не будет выполнена, но плата за попытку выполнения все равно будет взята. Такое может происходить по разным причинам. Но в контексте нашего контракта, скорее всего речь идет о попытке выполнить предложение до того, как срок сбора подписей закончился. Из соображений безопасности любая попытка выполнить некорректный контракт пресекается, но комиссия за попытку выполнения все равно взымается.
    Ethereum на практике
    Если все прошло хорошо, то вы сможете увидеть результаты голосования через несколько секунд. Параметр «открыт для голосования» (openToVote) выключится, а итог голосования появится в поле proposalPassed. Количества эфира в фонде данного контракта уменьшится, потому что часть его будет отправлена получателю, который был указан в самом начале.
    Теперь мы можем сказать, что создали демократическую автономную организацию, которая управляется с помощью блокчейна и использует исключительно цифровые акции-жетоны. Такая организация может иметь очень большое влияние в реальном мире. А теперь обратите внимание на удивительную и важную вещь – эта организация не находится под вашим контролем, хотя вы ее и создали. Контракт без вашего участия, теперь будет выполняться по правилам, которые вы в него заложили. Навечно. Вы не можете подкупить его, не можете исказить. Правила постоянны независимо от того, о какой сумме идет речь 0.01 или 1000000 эфиров.
    Неужели может быть что-то лучше этого? На само деле, может. В следующий раз мы рассмотрим, как вы можете использовать transactionBytecode чтобы не просто пересылать эфир, а делать более сложные вещи. И мы изменим код жетонов, для того чтобы наша демократическая организация смогла контролировать их оборот
     
    West475, Магарам и randers нравится это.
  3. West475

    West475 Постоянный пользователь Проверенный

    А зачем это нужно?
     
  4. Ognefest

    Ognefest Скин-трейдер

    По сути, ты создаешь свою валюту, свой банк в котором она хранится, а за счёт постоянного(ну почти) роста крипты, ты инвестируешь, покупаешь, продаешь, даришь, одалживаешь её. В общем возьми за основу, например ты создатель банка, у тебя дохренища денег которые создал тоже ты, что будешь с ними делать? Поразмысли
     
  5. West475

    West475 Постоянный пользователь Проверенный

    Кто-нибудь уже делал контракты и токены для них?
    Расскажите подробнее, я плохо понимаю, а узнать интересно.
     
  6. Gira

    Gira новичок

    Да да подробней......
     
  7. Kengurion

    Kengurion Постоянный пользователь

    Тема действительно интересная. Парни рассказывайте кто-то делал свои токены?
     
  8. heyod

    heyod новичок

    Под токен какую-нибудь идею еще нужно придумать. ))
     
  9. Kengurion

    Kengurion Постоянный пользователь

    Да ладно?! А я думал можно просто так назвать ...опакоин и выпустить)
     
  10. heyod

    heyod новичок

    Не-не, надо еще креативную дебютную идею, после ИКОшку замутить, собрать в эквиваленте 20-30 лимонов зелени, потом добиться капитализации в полмиллиарда... Но можно все пропустить, кроме первых двух пунктов: дебютная идея, ИКО.. и на багамы, курить бамбук без забот до конца свои дней. ))