Слушатель транзакций смарт-контракта

У меня есть некоторые сомнения относительно смарт-контрактов . Прежде всего, я знаю, что когда я разверну смарт-контракт, у него будет адрес. Можно предположить, что я развернул смарт-контракт на блокчейне. Итак, мои вопросы:

  1. Правда ли, что смарт-контракт может быть вызван только в том случае, если пользователь совершит транзакцию по адресу смарт-контракта?

  2. Если пользователь A совершает транзакцию по отношению к пользователю B или C и т. д., может ли смарт-контракт выполняться самостоятельно? (будьте осторожны, транзакция не связана с самим смарт-контрактом).

  3. Может ли смарт-контракт работать как прослушиватель всех транзакций в блокчейне и выполняться сам, если есть все необходимые условия для его активации?

Ответы (1)

  1. Правильный. В блокчейне есть 2 вида учетных записей. Один из них — EOA (внешние учетные записи), а другой — контракты. Контракты могут быть созданы контрактами или EOA, но все транзакции должны исходить из EOA. Однако EOA могут вызывать контракты, которые вызывают другие контракты.

  2. Смарт-контракт не может быть выполнен, если пользователь или смарт-контракт не обратятся к нему напрямую. Способ сделать вашу первоначальную вещь состоял бы в том, чтобы контракт был прокси-контрактом, который, наряду с тем, что хотел сделать первоначальный пользователь, также делал что-то еще. Затем пользователь будет вызывать функцию в контракте.

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

Может ли транзакция быть проверена валидаторами с использованием консенсусного протокола, такого как PoS, PoW, PoA? Или смарт-контракт сам по себе является механизмом консенсуса?
Транзакции проверяются майнерами/валидаторами. Контракты не являются механизмом консенсуса.
Итак, могу ли я использовать вышеупомянутые механизмы консенсуса, верно?
Что ты имеешь в виду? Когда вы отправляете транзакцию в сеть Ethereum, она проверяется узлами и обрабатывается майнером. Вам не нужно проверять транзакцию самостоятельно, если только вам не нужно проверять данные, отправленные с помощью функции cal.
Да, я согласен с вами, но я имею в виду, что в основном транзакция выполняется с использованием механизма консенсуса, такого как PoS, PoW или PoA, поэтому важно указать, какой механизм консенсуса принят
Я все еще не уверен, в чем вопрос. Если вы сейчас используете основную сеть Эфириума, это консенсус PoW. Через год или около того это, вероятно, будет PoS.