Написать нам
Категория: Блокчейн
04.12.2019

Как создать свой собственный Блокчейн

Хотите Создать Блокчейн?
Компания Merehead занимается криптовалютной и блокчейн разработкой. Свяжитесь с нами и получите бесплатную консультацию! Поговорить с Менеджером

Согласно опросу, проведенному Juniper Research, 6 из 10 крупных владельцев бизнеса либо думают, либо развивают свои собственные блокчейн-технологии, как например – в здравохранении. Среди этих компаний 66% действительно считают, что блокчейн-технология будет интегрирована в их компании к началу 2019 года.


Что касается причин выбора блокчейна, широко распространено мнение, что многие компании любят использовать совершенно новые технологии для увеличения прибыли. Фактически, компании часто полагаются на новые решения, чтобы полностью пересмотреть процессы устаревания в соответствии с новым цифровым миром. Дело в том, что системные изменения более эффективны, чем технологические. Таким образом, использование преимущества блокчейна предлагает надежный способ интеграции вашей компании в эпоху XXI века!


Blockchain против Database


Хороший вопрос, не так ли? На самом деле существует по меньшей мере пять твердых причин децентрализовать вещи, а не хранить их в централизованном сервере или базе данных. Вот они:



  1. Неизменность. Когда у вас есть все ваши важные данные, развернутые на цепочке, Ваши записи не заблокируются. Что касается хранения данных в базе данных, каждый может легко изменить файлы перед отправкой их другому человеку.

  2. Избыточность. Вам не нужно сходить с ума, потеряв важные файлы. Действительно, Вы можете получить один и тот же набор данных из любой точки вашей сети. Таким образом, больше нет потерь данных и повреждения файлов для Вас.

  3. Безопасность. Централизованная база данных создает хорошую цель для хакеров. Блокчейн - это совсем другое «животное». Чем больше пользователей у Вас есть в сети, тем более точные копии бесценных данных вы получаете. Такой подход позволяет предотвратить жизненно важную информацию от серьезного искажения или даже постоянной потери.

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

  5. Прозрачность. Используя блокчейна, вы получаете более высокий уровень доверия и способность вести бизнес открытым способом.


Давайте создадим Blockchain


Прежде чем мы начнем, вы также должны знать, что существует два типа блокчейна: частный блокчейн и публичный блокчейн. Итак, как насчет того, чтобы попробовать и создать свой собственный блокчейн? Все, что вам нужно, это следовать руководству ниже. Обратите внимание, что мы использовали Ubuntu, но также для пользователей будут удобны гайды других дистрибьюторов Linux, MacOS (с менеджером Homebrew) и Windows 10 (используя терминалы и последние стабильные двоичные файлы).


Установка Go Ethereum


Ваш первый шаг - установить Go Ethereum (geth). Go Ethereum является одной из исходных реализаций (вместе с C ++ и Python) протокола Ethereum, написанного на Go. Для установки geth пользователи Mac OS X Вы должны использовать Homebrew, дополнительный менеджер пакетов для MacOS. Homebrew устанавливает необходимый Вам материал, который Вы не можете найти в Apple Store.


После установки выполните следующие команды: brew tap ethereum/ethereum
brew install ethereum
Чтобы установить Go Ethereum на Ubuntu, Вам нужно всего лишь использовать apt-get. Для этого выполните следующие команды: sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:thereum/ethereum
sudo apt-get update
sudo apt-get install ethereum
Если Вы - пользователь Windows, Вам не нужно над этим долго думать.


Все, что Вам нужно, это загрузить соответствующую установку geth и запустить её. Теперь Вы можете создать новый каталог и написать JSON файл для создания genesis-блока: cd
mkdir eth-new
cd eth-new
nano genesis.json
Чтобы создать genesis-блок, вставьте следующий код в только что созданный JSON-файл: {
"nonce": "0x0000000000000042",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x4000",
"alloc": {},
"coinbase": "0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "Custem Ethereum Genesis Block",
"gasLimit": "0xffffffff"
}
Нажмите Ctrl + X, Y, Enter, чтобы сохранить Ваш новый genesis-блок.


Создайте свой блокчейн


Выполните следующие команды, чтобы создать блокчейн (для отключения функции maxexers установлено значение 0): mkdir eth-data
geth --datadir eth-new genesis.json init eth-new/genesis.json --networkid 123 --nodiscover --maxpeers 0 console
Чтобы ввести новую учетную запись и пароль в консоли geth, выполните следующие действия (не забудьте указать данные для входа в скобки).


О, еще одна вещь: Вам нужно будет указать свой новый пароль дважды: personal.newAccount() Результатом после всего этого должна быть строка букв и цифр, то есть - адрес Вашей учетной записи. Чтобы остаться в безопасности, сохраните адрес, указанный где-то еще, и выйдите (введите «exit» и нажмите Enter).


Отправьте несколько ETH в вашу недавно созданную учетную запись


Откройте файл genesis-блока еще раз и введите следующее: nano genesis.json Скопируйте ранее сохраненный адрес учетной записи и вставьте его в скобки «alloc». Затем, следуйте дальше и задайте себе баланс ETH. Количество, указанное рядом с «балансом» ниже, равно 10 ETH. После того, как Вы закончите с внесением изменений, сохраните файл с помощью Ctrl + X, Y, Enter.


Удалите старый блокчейн и создайте новый. Используйте эти команды, чтобы избавиться от старых данных блокчейна и перезапустите geth: cd eth-data
rm -rf chaindata dapp history nodekey
cd ..
geth --datadir eth-new genesis.json --networkid 123 --nodiscover --maxpeers 0 console
В консоли geth введите следующее: > primary = eth.accounts[0]
> web3.fromWei(eth.getBalance(primary), "ether")
В результате Вы получаете новый адрес и баланс 10 ETH.


Начало для майнинга


Чтобы получить полноценный блокчейн, Вам нужно развить майнеров. Чтобы справиться с этими проблемами, закройте консоль 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")


Установите Solidity Complier


Подобно другим криптовалютам, Ethereum использует преимущество смарт-контрактов, написанных в Solidity. Итак, чтобы использовать этот контрактный язык программирования, Вам необходимо установить Solidity Compiler. Для этого введите следующие строки в новом терминале: bash
sudo add-apt-repository ppa:ethereum/ethereum
После получения сообщения: «Нажмите «Ввод» для продолжения» нажмите «Ввод» и введите следующее:


sudo apt-get update
sudo apt-get install solc -y
which solc
Это обеспечит путь к Solc, который Вам нужно запомнить. Теперь вернитесь в окно терминала, показывающее консоль geth. Выполните следующие команды, изменив на полученное вами значение пути: admin.setSolc("")
eth.getCompilers()
Если Вы получаете ["Solidity"] в качестве ответа на вторую команду, это означает, что Вы получили себе Solidity Compiler и можете писать в Solidity.


Разница между контрактами « Mortal» и «Greeter»


Ниже приведен код для простого контракта с добавленными комментариями. Он содержит два типа контрактов: «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;

Написать нам
Имя*:
Email*:
Сообщение: