Go-Ethereum

在 web3.js 中使用 Whisper

  • March 11, 2018

我一直在試圖弄清楚如何使用 web3 與耳語進行互動。我已經能夠使用 成功發送(和接收)消息geth console,但無法使用 web3.js 做同樣的事情。

您會提供一個簡短的 JavaScript 片段來成功發送和接收耳語消息嗎?

執行 Geth,(我使用geth --rinkeby --fast --cache=512 console --shh --rpc --rpccorsdomain '*' --ws --wsorigins '*')和瀏覽器中的web3.js v1,在瀏覽器控制台中鍵入:

> 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

此範例適用於 Whisper v5:https ://github.com/gballet/whisper-chat-example

引用自:https://ethereum.stackexchange.com/questions/32314