Существует ли ограничение на размер транзакции?

Существует ли теоретический предел для размера данных транзакции при отправке транзакции в сеть Ethereum?

Ref.

Есть ли (теоретический) предел для количества данных, которые может хранить контракт?

28 голосов | спросил Satoshi Nakanishi 7 FebruaryEurope/MoscowbSun, 07 Feb 2016 10:02:26 +0300000000amSun, 07 Feb 2016 10:02:26 +030016 2016, 10:02:26

2 ответа


45

Ничего себе, это такой интересный вопрос! TL; DR : предел размера транзакции на момент написания составляет около 780 КБ (около 3 миллионов газа). Но читайте дальше.


нет прямого или фиксированного ограничения для размеров транзакций и размеров блоков. Это сила сети Etherem, она масштабируется.

Это не означает, что ограничений нет. Существует предел блока газа в настоящее время 3,141,592 газа, который можно потратить максимум на блок.

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

Попробуем отправить случайные данные 256 КБ с контрактом:

 trx с 256kb случайных данных

Это будет потреблять почти 9 миллионов газа, чего в настоящее время нет. Mist пытается создать транзакцию, но она будет недействительной.

Попробуем создать что-то близкое к пределу газа, 44 444 случайных байта :

 44k random bytes

Эта транзакция прошла, вот ссылка проводника . Hash:

I0207 11:47:14.558908 eth/api.go:946] Tx(0x25e54394ab4e5f17d6e1240c02c1a6c4bb675ef9471f1105b006988f5fe5aec1) to: 0xfcae7970392f510a985a7eaccd3820b7759d65d9
  • Значение: 60 Finney (0.06 Ether)
  • Газ: 3131800
  • Цена газа: 50 Gwei (0,00000005 эфира)
  • Газ, используемый по транзакции: 3031800
  • Фактическая стоимость транзакции: 151.59 Finney (0.15159 Ether)
  • Используемый кумулятивный газ: 3031800

Итак, я добавил 44kB в блок-цепочку в блоке 967163 .

И теперь начинается масштабирование магии Ethereum. В блоке 967164 сеть реагирует на высокое потребление газа и увеличивает предел блока газа до 3,142,967 !

 предел газа увеличен

Таким образом, если в потреблении большого количества газа существует непрерывный запрос, ограничение на газ может быть увеличено на плюс /минус 1/1024, который находится около 0.09%. См. уравнения желтой бумаги 40-42 .

Короче говоря, предел: да, на момент написания около 780 КБ для tx, полный нулевых байтов, или 46 КБ для tx, полного ненулевых байтов. Фиксированные ограничения (например, в биткойне): нет.

ответил Afri 7 FebruaryEurope/MoscowbSun, 07 Feb 2016 14:05:51 +0300000000pmSun, 07 Feb 2016 14:05:51 +030016 2016, 14:05:51
10

По состоянию на 12/08/2017 , газовый предел, как описано в EthStats.net 6,700,314 .

Газовый предел был «застрял» на 4,7 миллиона. Это было рекомендация , что майнеры меняют свои настройки таким образом, чтобы газовый предел мог быть поднятым.

Как указано в этой статье , это произошло.

Каждый шестнадцатеричный символ имеет 4 бита. 2 символа - это байт.

В желтой бумаге указаны сборы за различные операции.

 Статистика EthGasStation

Теперь данные, предоставленные EthGasStation , позволяют нам видеть, что мы могли бы провести транзакцию с ценой на газ менее 0,5 Гвэй.

6,700,314 * 0.5 = 3,350,157 Gwei = 0.003350157 Ether.

Более стандартная цена на газ 20 Gwei даст:

6,700,314 * 20 = 40,201,884 Gwei = 0.040201884 Ether.

При текущей цене ETH около $ 315 она будет стоить от от $ 1,05 до $ 12,66 , чтобы отправить столько данных в цепочку блоков.

ответил Thomas Clowes 12 PM00000070000005831 2017, 19:45:58

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

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

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