Как даппы могут работать на смартфонах?

Как децентрализованные приложения в мобильных веб-браузерах могут взаимодействовать с web3.js?

Есть ли в дорожной карте для мобильных устройств такой инструмент, как Metamask или Mist?

Ответы (6)

Статус — хорошее начало для разработки мобильного децентрализованного приложения Ethereum.

Status — это платформа обмена сообщениями с открытым исходным кодом и мобильный браузер для взаимодействия с децентрализованными приложениями, работающими в сети Ethereum.

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

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

Приложение Status (мобильный шлюз Ethereum) в настоящее время находится в стадии альфа-тестирования и может быть протестировано на Android и iPhone.

Ниже вы найдете краткое руководство по развертыванию децентрализованного приложения на Status.Представим, что у вас есть децентрализованное приложение (ReactNative, Ionic, ...), работающее на {DAPP_URL}.

  1. Загрузите Status на свой телефон и настройте учетную запись

  2. Установить статус-dev-клиnpm i -g status-dev-cli

  3. В консоли состояния введите /debug. Это даст вам IP-адрес вашего устройства {DEVICE_IP}.

  4. На своем компьютере убедитесь, что вы видите свое устройство и статус: status-dev-cli scan(статус должен быть запущен)

  5. Последний шаг состоит в регистрации децентрализованного приложения в статусе: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, вы сможете заставить его работать без проблем.

к сведению для других, Fortmatic является кастодиальным (держите ваши личные ключи)

Tasit SDK — это JavaScript SDK с открытым исходным кодом для создания автономных нативных мобильных приложений Ethereum с использованием React Native.

Используйте тот же web3js, и вы можете использовать infura в качестве поставщика Web3. Используя React или Ionic, вы можете писать мобильные приложения, взаимодействующие с вашим смарт-контрактом.