В этой статье мы рассмотрим, что такое узлы Ethereum, и рассмотрим один из самых популярных, называемый Geth.
Для связи с блокчейном мы должны использовать клиент блокчейна. Клиент — это часть программного обеспечения, способная устанавливать канал связи p2p с другими клиентами, подписывать и транслировать транзакции, осуществлять майнинг, развертывать и взаимодействовать с интеллектуальными контрактами и т. Д. Клиент часто называют узлом .
Формальное определение функциональности, которой должен следовать узел Ethereum, определено в желтой статье ethereum . Желтая бумага определяет требуемые функции узлов в сети, алгоритм майнинга, параметры ECDSA с закрытым / открытым ключом. Он определяет все функции, которые делают узлы полностью совместимыми с клиентами Ethereum.
Основываясь на желтой бумаге, каждый может создать собственную реализацию узла Ethereum на любом языке, который он считает нужным.
Полный список клиентов можно увидеть здесь .
На сегодняшний день самыми популярными клиентами являются Geth и Parity . Реализации различаются в основном по выбору языка программирования — где Geth использует Golang, а Parity использует Rust.
Поскольку Geth является самой популярной клиентской реализацией, доступной на данный момент, мы сосредоточимся на ней сейчас.
Типы узлов
Когда вы присоединяетесь к сети Ethereum, у вас есть возможность запустить различные типы узлов. Варианты в настоящее время:
- Легкий узел
- Полный узел
- Архивный узел
Архивный узел — это особый случай полного узла, поэтому мы не будем вдаваться в подробности. Одно из лучших резюме по типам узлов, которые я нашел, находится на Stack Exchange :
В общем, мы можем разделить программное обеспечение узлов на два типа: полные узлы и легкие (весовые) узлы. Полные узлы проверяют блок, который транслируется в сеть. Таким образом, они гарантируют, что транзакции, содержащиеся в блоках (и самих блоках), следуют правилам, определенным в спецификациях Ethereum. Они поддерживают текущее состояние сети (как определено в соответствии со спецификациями Ethereum).
Транзакции и блоки, которые не соответствуют правилам, не используются для определения текущего состояния сети Ethereum. Например, если A пытается отправить 100 эфиров в B, но A имеет 0 эфиров, и блок включает эту транзакцию, полные узлы поймут, что это не соответствует правилам Ethereum, и отклонят этот блок как недействительный. В частности, выполнение смарт-контрактов является примером транзакции. Всякий раз, когда в транзакции используется умный контракт (например, отправка токенов ERC-20), все полные узлы должны будут выполнить все инструкции, чтобы убедиться, что они достигли правильного, согласованного следующего состояния блокчейна.
Есть несколько способов достичь одного и того же состояния. Например, если бы А имел 101 эфир и отдал сто из них Б за одну транзакцию, заплатив 1 эфир за газ, конечный результат был бы таким же, как если бы А отправил 100 транзакций по 1 эфиру каждая, заплатив 0,01 эфира за транзакцию ( игнорируя, кто получил комиссию за транзакцию). Чтобы узнать, разрешено ли теперь B посылать 100 эфира, достаточно знать, каков текущий баланс B. Полные узлы, которые сохраняют всю историю транзакций, называются полными узлами архивации. Они должны существовать в сети, чтобы быть здоровыми.
Узлы также могут отказаться от старых данных; если B хочет отправить 100 эфира в C, не имеет значения, как был получен эфир, только учетная запись B содержит 100 эфира. Легкие узлы, напротив, не проверяют каждый блок или транзакцию и могут не иметь копии текущего состояния блокчейна. Они полагаются на полные узлы, чтобы предоставить им недостающие детали (или просто не хватает определенной функциональности). Преимущество легких узлов заключается в том, что они могут гораздо быстрее запускаться и работать, могут работать на устройствах с большим количеством вычислительных ресурсов / памяти и не поглощают почти столько же памяти. С другой стороны, существует элемент доверия в других узлах (он варьируется в зависимости от клиента, и вероятностные методы / эвристика могут использоваться для снижения риска). Некоторые полные клиенты включают функции для более быстрой синхронизации (например, синхронизация деформации Parity).
Что будет с майнерами Ethereum
После завершения перехода майнинга ETH в классическом понимании больше не будет. Сеть полностью переходит на алгоритм подтверждения доли, что позволит уменьшить расходы электроэнергии, решить проблемы с масштабированием и скоростью работы. Эксперты советуют майнерам Ethereum уже сегодня сворачивать процесс и готовиться к переходу. Многие инвесторы планирует временно перевести майнинг на монеты Ravencoin или Ethereum Classic.
На ноябрь 2022 года майнеры уже перенесли большой хардфорк под названием London. Это крупнейшее изменение системы с момента появления криптовалюты в 2015 году. Такие изменения автоматизируют размер комиссий и сжигает их часть. При этом майнеры больше не получают плату за операции. Деньги направляются на специальные адреса, к которым нет доступа. При этом майнеры получают только новые монеты Ethereum.
Внедрение хардфорка London было необходимо для подготовки сообщества майнеров к полному переходу. Ужа на данном этапе уменьшилось предложение и повысился спрос, что привело к росту курсовой цены ETH. Если пользователи не поверят в проект и уйдут из него, это разгрузит систему и приведет к уменьшению сложности. Как результат, оставшиеся участники смогут зарабатывать больше. Чтобы дойти до момента слияния достаточно небольшого количества майнеров, после чего в них не будет необходимости.
Бегущий Гет
Чтобы раскрутить узел Geth, единственное, что вам нужно сделать, это зайти в окно терминала и запустить geth . Когда вы это сделаете, вы должны получить вывод, похожий на этот:
➜ ~ geth INFO [06-03|11:03:13] Maximum peer count ETH=25 LES=0 total=25 INFO [06-03|11:03:13] Starting peer-to-peer node instance=Geth/v1.8.10-stable/darwin-amd64/go1.10.2 INFO [06-03|11:03:13] Allocated cache and file handles database=/Users/mjvr/Library/Ethereum/geth/chaindata cache=768 handles=128 INFO [06-03|11:03:13] Writing default main-net genesis block INFO [06-03|11:03:14] Persisted trie from memory database nodes=12356 size=2.34mB time=48.31016ms gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B INFO [06-03|11:03:14] Initialised chain configuration config=»{ChainID: 1 Homestead: 1150000 DAO: 1920000 DAOSupport: true EIP150: 2463000 EIP155: 2675000 EIP158: 2675000 Byzantium: 4370000 Constantinople: Engine: ethash}» INFO [06-03|11:03:14] Disk storage enabled for ethash caches dir=/Users/mjvr/Library/Ethereum/geth/ethash count=3 INFO [06-03|11:03:14] Disk storage enabled for ethash DAGs dir=/Users/mjvr/.ethash count=2 INFO [06-03|11:03:14] Initialising Ethereum protocol versions=»[63 62]» network=1 INFO [06-03|11:03:14] Loaded most recent local header number=0 hash=d4e567…cb8fa3 td=17179869184 INFO [06-03|11:03:14] Loaded most recent local full block number=0 hash=d4e567…cb8fa3 td=17179869184 INFO [06-03|11:03:14] Loaded most recent local fast block number=0 hash=d4e567…cb8fa3 td=17179869184 INFO [06-03|11:03:14] Regenerated local transaction journal transactions=0 accounts=0 INFO [06-03|11:03:14] Starting P2P networking INFO [06-03|11:03:16] UDP listener up self=enode://a4cb08519bc2bceecb8ad421871c624d5212888653bbaee309fda960f3c87ca7a[email protected][::]:30303 INFO [06-03|11:03:16] RLPx listener up self=enode://a4cb08519bc2bceecb8ad421871c624d5212888653bbaee309fda960f3c87ca7a[email protected][::]:30303 INFO [06-03|11:03:16] IPC endpoint opened url=/Users/mjvr/Library/Ethereum/geth.ipc
После этого вы должны периодически появляться новые строки, где Geth говорит «Импорт нового состояния» или «Импорт новых заголовков блоков» или «Импорт новых поступлений». Состояние, заголовки блоков и транзакции являются частью попыток дерева Ethereum : они должны быть загружены для синхронизации вашего узла с блокчейном Ethereum.
Это процесс, который может занять очень много времени, поэтому один из вариантов, который у вас есть, — запустить такой легкий узел;
geth —light
Теперь нужно, чтобы Geth извлек только самые последние заголовки блоков и полагался на другие полные узлы для проверки транзакций с помощью подтверждений Merkle .
Доступ к консоли Geth
Теперь, когда вы создали узел, вы можете получить к нему доступ, открыв новую вкладку в своем терминале и выполнив следующее:
geth attach
Это подключит консоль Geth — среду Javascript для связи с блокчейном — к вашему работающему узлу. Это можно сделать как в полном режиме клиента, так и в легком режиме.
После того, как вы открыли консоль, введите:
web3.eth.blockNumber
Вы должны получить вывод в виде числа (например, 5631487), которое представляет текущий номер блока сети Ethereum.
Важные советы
Перед тем как майнить Ethereum методом стейкинга, учтите ряд важных моментов:
- Размер награды уменьшается по мере добавления монет Эфириум новыми участниками. Чем быстрей удастся подключиться, тем лучше.
- При полноценном пуске Eth 2.0 средний доход составляет 2% в год. Это значит, что при инвестиции всей суммы в размере 132 000 долларов можно рассчитывать на доход в размере 2640 долларов.
- Заблокированные монеты Эфириум для стейкинга не получится вывести до внедрения фазы 1.5. Это значит, что средства «зависают» где-то на 1-2 года.
- При совместном стейкинге остается риск быть заблокированными из-за нарушения правил. Чтобы избежать таких последствий, важно внимательно читать правила и условия сотрудничества.
- При отсутствии знания и опыта можно использовать заготовленные сервисы / узлы валидатора.
- С каждым днем появляются новые платформы, предлагающие услуги совместного стейкинга. Вот почему при выборе нужно изучить все предложения, почитать отзывы, изучить условия, а уже после этого делать выбор.
Создание новой учетной записи
Чтобы использовать блокчейн, вам необходимо иметь учетную запись. С Geth вы можете сделать это, запустив в своем терминале следующее:
geth account new
После того, как вы это сделаете, он попросит вас ввести пароль, который вам понадобится для защиты вашей учетной записи. Убедитесь, что вы используете безопасный пароль и храните его в безопасности.
То, что делает Geth при запуске geth account new — это обновление файла в каталоге данных Geth (каталоге, в котором Geth хранит все необходимые данные, включая блоки и заголовки). Места (на платформу):
- macOS: ~/Library/Ethereum
- Linux: ~/.ethereum
- Windows: %APPDATA%\Ethereum
Как майнить ETH после перехода на Eth2
После слияния больше не нужно тратить деньги на покупку дорогостоящего оборудования. Стать валидатором может любой желающий, оборудование которого соответствует следующим требованиям:
- ОС — Виндовс, Мак ОС Х или Линукс 64 бита.
- ОЗУ — от 4 Гб.
- CPU — от Intel Core i5-760 или AMD FX-8110.
- Свободное место на диске — 20 Гб.
- Наличие «бесперебойника» (ИБП).
- Скорость подключения к Сети — от 10 Мбит/с и более.
Выше представлен минимальные требования, но рекомендуемые параметры выше. В частности, желательно иметь ОЗУ от 8 Гб, свободное место на «жестком» от 100 Гб и более мощный процессор i7-4770 или FX-8310 соответственно.
После обновления можно майнить ETH напрямую или использовать посредников в роли кошельков, биржевых или иных площадок. Как вариант, можно воспользоваться предложением биржи Бинанс.
Сам процесс подразумевает следующие шаги:
- Приготовьте 32 монеты Ethereum, которые будут использоваться для инвестиций. Для надежности лучше хранить их в аппаратном хранилище.
- Перейдите на ресурс Эфириуем по ссылке launchpad.ethereum.org/ru/ и кликните на кнопку «Стать валидатором».
- Подробно изучите инструкцию, которая приведена для начинающих майнеров. Здесь будет информация по доказательству доли, депозиту, терминалу, времени работы, рекомендациям по поведению и управлению ключами. Также приводятся сведения по обязательствам, рискам и т. д. Не экономьте время, ведь приведенная информация в будущем пригодится.
- Жмите на «Продолжить». Система предупреждает, что нужно иметь 32 ETH для получения статуса валидатора, а откатить действия по передаче монет Beacon Chain имеют необратимый характер.
- Кликните на пункт «Принимаю».
- Выберите одну из доступных программ. Для обработки депозитов нужно запустить параллельно два клиента: Eth1 и Eth2. На выбор доступен следующий софт — Open Ethereum, Geth, Nethermind, Besu или Erigon.
- Укажите число активируемых валидаторов. Для получения одного необходимо 32 монеты Эфириум.
- Выберите ОС устройства, на котором проводится работа и планируется запуск узла.
- Подключите кошелек и приступайте к работе.
Доступ к Geth от других клиентов
Когда вы запускаете Geth, клиент автоматически запускает RPC-сервер на порту 8545 . Вы можете получить доступ к серверу RPC и его методам на этом порту, подключившись к localhost:8545 с помощью библиотеки, такой как web3js или web3j или web3j ее вручную с помощью curl или wget .
Чтобы узнать о подключении внешних инструментов, таких как те, к работающему экземпляру Geth (частному при запуске вашей собственной цепочки блоков или общедоступным, как в инструкциях выше), смотрите этот пост .
Что нужно знать о валидаторах
Майнинг Ethereum на Eth2 — ответственная миссия для валидатора. Последний представляет собой единицу сети, необходимую для подтверждения блока сети. Простыми словами, это участник процесса, участвующий в голосовании о новых блоках. От числа голосов напрямую зависит вероятность попадания в цепочку. Взамен своей деятельности валидаторы получают вознаграждение. Главное условие — отправка залога в размере 32 ETH.
Стоит учесть еще ряд моментов:
- Для выполнения функций валидатора необходимо запускать команды в терминале. При этом создание новых пар ключей и установка ПО осуществляются с помощью терминала.
- Вознаграждение начисляется только при наличии валидатора в сети. В случае выхода нарушителя ждет наказание, равное 25% от размера стейка (первое время). В последующем размер штрафов будет увеличен.
- Попытки обмана системы влекут за собой наказание. В частности, речь идет о штрафе за запуск одного валидатора на двух ПК.
- Резервное копирование обеспечивается с помощью мнемонического кода, который необходимо хранить в надежном месте.
- Переводить средства между валидаторами запрещено. Для этого придется выждать некоторое время до полного объединения сети, которое произойдет в 2022 году.
- До окончательного подключения сохраняется риск ошибок, к которым необходимо быть готовым.
Как выбрать Эфириум кошелек
Разнообразие криптовалютных кошельков с поддержкой Ethereum ставит нас перед нелегким выбором. Чтобы упростить задачу, задайте себе несколько вопросов:
- Как часто вы будете пользоваться кошельком?
- Какие суммы собираетесь хранить?
- Планируете длительное хранение или постоянное движение средств?
- Собираетесь ли хранить другие монеты кроме Эфириума?
Разобравшись в этих вопросах, вы поймете, какой вариант для вас целесообразней. Если вы планируете заниматься криптоторговлей и обменивать валюту, можно воспользоваться биржевым хранилищем. Для регулярных небольших платежей подходят онлайн-бумажники или мобильные приложения. Для хранения больших сумм, прежде всего, важна безопасность. Здесь нужно выбирать между десктопными и аппаратными кошельками. За последние придется заплатить порядка $90.