Kann eine DAPP Metamask sowie andere Mittel für Keystore unterstützen?

Ich verwende Metamask für die Schlüsselspeicherung in meinem Dapp. Mein Verständnis ist, dass die Metamask-App ein web3-Objekt einfügt und alle Signierfunktionen bei Bedarf selbst verarbeitet. Aber Metamask bietet derzeit nur Unterstützung für Chrome und Firefox (meines Wissens) und das Firefox-Plugin hat immer noch einige Probleme (ich bekomme seltsame Fehler und das Plugin hängt sich manchmal auf). Ich bin mir auch nicht sicher, ob es noch Android-Unterstützung gibt. Ich möchte also, dass es eine alternative Option gibt, entweder Metamaske zu verwenden oder alles zu signieren, indem der Benutzer nach dem Schlüssel gefragt wird. Ich weiß nicht, wie man letzteres macht und ob es möglich ist, beides in derselben App zu tun.

Antworten (3)

Wenn Sie die Kompatibilitätsrichtlinien zur Entwicklung für MetaMask befolgen , ist es sehr wahrscheinlich, dass Ihre DAPP auch mit MetaMask-Alternativen wie Mist, Parity Browser, Toshi und SpaceSuit korrekt funktioniert.

Es ist möglich, Benutzer nach einem Schlüssel zu fragen (EtherDelta gibt Benutzern beispielsweise diese Option), aber es ist auch eine wirklich schlechte Angewohnheit, es Ihren Benutzern beizubringen (EtherDelta wurde vor einiger Zeit gehackt, und Benutzern, die dies taten, wurde ihr Ether gestohlen).

Eine Alternative besteht darin, die Schnittstelle zu Ihren Smart Contracts so einfach zu gestalten, dass das direkte Aufrufen der Verträge (über etwas wie MyEtherWallet oder die Truffle-Konsole) nicht zu verwirrend ist.

Die Verwendung von Metamask ist nur eine Möglichkeit, dies zu tun. Sie können auch MIST oder jede andere Brieftasche verwenden, die web3 unterstützt. Obwohl die Verwendung von Metamask die Arbeit schnell erledigt. Wenn Sie mir mehr Details darüber geben können, was genau Ihre App tut, kann ich Ihnen eine spezifischere Lösung geben.

Ich meine, wenn ich den Signiervorgang für die App einfach durchführen kann, ohne den "dezentralisierten" Mechanismus zu entfernen. Ich denke darüber nach, Infura direkt zu verwenden , anstatt Metamask zu verwenden. Ich verstehe die Verwendung eines bereitgestellten Knotens, den Infura durchführt, aber der Signiervorgang ist etwas, das ich nicht herausfinden kann. Ich möchte den Schlüssel der Benutzer nicht speichern.

Das brauchen Sie:

https://github.com/MetaMask/provider-engine

Sie könnten den Benutzer mit Metamaske weiterhin verbinden lassen, ODER lassen Sie den Benutzer den privaten Schlüssel eingeben, um dieses neue web3 zu injizieren.

Ich habe eine mobile App und eine Desktop-App aus einer Web-App erstellt, die diesen Code verwendet und flüssig funktioniert.