Wie können dapps auf Smartphones funktionieren?

Wie können dapps in mobilen Webbrowsern mit web3.js interagieren?

Gibt es ein Tool wie Metamask oder Mist auf der Roadmap für Mobilgeräte?

Antworten (6)

Status ist ein guter Anfang, um eine Ethereum Mobile DApp zu entwickeln.

Status ist eine Open-Source-Messaging-Plattform und ein mobiler Browser zur Interaktion mit dezentralisierten Anwendungen, die im Ethereum-Netzwerk ausgeführt werden.

Dezentrale Apps an Ihren Fingerspitzen: Mit Status wird Ihr Mobilgerät zu einem leichten Client-Knoten im Ethereum-Netzwerk, sodass Sie von überall aus auf das gesamte Ökosystem von Ethereum zugreifen können.

Intelligenteres privates Messaging: Status ist mehr als ein Messenger. Senden Sie Zahlungen und Smart Contracts aus Chats heraus an Freunde und nutzen Sie standardmäßig verschlüsseltes Messaging, indem Sie ein Peer-to-Peer-Protokoll verwenden, das nicht auf zentralisierte Server angewiesen ist.

Die Status-App (Ethereum Mobile Gateway) befindet sich derzeit in der Alpha-Phase und kann auf Android und iPhone getestet werden.

Nachfolgend finden Sie eine kurze Anleitung, wie Sie eine DApp auf Status bereitstellen. Stellen Sie sich vor, Sie haben eine DApp (ReactNative, Ionic, ...) auf {DAPP_URL}

  1. Laden Sie Status auf Ihr Telefon herunter und konfigurieren Sie ein Konto

  2. Installieren Sie status-dev-clinpm i -g status-dev-cli

  3. Geben Sie in der Statuskonsole ein /debug. Dadurch erhalten Sie die IP-Adresse Ihres Geräts {DEVICE_IP}

  4. Stellen Sie auf Ihrem Computer sicher, dass Sie Ihr Gerät und Ihren Status sehen können: status-dev-cli scan(Status muss ausgeführt werden)

  5. Der letzte Schritt besteht darin, die Dapp im Status zu registrieren:status-dev-cli add "{\"whisper-identity\": \"my-dapp\", \"dapp-url\": \"{DAPP_URL}\", \"name\": \"MyDAPP\"}" --ip {DEVICE_IP}

Sie können jetzt Ihre Status-App aktualisieren und MyDapp erscheint in der Liste. Der Browser startet Ihre Dapp und kann mit der Ethereum-Blockchain und Smart Contracts interagieren (web3).

Standardmäßig wird Status im Testnet-Netzwerk ausgeführt. Mit dem folgenden Befehl können Sie zu einem anderen Knoten (private, testrpc oder mainnet) wechselnstatus-dev-cli switch-node {NODE_URL} --ip {DEVICE_IP}

Dokumentation: Hier

Einige Beispiele: Ich und andere Entwickler haben kürzlich am Status-Hackaton teilgenommen. Dieser Blogbeitrag (Winners Announcement) wird einige der Projekte veranschaulichen, die in einem einwöchigen Zeitraum entwickelt wurden.

Trust Wallet ist eine Open-Source-App für iOS, die ein mobiles Erlebnis für dApps bietet. Es ist sowohl für iOS als auch für Android verfügbar.

Als Basis haben Sie eine Brieftasche, um Schlüssel sicher lokal am Telefon zu handhaben, da Sie einen privaten Schlüssel benötigen, um mit einer Blockchain zu kommunizieren.

Trust verfügt über eine Browserfunktion, die einen JavaScript-Web3-Anbieter einfügt, um signierte Transaktionen und Nachrichten zu verarbeiten.

Um zu erfahren, wie dies implementiert wird, können Sie sich den Quellcode ansehen: https://github.com/TrustWallet/trust-wallet-ios

Ich würde empfehlen, die Light-Client-Android- und iOS -API zu verwenden, die vom go-ethereum-Projekt verfügbar ist. Da Ethereum jetzt Light-Clients unterstützt, haben Go-Ethereum-Entwickler APIs für Android und iOS erstellt und können mit make androidoder make iosauf Go-Ethereum-Quellcode kreuzkompiliert werden.

Wenn Sie den Code nicht kompilieren möchten, können Sie sogar den Go-Ethereum-Client als Maven-Abhängigkeit einschließen.

repositories {
    mavenCentral()
}

dependencies {
    // All your previous dependencies
    compile 'org.ethereum:geth:1.5.2' // Change the version to the latest release
}

Wenn Sie keine Abhängigkeit einschließen möchten, versuchen Sie, das Bundle (.aar ) herunterzuladen und in Ihr Projekt zu importieren.

Das obige Verfahren hilft Ihnen, Ihre App vollständig in Java zu programmieren, aber selbst jetzt, wenn Sie web3j verwenden möchten, können Sie die Go-Ethereum-Quelle hacken, um RPC in Ihrem Android-Knoten zu aktivieren und mit dieser über die JSON-API zu interagieren.

Wenn Sie nicht möchten, dass Ihre Benutzer Dapp-Browser oder eine Chrome-Erweiterung herunterladen. Sie können dieses Projekt namens Fortmatic ausprobieren, auf das ich kürzlich gestoßen bin. Ihre Benutzer können mit Ihrer DApp über Browser interagieren, mit denen sie bereits auf Mobilgeräten vertraut sind (Safari, Firefox und Chrome).

Ich bin gerade in die Alpha gekommen und habe angefangen, damit herumzuspielen, die Dokumentation scheint ziemlich sauber zu sein, und wenn Ihre App bereits mit web3 funktioniert, sollten Sie in der Lage sein, sie ziemlich nahtlos zum Laufen zu bringen.

Fyi für andere, Fortmatic ist treuhänderisch (bewahren Sie Ihre privaten Schlüssel auf)

Das Tasit SDK ist ein Open-Source-JavaScript-SDK zum Erstellen eigenständiger nativer mobiler Ethereum-Dapps mit React Native.

Verwenden Sie die gleichen web3js und Sie können infura als Web3-Anbieter verwenden. Mit React oder Ionic können Sie mobile Apps schreiben, die mit Ihrem Smart Contract interagieren