Согласно опросу, проведенному Juniper Research, 6 из 10 крупных владельцев бизнеса либо думают, либо развивают свои собственные блокчейн-технологии, как например – в здравохранении. Среди этих компаний 66% действительно считают, что блокчейн-технология будет интегрирована в их компании к началу 2019 года.
Что касается причин выбора блокчейна, широко распространено мнение, что многие компании любят использовать совершенно новые технологии для увеличения прибыли. Фактически, компании часто полагаются на новые решения, чтобы полностью пересмотреть процессы устаревания в соответствии с новым цифровым миром. Дело в том, что системные изменения более эффективны, чем технологические. Таким образом, использование преимущества блокчейна предлагает надежный способ интеграции вашей компании в эпоху XXI века!
Хороший вопрос, не так ли? На самом деле существует по меньшей мере пять твердых причин децентрализовать вещи, а не хранить их в централизованном сервере или базе данных. Вот они:
Прежде чем мы начнем, вы также должны знать, что существует два типа блокчейна: частный блокчейн и публичный блокчейн. Итак, как насчет того, чтобы попробовать и создать свой собственный блокчейн? Все, что вам нужно, это следовать руководству ниже. Обратите внимание, что мы использовали Ubuntu, но также для пользователей будут удобны гайды других дистрибьюторов Linux, MacOS (с менеджером Homebrew) и Windows 10 (используя терминалы и последние стабильные двоичные файлы).
Ваш первый шаг - установить Go Ethereum (geth). Go Ethereum является одной из исходных реализаций (вместе с C ++ и Python) протокола Ethereum, написанного на Go. Для установки geth пользователи Mac OS X Вы должны использовать Homebrew, дополнительный менеджер пакетов для MacOS. Homebrew устанавливает необходимый Вам материал, который Вы не можете найти в Apple Store.
После установки выполните следующие команды: brew tap ethereum/ethereum
Чтобы установить Go Ethereum на Ubuntu, Вам нужно всего лишь использовать apt-get. Для этого выполните следующие команды:
brew install ethereumsudo apt-get install software-properties-common
Если Вы - пользователь Windows, Вам не нужно над этим долго думать.
sudo add-apt-repository -y ppa:thereum/ethereum
sudo apt-get update
sudo apt-get install ethereum
Все, что Вам нужно, это загрузить соответствующую установку geth и запустить её. Теперь Вы можете создать новый каталог и написать JSON файл для создания genesis-блока: cd
Чтобы создать genesis-блок, вставьте следующий код в только что созданный JSON-файл:
mkdir eth-new
cd eth-new
nano genesis.json{
Нажмите Ctrl + X, Y, Enter, чтобы сохранить Ваш новый genesis-блок.
"nonce": "0x0000000000000042",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x4000",
"alloc": {},
"coinbase": "0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "Custem Ethereum Genesis Block",
"gasLimit": "0xffffffff"
}
Выполните следующие команды, чтобы создать блокчейн (для отключения функции maxexers установлено значение 0): mkdir eth-data
Чтобы ввести новую учетную запись и пароль в консоли geth, выполните следующие действия (не забудьте указать данные для входа в скобки).
geth --datadir eth-new genesis.json init eth-new/genesis.json --networkid 123 --nodiscover --maxpeers 0 console
О, еще одна вещь: Вам нужно будет указать свой новый пароль дважды: personal.newAccount()
Результатом после всего этого должна быть строка букв и цифр, то есть - адрес Вашей учетной записи. Чтобы остаться в безопасности, сохраните адрес, указанный где-то еще, и выйдите (введите «exit» и нажмите Enter).
Откройте файл genesis-блока еще раз и введите следующее: nano genesis.json
Скопируйте ранее сохраненный адрес учетной записи и вставьте его в скобки «alloc». Затем, следуйте дальше и задайте себе баланс ETH. Количество, указанное рядом с «балансом» ниже, равно 10 ETH. После того, как Вы закончите с внесением изменений, сохраните файл с помощью Ctrl + X, Y, Enter.
Удалите старый блокчейн и создайте новый. Используйте эти команды, чтобы избавиться от старых данных блокчейна и перезапустите geth: cd eth-data
В консоли geth введите следующее:
rm -rf chaindata dapp history nodekey
cd ..
geth --datadir eth-new genesis.json --networkid 123 --nodiscover --maxpeers 0 console> primary = eth.accounts[0]
В результате Вы получаете новый адрес и баланс 10 ETH.
> web3.fromWei(eth.getBalance(primary), "ether")
Чтобы получить полноценный блокчейн, Вам нужно развить майнеров. Чтобы справиться с этими проблемами, закройте консоль geth (введите «exit» + нажмите Enter). Для запуска разработки выполните следующую команду: geth --mine --datadir eth-data --networkid 123 --nodiscover --> maxpeers 0 console 2>>geth.log
Поздравляем! Вы только что создали свой собственный miner capable, чтобы взимать плату за ETH. Если Вы хотите проверить баланс Вашей криптовалюты, выполните следующую команду: > primary = eth.accounts[0]
> balance = web3.fromWei(eth.getBalance(primary), "ether")
Подобно другим криптовалютам, Ethereum использует преимущество смарт-контрактов, написанных в Solidity. Итак, чтобы использовать этот контрактный язык программирования, Вам необходимо установить Solidity Compiler. Для этого введите следующие строки в новом терминале: bash
После получения сообщения: «Нажмите «Ввод» для продолжения» нажмите «Ввод» и введите следующее:
sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
Это обеспечит путь к Solc, который Вам нужно запомнить. Теперь вернитесь в окно терминала, показывающее консоль geth. Выполните следующие команды, изменив на полученное вами значение пути:
sudo apt-get install solc -y
which solcadmin.setSolc("")
Если Вы получаете ["Solidity"] в качестве ответа на вторую команду, это означает, что Вы получили себе Solidity Compiler и можете писать в Solidity.
eth.getCompilers()
Ниже приведен код для простого контракта с добавленными комментариями. Он содержит два типа контрактов: «Mortal» контракт может быть «убит» человеком, который его написал, и его необходимо объявить таковым, поскольку контракты бессмертны по умолчанию; «Greeting» контракт, это не что иное, как приветствие
Hello World!. contract mortal {
/* Define var owner of the type address*/
address owner;
/* this function sets the owner of the contract */
function mortal() { owner = msg.sender; }
/* Function to recover fees */
function kill() { if (msg.sender == owner) selfdestruct(owner); }
}
contract greeter is mortal {
/* define variable greeting type*/
string greeting;
/* this runs when the contract is executed */
function greeter(string _greeting) public {
greeting = _greeting;