Обычные транзакции VS. Внутренние транзакции в эфирах

В etherscan :

-->> accounts >> contract accounts >> selecting one contract,

Существует два типа транзакций, упомянутых в No Of Transactions :

Обычные транзакции и Внутренние транзакции .

В чем разница между ними и почему обычные транзакции обычно намного меньше , чем внутренние транзакции?

22 голоса | спросил varDumper 22 J0000006Europe/Moscow 2016, 17:44:39

3 ответа


10
  

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

Также проверьте эти ответы

  1. Внутренние транзакции TheDAO
  2. Как получить внутренние транзакции по контракту
ответил niksmac 22 J0000006Europe/Moscow 2016, 19:46:22
8

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

ответил Ethan 23 J000000Saturday16 2016, 07:16:49
4

В протоколе Ethereum есть только транзакции и вызовы сообщений. Транзакция - это тип вызова сообщения.

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

Чтобы попытаться проиллюстрировать, транзакция в Javascript выглядит так:

{
  from: ...,
  to: "C1",
  value: ...,
  gas: ...,
  data: ...,
  gasPrice: ...,
  nonce: ...
}

Это то, что вы увидите на блочной цепочке: «Обычная транзакция». «Внутренняя транзакция» - это результат использования части data, подачи ее to контракта C1 и выполнения виртуальной машины Ethereum. data - это то, что говорит C1, что он должен вызывать другой контракт C2: нет отдельного объекта {from:C1, to:C2,...} на блочной цепочке, необходимо.


Контракты, вызывающие друг друга, наряду с получением платежа, являются причиной того, что «Обычные транзакции обычно намного меньше внутренних транзакций». Например, токены THEDAO были первоначально приобретены путем вызова функции на TheDAO и отправки ETH с ней.

ответил eth 23 J0000006Europe/Moscow 2016, 21:34:49

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

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

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