Разбираем код первого контракта.

Здесь я разберу код, который мы деплоили в блокчейн из прошлого поста «Как начать работать с geth и mist. Деплой первого контракта в сеть.»

Продублирую полный код контракта:

pragma solidity ^0.4.18;
 
contract HelloWorld {
string wellcomeString = "Hello, world!";
function getData() public constant returns (string) {
 return wellcomeString;
 }
function setData(string newData) public {
 wellcomeString = newData;
 }
}

Далее разберемся построчно что же делает контракт.

pragma solidity ^0.4.18

pragma (прагма) — препроцессорная директива, которая указывает компилятору на какой версии solidity написан контракт.

contract HelloWorld {

Создаем контракт с названием HelloWorld, контракты можно сравнить с классами в ООП.

string wellcomeString = "Hello, world!";

Создаем переменную с именем welcomeString типа String и значением «Hello, world!»

function getData() public constant returns (string) {

Создаем публичную функцию с именем getData, которая возвращает значение типа String.

return wellcomeString;

Внутри функции мы описываем, что она должна делать, в данном конкретном случае — возвращает переменную wellcomeString, с заданным ранее значением «Hello, World!».
В этом контракте мы пошли немного дальше стандартного «Hello, World!» и создали еще одну публичную функцию с именем setData.

function setData(string newData) public {

Данная функция принимает значение переменной newData типа String.

wellcomeString = newData;

Функция присваивает значение переменной newData переменной wellcomeString. Тем самым мы можем менять начальное «Hello, World!» на что угодно.

Загрузив контракт в сеть, если вы все сделали правильно из прошлого поста, вы можете это проверить.

Для этого в браузере Mist перейдите на вкладку Contracts и выберите созданный контракт.

В поле Select Function, выберите функцию Set Data и в поле ниже введите свое значение, например «Wellcome» и нажмите кнопку Execute.

Если вы все сделали правильно, то вы увидите, что значение переменной getData поменялось на «Wellcome».

 

Как начать работать с geth и mist? Деплой первого контракта в сеть.

Для взаимодействия с блокчейном Ethereum необходимо установить программное обеспечение.
Geth — интерфейс командной строки, написанный на языке GO.
Скачиваем geth со страницы — https://geth.ethereum.org/downloads/.

В моем случае я работаю в ос Windows. Устанавливаем и запускаем через интерпретатор командной строки cmd.
Используем сочетание клавиш Win+R -> cmd и запускаем geth с подключением к тестовой сети Rinkeby, командой geth -rinkeby.

В конечном итоге вы должны увидеть аналогичную картину:

Далее скачиваем браузер Misthttps://github.com/ethereum/mist/releases выбираем подходящий вам клиент и устанавливаем. После скачивания блокчейна и запуска приложения вы увидите следующее:

Единственное отличие должно быть в том, что у вас будет нулевой баланс.

Получить бесплатный тестовый эфир в сети rinkeby вы можете на этой странице https://www.rinkeby.io/#faucet.

На данный момент у вас установлено все программное обеспечение для загрузки вашего первого контракта в сеть.

Переходим в пункт — Contracts и нажимаем кнопку Deploy New Contract.
В поле кода копируйте данный код:

pragma solidity ^0.4.18;
 
contract HelloWorld {
string wellcomeString = "Hello, world!";
function getData() public constant returns (string) {
 return wellcomeString;
 }
function setData(string newData) public {
 wellcomeString = newData;
 }
}

Справа от кода в выпадающем меню Select Contract To Deploy выбирайте Hello World, выставляйте максимальную комиссию ползунком Select Fee и нажимайте кнопку Deploy.

После всех манипуляций ваш контракт будет загружен в блокчейн.

В следующем посте я подробно разберу код контракта.