Как настроить полностью синхронизированный блокчейный узел за 10 минут

kak nastroit polnostyu sinhronizirovannyj blokchejnyj uzel za 10 minut

Добро пожаловать в первую статью нашей новой серии go-ethereum!

В следующие 10 минут вы:

  • Изучите первый глоссарий блокчейну без каких-либо необходимых предварительных знаний об экосистеме
  • Настройте свой полностью синхронизированный узел тестирования («клиент/сервер») в менее 10 мин
  • создать свой аккаунт и получите транзакцию в размере 8ETH от фонда Ethereum БЕСПЛАТНО

Наш девиз: практика перед теорией — давайте перейдем непосредственно к установке полностью синхронизированного узла тестирования Ethereum, подключенного к тестовой сети Rinkeby!

Гет

Geth это интерфейс командной строки (CLI), скомпилированный двоичный файл, программа и клиент для запуска полного узла Ethereum, реализуемого в Go.

Мы будем использовать Гет к:

  • запустите полностью синхронизированный узел Ethereum для подключения к тестовой сети под названием Rinkeby
  • создать новую учетную запись, чтобы иметь возможность отправлять и получать транзакции
  • для чтения состояния EVM, например, проверки баланса любого счета (хотите знать, сколько баланса имеет ваша девушка, парень, жена, сосед? Великолепная прозрачность!)

Установка Geth

Мы можем установить его непосредственно из хранилищ:

Мак

brew tap ethereum/ethereumbrew install ethereum

Linux

sudo apt-get install software-properties-commonsudo add-apt-repository -y ppa:ethereum/ethereumsudo apt-get updatesudo apt-get install ethereum

Windows

Good luck :)

Проверьте установку:

which geth> /usr/local/bin/geth
geth version> Geth> Version: 1.8.20-stable

Убедитесь, что вы используете ту же версию, чтобы выполнить полную синхронизацию сети Rinkeby, как описано в следующих шагах, поскольку Rinkeby применил константинопольный хардфорк, поддерживаемый Geth 1.8.20.

Запуск узла блокчейн

Ну, дьявол кроется в деталях… но начать действительно просто. Слава разработчикам Ethereum.

Давайте настроим новый полностью синхронизированный Ринкби (тестовая сеть Ethereum с использованием протокола Clique PoA) узел.

Реализация Rinkeby PoA намного быстрее, но гораздо менее безопасна. Он более централизован по основной сети PoW, что вполне хорошо как тестовая сеть. Ринкеби удается утвердить новый блок с кучей транзакций каждые 15 секунд.

Хорошо, ладно, ладно… Что на самом деле означают эти слова?

  • Ринкби: название тестовой сети Proof of Authority
  • узел: в основном традиционный сервер, выполняемый клиентом/сервером Ethereum
  • Консенсус: алгоритм, определяющий, как транзакции будут проверяться, добавляться и храниться в базе данных на каждом узле
  • Блокировать: куча транзакций в сложном массиве, рассылаемом вокруг проволоки между всеми узлами сети каждые 15 секунд
  • Транзакция: не думайте о банковской операции. Блокчейн-транзакция – это а изменение состояния. Переименование владельца смарт-контракта с Алисы в Боба? Изменение баланса вашего счета с 1ETH на 5ETH? Установить значение переменной «foo» на «foo_value_123» в своем смарт-контракте? Это трансакция.

Вы можете прочитать больше о предложении Rinkeby PoA здесь: https://github.com/ethereum/EIPs/issues/225

geth --rinkeby --datadir=~/.gophersland_ethereum_r1 --port=30304 --cache=2048 --rpc --rpcport=8546 --rpcapi=eth,web3,net,personal --syncmode=fast

Вышеприведенная команда:

  • инициализировать новый каталог, в котором будут храниться все данные ~/.gophersland_ethereum_r1. Каталог по умолчанию будет: ~/.ethereum
  • начните загружать историю Ethereum, необходимую, чтобы стать новым полностью действительным, синхронизированным узлом сети
  • связь будет происходить через порт 30304
  • кэш, своего рода буфер, будет установлен на 2 Гб, чтобы ускорить процесс синхронизации
  • будет запущен дополнительный RPC API, чтобы мы могли общаться с нашим узлом через консоли, хороший графический интерфейс через порт 8546, позже
1*vABGraHKLDKTR5jWoVYsoA

Подождите несколько часов, пока блокчейн полностью синхронизируется.

