Где хранятся данные состояния?

Этот вопрос задавали Reddit некоторое время назад:

  

Где хранятся данные состояния? На жестком диске каждого узла? Отдельно от или в пределах цепочки блоков?    â € " Reddit: основные вопросы об элеменном EVM и состоянии хранения суб>

20 голосов | спросил Joris Bontje 22 Jam1000000amFri, 22 Jan 2016 10:22:02 +030016 2016, 10:22:02

4 ответа


21

В концептуальном плане есть 2 важных компонента блочной цепочки на основе учетной записи:

  • транзакции представляют собой функции перехода состояния
  • результат этих функций может быть сохранен

«Полный /архивный» узел может хранить все транзакции и результирующие состояния для всех высот блоков в локальном хранилище данных. Это будет включать в себя все исторические состояния, даже те, которые более недействительны. Это позволяет клиентам запрашивать состояние блокировки в любое время в прошлом, не переучитывая все с самого начала. Это, скорее всего, потребует очень больших объемов дискового хранилища, и поскольку это не является строго необходимым, концептуально блокированные данные могут быть разделены:

  • данные о цепочке (список блоков, образующих цепочку)
  • данные состояния (результат перехода состояния каждой транзакции)

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

Итак, в настоящее время, хотя данные о цепочке и состоянии хранятся локально на диске узла, строго необходимы данные цепочки. Данные состояния могут быть эфемерными.

ответил Taylor Gerring 22 Jpm1000000pmFri, 22 Jan 2016 16:41:28 +030016 2016, 16:41:28
8

Технически государства собираются в дерево состояний (patricia-tree), связанное с учетной записью (баланс в случае EAO, баланс и хранение в случае учетной записи контракта) и блоки (рисунки ниже). Физически состояния являются частью блочной цепи, поэтому вы можете найти их в папке .ethereum (в базе данных leveldb) каждого полного узла. Для получения более подробной информации перейдите на страницу .

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

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

ответил Badr Bellaj 13 AM00000020000005831 2016, 02:58:58
3

Слияние самородков информации из нескольких источников (в первую очередь это и это ):

  1. Данные состояния (вместе с остатками на счете, кодом контракта и учетной записью nonce) хранятся каждым клиентом Ethereum (или узлом Ethereum)
  2. Блок-схема Ethereum включает в себя корни состояния (по одному на блок), которые хранят корневой хэш хэш-дерева, представляющего состояние системы во время создания блока.
ответил zanzu 22 Jpm1000000pmFri, 22 Jan 2016 14:40:15 +030016 2016, 14:40:15
0

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

ответил Vaibhav Saini 5 AM00000090000005731 2018, 09:38:57

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

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

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