Как децентрализованные приложения в мобильных веб-браузерах могут взаимодействовать с web3.js?
Есть ли в дорожной карте для мобильных устройств такой инструмент, как Metamask или Mist?
Статус — хорошее начало для разработки мобильного децентрализованного приложения Ethereum.
Status — это платформа обмена сообщениями с открытым исходным кодом и мобильный браузер для взаимодействия с децентрализованными приложениями, работающими в сети Ethereum.
Децентрализованные приложения у вас под рукой: благодаря Status ваше мобильное устройство становится легким клиентским узлом в сети Ethereum, что позволяет вам получать доступ ко всей экосистеме Ethereum из любого места.
Умный обмен личными сообщениями: Status — это больше, чем мессенджер. Отправляйте платежи и смарт-контракты друзьям из чатов и наслаждайтесь зашифрованным обменом сообщениями по умолчанию, используя одноранговый протокол, который не зависит от централизованных серверов.
Приложение Status (мобильный шлюз Ethereum) в настоящее время находится в стадии альфа-тестирования и может быть протестировано на Android и iPhone.
Ниже вы найдете краткое руководство по развертыванию децентрализованного приложения на Status.Представим, что у вас есть децентрализованное приложение (ReactNative, Ionic, ...), работающее на {DAPP_URL}.
Загрузите Status на свой телефон и настройте учетную запись
Установить статус-dev-клиnpm i -g status-dev-cli
В консоли состояния введите /debug
. Это даст вам IP-адрес вашего устройства {DEVICE_IP}.
На своем компьютере убедитесь, что вы видите свое устройство и статус: status-dev-cli scan
(статус должен быть запущен)
Последний шаг состоит в регистрации децентрализованного приложения в статусе:status-dev-cli add "{\"whisper-identity\": \"my-dapp\", \"dapp-url\": \"{DAPP_URL}\", \"name\": \"MyDAPP\"}" --ip {DEVICE_IP}
Теперь вы можете обновить свое приложение статуса, и вы увидите MyDapp в списке. Браузер запустит ваше децентрализованное приложение, и оно сможет взаимодействовать (web3) с блокчейном Ethereum и смарт-контрактами.
По умолчанию статус запускается в сети testnet. Вы можете переключиться на другой узел (частный, testrpc или mainnet) с помощью следующей командыstatus-dev-cli switch-node {NODE_URL} --ip {DEVICE_IP}
Документация: Здесь
Несколько примеров: я и другие разработчики недавно посетили хакатон Status. Этот пост в блоге (объявление победителей) иллюстрирует некоторые из проектов, разработанных в течение одной недели.
Trust Wallet — это приложение для iOS с открытым исходным кодом, которое обеспечивает мобильное взаимодействие с dApps. Он доступен как на iOS, так и на Android.
В качестве основы у вас есть кошелек для безопасной локальной обработки ключей на телефоне, поскольку вам нужен закрытый ключ для связи с блокчейном.
Trust имеет функцию браузера, которая внедряет провайдера JavaScript web3 для обработки подписанных транзакций и сообщений.
Чтобы узнать, как это реализовано, вы можете проверить исходный код: https://github.com/TrustWallet/trust-wallet-ios .
Я бы порекомендовал использовать легкий клиент Android и iOS API, доступный в проекте go-ethereum. Поскольку Эфириум теперь поддерживает легкий клиент, разработчики go-ethereum создали API для Android и iOS, и его можно кросс-компилировать с использованием make android
или make ios
в исходном коде go-ethereum.
Если вы не хотите компилировать код, вы можете даже включить клиент go-ethereum в качестве зависимости от maven.
repositories {
mavenCentral()
}
dependencies {
// All your previous dependencies
compile 'org.ethereum:geth:1.5.2' // Change the version to the latest release
}
Если вы не хотите включать зависимость, попробуйте загрузить пакет (.aar ) и импортировать его в свой проект.
Приведенная выше процедура поможет вам полностью запрограммировать ваше приложение на Java, но даже сейчас, если вы хотите использовать web3j, вы можете взломать исходный код go-ethereum, чтобы включить RPC в своем узле Android и взаимодействовать с ним с помощью JSON-API.
Если вы не хотите, чтобы ваши пользователи загружали браузеры dapp или расширение для Chrome. Вы можете попробовать этот проект под названием Fortmatic , с которым я недавно столкнулся. Ваши пользователи смогут взаимодействовать с вашим децентрализованным приложением через браузеры, с которыми они уже знакомы на мобильных устройствах (Safari, Firefox и Chrome).
Я только что добрался до альфы и начал с ней играться, документы кажутся довольно чистыми, и если ваше приложение уже работает с web3, вы сможете заставить его работать без проблем.
Tasit SDK — это JavaScript SDK с открытым исходным кодом для создания автономных нативных мобильных приложений Ethereum с использованием React Native.
Используйте тот же web3js, и вы можете использовать infura в качестве поставщика Web3. Используя React или Ionic, вы можете писать мобильные приложения, взаимодействующие с вашим смарт-контрактом.
Мигель Мота