Verwenden von Whisper mit web3.js

Ich habe versucht herauszufinden, wie man mit Flüstern mit web3 interagiert. Ich konnte mit erfolgreich eine Nachricht senden (und empfangen) geth console, aber mit web3.js konnte ich das nicht tun.

Würden Sie ein kurzes JavaScript-Snippet bereitstellen, das erfolgreich eine Flüsternachricht sendet und empfängt?

- welchen Anbieter nutzt du? (web3.setProvider)? - Was war der Fehler bei der Verwendung von web3.js?

Antworten (2)

Geben Sie bei laufendem Geth (ich habe geth --rinkeby --fast --cache=512 console --shh --rpc --rpccorsdomain '*' --ws --wsorigins '*') und web3.js v1 im Browser in die Browserkonsole Folgendes ein:

> web3.shh.setProvider("ws://localhost:8546") // must use websockets (read this on https://ethereum.stackexchange.com/a/34840/6014)
> web3.shh.newKeyPair().then(console.log) // logs key pair
> web3.shh.subscribe("messages", {privateKeyID: keyPair}, (err, msg) => console.log("msg received!", msg)) // returns subscription that will log the message when it's received
> web3.shh.getPublicKey(keyPair).then(console.log) // logs public key

> web3.shh.post({pubKey: publicKey, ttl: 10, payload: '0xffffffdddddd1122', powTime: 3, powTarget: 0.5}) // sends the message

Dieses Beispiel funktioniert für Whisper v5: https://github.com/gballet/whisper-chat-example