Что такое клиент Ethereum и какие клиенты существуют?

В вводном руководстве по интерфейсу командной строки Ethereum.org упоминаются следующие клиенты:

  • eth - клиент C ++, подходящий для разработки, разработки IoT и разработки контрактов.
  • geth - проверенный безопасностью клиент Go для использования с Mist, подходящий для разработки Dapp
  • pyethapp - клиент Python, чтобы помочь понять и взломать Ethereum

В Wiki я также прочитал:

  • Webthree - C ++
  • AlethZero -?
  • EthereumJs - JavaScript

Что такое клиент Ethereum? Является ли это полным сетевым узлом, который может отправлять транзакции блочной цепочке (если это правильный язык?) Или же он может быть легким JS-клиентом, который подключается из браузера к полному узлу?

Может ли кто-то пролить свет на то, что есть в настоящее время клиенты и какие роли они выполняют?

36 голосов | спросил hcvst 21 Jpm1000000pmThu, 21 Jan 2016 21:38:37 +030016 2016, 21:38:37

4 ответа


29

«Клиент Ethereum» - это всего лишь термин. Он относится к любому узлу, способному анализировать и проверять блоксхему, свои интеллектуальные контракты и все связанные. Он также позволяет вам /предоставляет интерфейсы для создания транзакций и блоков шахт, которые являются ключом для любого взаимодействия с блочной связью.

Официальные эталонные реализации (CLI)

В настоящее время доступно три справочные реализации, поскольку вы уже выделили:

Все клиенты должны работать одинаково с точки зрения пользователя. Они обеспечивают одни и те же интерфейсы и т. Д. Например, если вы запускаете DApp или кошелек Ethereum или экземпляр браузера DApp, он не должен учитывать никаких различий в общении с клиентом.

Официальные эталонные реализации (GUI)

Графические клиенты, доступные разработчикам ядра Ethereum:

  • mist, который работает поверх geth или eth и нацелен на то, чтобы быть браузером DApp и в настоящее время реализует ethereum-wallet-dapp
  • alethzero внутренне называется хардкорным клиентом , но он устарел. https://github.com/ethereum/alethzero

Сторонние реализации (CLI)

Неофициальными клиентами, реализующими спецификацию желтой бумаги, являются:

Сторонние реализации (GUI)

Неофициальными клиентами с графическим интерфейсом являются:

ответил Tjaden Hess 3 FebruaryEurope/MoscowbWed, 03 Feb 2016 03:20:40 +0300000000amWed, 03 Feb 2016 03:20:40 +030016 2016, 03:20:40
11

Есть пара «эталонных реализаций», которые поддерживает основа Ethereum.

  1. Ethereum C ++ (известный как Eth или "TurboEthereum")
  2. Go Ethereum (известный клиенту командной строки Geth)
  3. EthereumJ
  4. Pyethereum

Есть несколько причин для этого.

  1. Поиск консенсусных проблем.

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

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

  1. Распространение риска.

Если в любой из реализаций Ethereum есть вектор атаки или ошибка, это означает, что сеть обычно прекрасна, так как существует большее разнообразие доступных клиентов. Поскольку я пишу это, это, к сожалению, не на 100% истинно, но потому, что у Geth есть большая часть сети, но мы надеемся, что другие клиенты будут расти в использовании в ближайшие месяцы.

  1. Игра на сильных сторонах

Не все языки хороши в одном и том же (некоторые мнения в следующем бите)

  • C ++ очень быстрый, но сложнее построить или прочитать.
  • Go легко создавать, кодировать и читать, но теряет скорость.
  • Java может использоваться в большинстве корпоративных сред и имеет лучшую поддержку для Android.
  • Python очень легко разбирается и читается, но дает некоторую скорость для этого.

Надеюсь, это поможет понять это.

ответил Maran 4 FebruaryEurope/MoscowbThu, 04 Feb 2016 22:01:41 +0300000000pmThu, 04 Feb 2016 22:01:41 +030016 2016, 22:01:41
4

Как вы упомянули, есть 3 официальных клиента, упомянутых в wiki

  1. Webthree (C ++)
  2. Geth (Go)
  3. pyeth (Python)

кстати, a поиск github привел к значительно большему списку.

 введите описание изображения здесь>> </a> </p></body></html>

ответил niksmac 22 Jam1000000amFri, 22 Jan 2016 05:30:00 +030016 2016, 05:30:00
1

Это может сделать с обновлением:

https: //github.com/ethereum/wiki/wiki/Clients,-tools,-dapp-browsers,-wallets-and-other-projects

Я все еще не уверен, что может запускать полный клиент /узел. Единственными в Ethstats являются Geth, Parity и C ++, а также несколько неуказанных узлов: введите описание изображения здесь

В Ethernodes , у Гета около двух третей, а у Паритета есть большая часть другой третьей , Раньше я не видел имен для других клиентов. Я поднял пару крошечных. Moac предоставляет интерфейс для Geth, Parity и Eth. Simalarly, Pirl (349) использует Geth. Eth (C ++) имеет 9 узлов, ethereumJS имеет 27. Один из других клиентов начинается с g, указывая, что они могут быть обычным /раздвоенным клиентом Geth. Вот архивный снимок этих статистика.

ответил James Ray 4 J0000006Europe/Moscow 2018, 13:23:41

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132