Как 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. С последним вы бы полностью избежали необходимости тратить какие-либо эфиры на взаимодействие с блокчейн-сетью, но, скорее всего, у вас были бы дополнительные накладные расходы.