Как Ethereum Smart Contract работает на мобильном клиенте - PullRequest
0 голосов
/ 07 января 2019

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

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

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

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

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

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

1 Ответ

0 голосов
/ 07 января 2019

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

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

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

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

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

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

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

...