Текущий номер блока на 24 сентября: 3039786. На моем AMD Ryzen 5 2600, 3,4 ГГц процесс синхронизации занял 3 часа. О да, у меня новый игровой ПК!

Между тем вы можете подписаться на Web3Coach в Twitter или приготовить ужин, возможно также завтрак, пойти в спортзал… Скажем, блокчейн — не самая быстрая база данных 🙂

Наконец, напечатанное сообщение будет следующим:

  • ИНФО [<time>] Количество импортированных новых сегментов цепи =1
  • ИНФО [<time>] Количество импортированных новых сегментов цепи =1
  • ИНФО [<time>] Количество импортированных новых сегментов цепи =1
  • ИНФО [<time>] Количество импортированных новых сегментов цепи =1

Поздравляем, теперь вы стали частью революции блокчейна менее чем через 10 минут!!!

Создание своей первой учетной записи в блокчейне

Хранилище ключей

Все аккаунты Ethereum и их ключи хранятся в каталоге под названием «хранилище ключей”. По умолчанию каталог пуст, поскольку мы еще не создали собственный аккаунт!

enchanter@lukas-gaming:~$ ls -la ~/.gophersland_ethereum_r1/
drwx------  4 enchanter enchanter 4096 sep 24 15:26 .drwxr-xr-x 18 enchanter enchanter 4096 sep 24 11:51 ..drwx------  4 enchanter enchanter 4096 sep 24 15:26 gethsrw-------  1 enchanter enchanter    0 sep 24 15:26 geth.ipcdrwx------  2 enchanter enchanter 4096 sep 23 09:54 keystore
enchanter@lukas-gaming:~$ ls -la ~/.gophersland_ethereum_r1/keystore/
drwx------ 2 enchanter enchanter 4096 sep 23 09:54 .drwx------ 4 enchanter enchanter 4096 sep 24 15:26 ..

Счет

Чтобы создать новую учетную запись, выполните следующее, уже знакомое, geth cmd

geth --datadir=~/.gophersland_ethereum_r1 account new

Вам будет предложено ввести парольную фразу (это ваш СУПЕР СЕКРЕТНЫЙ ПАРОЛЬ). Это нужно для расшифровки вашего недавно сгенерированного частного ключа, связанного с вашим новым адресом Ethereum, поскольку это позволяет вам использовать его позже для подписания транзакций в блокчейне. Запишите это где-нибудь, поскольку он нам понадобится позже. Но не беспокойтесь, если вы забудете это, все равно это только тестовая сеть.

enchanter@lukas-gaming:~$ ls -la ~/.gophersland_ethereum_r1/keystore/
drwx------ 2 enchanter enchanter 4096 sep 23 09:54 .drwx------ 4 enchanter enchanter 4096 sep 24 15:26 ..
enchanter@lukas-gaming:~$ geth --datadir=~/.gophersland_ethereum_r1 account new
INFO [09-24|15:36:33.566] Maximum peer count                       ETH=25 LES=0 total=25
Your new account is locked with a password. Please give a password. Do not forget this password.
Passphrase: Repeat passphrase:
Address: {ceee57f2b700c2f37d1476a7974965e149fce2d4}
enchanter@lukas-gaming:~$ ls -la ~/.gophersland_ethereum_r1/keystore/
drwx------ 2 enchanter enchanter 4096 sep 24 15:36 .drwx------ 4 enchanter enchanter 4096 sep 24 15:26 ..-rw------- 1 enchanter enchanter  491 sep 24 15:36 
UTC--2018-09-24T13-36-43.069452577Z--ceee57f2b700c2f37d1476a7974965e149fce2d4

Ууууу! Мой новый адрес Ethereum жив: ceee57f2b700c2f37d1476a7974965e149fce2d4.

Обычно вы встретите этот адрес с префиксом.0x” для указания кодирования адреса, HEX.

Новый формат ключевых файлов: UTC--<created_at UTC ISO8601>-<your address in hex кодирование>. Порядок аккаунтов при перечне является лексикографическим, но через формат timepamp фактически он соответствует порядку создания.

Если вам интересно, что внутри файла, смело открывайте его! Ты увидишь:

  • Адрес: ваш новый шестнадцатеричный адрес
  • Крипто: куча математических переменных, ответственных за представление вашего частного ключа в зашифрованном виде, пока не беспокойтесь об этой магии

Интересное примечание: создание аккаунта происходит в автономном режиме и не требует синхронизированного узла блокчейна. Интересно, как с технической точки зрения можно создать уникальный адрес в автономном режиме? Мы проверим go-ethereum сам исходный код в следующей статье

