Как лучше всего пользователям моего Dapp не платить за газ?

Я создаю Dapp React/NodeJS для людей, у которых есть только адрес электронной почты и ничего больше (без адреса Ethereum (и, следовательно, без газа), без MetaMask, без кошельков Eth и т. д.)

Адрес создается на этапе регистрации, но для этого нужен газ х)

Я думаю об этих двух вариантах:

  • Пользователь может установить для gasPrice значение 0. Хотя эта транзакция, скорее всего, не будет подхвачена майнерами, провайдер Dapp может майнить все транзакции, идущие на его адрес.

  • Упорядочите и сохраните данные транзакций, полученные с помощью метода web3 getData(), и запустите их позже с адресом администратора Eth Wallet.

Я не вижу других способов.

Ребята, если у вас есть идеи, поделитесь.

Если вашим пользователям не нужен адрес и вы не хотите платить за газ, возможно, вам не следует использовать Ethereum. Преимущество блокчейн-решения, такого как Ethereu, заключается в децентрализованном реестре. Переосмыслите свое решение или подумайте о частном блокчейне.
Возможно, этот ответ будет полезен ethereum.stackexchange.com/a/38517/18932

Ответы (3)

Пользователь может установить для gasPrice значение 0. Хотя эта транзакция, скорее всего, не будет подхвачена майнерами, провайдер Dapp может майнить все транзакции, идущие на его адрес.

Это интересный вопрос.
Пока мы все еще находимся в PoW, сценарий, который вы описали, кажется возможным.
Я сделал некоторые расчеты :

  • Вам потребуется в среднем 800 дней , чтобы найти 1 блок, если вы майните на установке с одной GTX 1080 Ti со скоростью 30MH/s.

Информация, приведенная выше, приведена только для примера. Это может варьироваться.


провайдер Dapp мог майнить все транзакции, идущие на его адрес

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

12,57 дней не кажется правильным. Калькулятор, на который вы ссылаетесь, дает более 800 дней, чтобы найти блок со скоростью 30 МГц / с (что, как я предполагаю, находится на правильном уровне для 1080 Ti, плюс-минус коэффициент 2).
@lungj вы правы, я использовал неправильную таблицу хешрейта. Спасибо!

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

Это то, что я сделал для приложения, которое использовало блокчейн в фоновом режиме, оно было невидимым для пользователей, все, что они знали, это то, что оно «защищено с помощью блокчейна».

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

"Адрес создается на этапе регистрации, но для этого нужен газ х)"

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