Как Ethereum Smart Contract работает на мобильном клиенте

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

Если мы сравним взаимодействие через веб-сервисы в мобильном клиенте, то в Smart-контракте почти все то же самое, что и отсутствие базы данных или службы развертывания в результате децентрализованного характера системы. Это правильно? Мы можем подключить мобильный клиент к смарт-контракту, используя некоторую библиотеку, такую ​​как web3, которая по существу будет работать с Json RPC или веб-сокетами.

Но что, если я не хочу подключать каждый мобильный клиент к смарт-контракту с использованием библиотеки, такой как web3? Вместо этого, что если я хочу иметь HTTP-сервер, а затем он подключится к смарт-контракту, как показано ниже?

Это возможно? Если да, то как я могу это сделать?

Мой второй вопрос касается развертывания. В сценарии с централизованным сервером я бы развернул базу данных на каком-либо сервисе, таком как AWS и т. Д. Я мог бы оценить стоимость развертывания. Я понял, что мы должны развернуть умный контракт в сети Ethereum, который будет стоить примерно x Эфира. Но потом я узнал, что мои пользователи должны будут платить за каждое вычисление. Что делать, если я хочу нести все расходы? Как мы можем оценить такие расходы?

Пожалуйста, направьте меня по вышеуказанным вопросам. Спасибо.

1 ответ

Вместо этого, что если я хочу иметь HTTP-сервер, а затем он подключится к смарт-контракту, как показано ниже?

Вы, конечно, можете это сделать, некоторые могут поспорить, что слой централизации добавляется путем размещения веб-сервера между DApp и блокчейном, но я бы не согласился. Если вы хотите сделать это, ваш DApp просто вызовет REST API на вашем веб-сервере, который в свою очередь будет использовать web3.js (node.js), web3j (Java), Nethereum (C# /.NET) или любой другой вариант Web3 для взаимодействия напрямую с блокчейном.

Что делать, если я хочу нести все расходы?

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

Как мы можем оценить такие расходы?

Вы можете оценить стоимость газа при развертывании контракта или взаимодействии по контракту через web3 estimateGasметод. Поймите, эта стоимость может в значительной степени зависеть от того, насколько хорошо структурирован ваш код смарт-контракта Solidity. Обратите внимание, что это, конечно, также только оценка, так как пользователи всегда могут потратить больше Ether, чтобы их транзакция была подтверждена быстрее, или состояние данных в смарт-контракте может со временем измениться, что потребует более высоких затрат на газ (то есть повторение растущего массива). Для получения дополнительной информации о стоимости газа в сети Ethereum, вы можете взглянуть на АЗС ETH.

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

Другие вопросы по тегам