спойлер: это потому, что адрес является хэшем вашего открытого ключа, основанного на вашем уникальном закрытом ключе.

Ладно, у меня есть новая блестящая учетная запись Ethereum, который мой баланс и как я могу внести некоторые тесты эфир?

Если говорить об эфире… что это такое?

эфир

Эфир – это криптовалюта, питающая сеть Ethereum. Он используется как единица стоимости и для оплаты майнерам за проверку, добавление и сохранение транзакций в общую базу данных. Но в основном это метод предотвращения СПАМа, потому что майнеры получают 5 (с прошлого месяца «лишь» 3) ETH за каждый успешно полученный блок. Да, это 600 долларов США по текущей цене на 24 сентября каждые 15 секунд. Хороший бизнес.

Как БЕСПЛАТНО получить транзакцию 8ETH от фонда Ethereum

Проверка баланса счета

Давайте сначала убедимся, что баланс на нашем счету равен 0, если кто-то уже не успел послать немного эфира от души.

Гет предоставляет консоль JavaScript, которую можно подсоединить к исполняемому двоичному файлу для удобного взаимодействия с блокчейном. Мы можем подключиться к нему, указав файл сокета, открывающийся один раз Гет сапоги. Файлы сокетов очень полезны для межпроцессной связи на одной машине, или IPC.

Этот файл можно найти в каталоге данных по умолчанию при работе программы Geth:

enchanter@lukas-gaming:~$ ls -la ~/.gophersland_ethereum_r1/
drwx------  4 enchanter enchanter 4096 Sep 24 15:44 .drwxr-xr-x 18 enchanter enchanter 4096 Sep 24 15:47 ..drwx------  4 enchanter enchanter 4096 Sep 24 15:44 gethsrw-------  1 enchanter enchanter    0 Sep 24 15:44 geth.ipcdrwx------  2 enchanter enchanter 4096 Sep 24 15:47 keystore

Давайте взаимодействовать с сетью Rinkeby с помощью «geth attach” cmd в другом терминале, пока ваш блокчейный узел все еще работает. Обязательно передайте абсолютный путь в файл IPC, иначе вы получите ошибку.

enchanter@lukas-gaming:~$ geth attach ipc:/home/enchanter/.gophersland_ethereum_r1/geth.ipc
Welcome to the Geth JavaScript console!
instance: Geth/v1.8.15-stable-89451f7c/linux-amd64/go1.10.1coinbase: 0xceee57f2b700c2f37d1476a7974965e149fce2d4at block: 3044891 (Mon, 24 Sep 2018 16:42:36 CEST)
datadir: /home/enchanter/.gophersland_ethereum_r1modules: admin:1.0 clique:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0
&gt; eth.accounts["0xceee57f2b700c2f37d1476a7974965e149fce2d4"]
&gt; eth.syncingfalse
&gt; eth.getBalance("0xceee57f2b700c2f37d1476a7974965e149fce2d4")0

Запрос на блокчейн:

eth.accounts: для проверки доступных аккаунтов

eth.syncing: чтобы убедиться, что наше состояние, DB полностью обновлено остальной сети, чтобы гарантировать, что ответ getBalance будет основан на последнем состоянии

eth.getBalance(“<ваш адрес&gt;”): чтобы запросить БД.

Получение транзакции 8ETH от фонда Ethereum БЕСПЛАТНО

Фонд Ethereum имеет очень аккуратную программу под названием «Смеситель” доступна онлайн для назначения Ether учетным записям, которые запрашивают это в режиме реального времени.

Запрос на эфир:

  1. Опубликуйте адрес своего аккаунта в одной из общедоступных социальных сетей
  2. Например, опубликуйте твит с вашим адресом Ethereum в любом месте твита, как этот, убедитесь, что вы пометили @Web3Coach и @freeCodeCamp и сообщите нам, понравился ли вам учебник!
  3. Откройте и вставьте URL-адрес твита
  4. Нажмите «Дайте мне эфир», выберите между 3, 7,5 или 18,75 эфира
  5. Подождите несколько секунд
  6. Снова спросите баланс своего счета
0*Zd4RuYRAIiyqy8Jf
Смеситель Rinkeby
0*TM_yQ3hRp8c8tyf8

Вуаль

Вы богаты… в тестовой сети. Поздравляю с тем, что так далеко.

Вы можете продолжать расширять свои навыки блокчейна, создавая их с нуля в Go!»

Добавить комментарий

Ваш адрес email не будет опубликован.