Whisper Testing Node - WORKING!

I’ve set up a Whisper node on a Digital Ocean cloud server just to have a node available for testing and experimenting that will spread any whisper messages to all other nodes that it is aware of. It’s running on port 30380 at 167.99.0.223

An easy way to check to see if it is running is to use wnode which is a stand-alone whisper command-line tool that is installed with Geth.

Start it by running

wnode -boot=enode://6920356a8d998752bd0d269c95c21aaf0b87357a5dc36cbd1c648d09e47119bc5[email protected]167.99.0.223:30380

If the node on the server is running, wnode will respond with “Connected to peer”:

my public key: 0x04....
enode://....
Whisper node started
Connected to peer.
Please enter the password for symmetric encryption:

If you run copies of this using the same password, it will set up a topic based on the password and the two machines can exchange messages.

It’s also possible to setup Geth to connect to this server which makes it easier to use the whisper-chat-example. I’ll post the Geth instructions shortly.

3 Likes

This is awesome! I’ve heard of Digital Ocean and would love to play around with what you’ve created. Thank you.

1 Like

There may be a better way to get Geth running whisper and connecting to the sever node, but this seems to work. I start Geth with the following parameters:

geth --nodiscover --netrestrict 167.99.0.223/24  --shh --rpc --rpccorsdomain '*' 

Then add the server node using geth attach in another shell window

~ geth attach

> admin.addPeer("enode://6920356a8d998752bd0d269c95c21aaf0b87357a5dc36cbd1c648d09e47119bc5[email protected]167.99.0.223:30380")

Edit: I added --netrestrict 167.99.0.223/24 to the command line which tells geth to only connect to the server node and no other nodes. With that I can get whisper-chat-example partially working, but still haven’t been able to do 2-way messages like with wnode.

1 Like

Success!

I made a few changes to the whisper-chat example program and got it working using the geth settings in my previous message.

I modified it to only use symmetric keys. I’ve stuck a copy at https://wchat.ms4.com

Load it after you have started geth. It will ask for a ‘topic password’ and username. The topic password is just a seed to create a topic and symmetric key.

For example, a password of ‘elk’ will result in these values:

Topic: 0xefb21489
Key: 0xefb214895185ab20f94a11a20573a3c79d4ff3ad2437fd0c857d9aeca913eded

Any two or more users entering the same password will be able to chat.

The username is used to show who the messages are from. In this simple test version there is nothing to prevent two different users from using the same username.

The modified source files are available at https://github.com/jeffjacobsen/whisper-chat.

The user interface could certainly be improved, and it might not be a bad starting point for multiple topics, private chat, etc.

2 Likes

LELELELE!!! Amazing work Jeff!
What’re you talking about, the UI is very craigslist, beautiful!

1 Like

So far I think you’re our weekly winner @jeff - unless we get a sudden surge of activity ;D! I’ll be sending out a reminder email today with a link to your work. Huge hugs everyone!

1 Like

Hi @jeff, amazing post! I followed the instructions and was wondering…will this enable us to send messages to each other? I used a topic password of elk and connected to https://wchat.ms4.com…thank you for setting this up! Really cool.

Whisper Chat
Topic: 0xefb21489
Key: 0xefb214895185ab20f94a11a20573a3c79d4ff3ad2437fd0c857d9aeca913eded
derp: Can anyone see this message?

derp: Oh, perhaps this is just between me, myself and I.

derp: If someone else joins this with topic password “elk”, can they also see these messages?

1 Like

I’m on too, wanna say hi?

1 Like

Did you also

geth attach

admin.addPeer(“enode://6920356a8d998752bd0d269c95c21aaf0b87357a5dc36cbd1c648d09e47119bc5[email protected]167.99.0.223:30380”)

?? Do I need to run npm start dev? I think not, because that’s definitely runs on localhost. Ok then…I think mine should be working. If someone sees my message, let me know!

I just added the peer, oops!

1 Like

Here’s my screenshot. halaw

1 Like

IT WORKS! Mwahahahahaha. No more AOL Instant Messenger for me!

1 Like

Thank you jeff, I was also able to connect using the topic password “elk” and my username justintheblock I also connected using justintheblockalso and was able to respond to myself from the same node, I will try a second node later tonight.

FYI the start button does not appear under the username field until the username has been populated,

Although I did not have to use the command

geth attach admin.addPeer(“enode://6920356a8d998752bd0d269c95c21aaf0b87357a5dc36cbd1c648d09e47119bc5[email protected]167.99.0.223:30380”)

That command gave me syntax errors for “:” in windows and “(” in Ubuntu.

I only used the first command to connect

geth --nodiscover --netrestrict 167.99.0.223/24 --shh --rpc --rpccorsdomain ‘*’

Thank you for your work.

(My previous response may have been confusing, so I’ve deleted it)

Here’s a screenshot to make things more clear. First run geth attach, then admin.addPeer is an input to the geth console. The console should respond with “true”

24%20PM

2 Likes

Here is my Whisper experiment on Windows, with one server and two nodes on a single network.

  • Set up Geth on your computer
    • From https://geth.ethereum.org/
    • Installed at C:\Program Files\Geth\
    • Open command prompt and run geth
    • Use Wnode to chat
      • https://geth.ethereum.org/whisper/Diagnostic-Tool-wnode
      • Create a Whisper forwarder
        • New command prompt and wnode -standalone -forwarder -ip=127.0.0.1:30379
        • -> my public key: 0x04baa9ca3fb7a20e9c093d52af18f5cc323c32f3d6b26a80fd232b16d7e0cd43ac572d4be4af8ec880db17fe4d22484e477a0d195981a564457c15136408dbcdaa
          enode://19a1ea26498dcb18c39c0124a525b861a29d1cdcd053fa889ffe762251c7e1970[email protected]127.0.0.1:30379
          Bootstrap Whisper node started
      • Create a chat node
        • New command prompt and wnode -test -boot=enode://19a1ea26498dcb18c39c0124a525b861a29d1cdcd053fa889ffe762251c7e1970[email protected]127.0.0.1:30379
        • -> my public key: 0x048b65cc02055b1b0712f81f17daf1045c9c29f9e28070c6cf967fd7597e0b5b1efebf6969a538d6c5678f5d93fc710fdd480a78c7fc2397ba6d5c4171eb3773de
          enode://e6c639df4c68837b0952aa5c7bef42de6fb6f8f160ca310fdce7ad58c7ad7f0bd[email protected]127.0.0.1:0?discport=49743
          Whisper node started
          Connected to peer.
          Filter is configured for the topic: 5a4ea131
          Please type the message. To quit type: ‘~Q’
      • Create another chat node
        • New command prompt and wnode -test -boot=enode://19a1ea26498dcb18c39c0124a525b861a29d1cdcd053fa889ffe762251c7e1970[email protected]127.0.0.1:30379
        • -> my public key: 0x04ff91e602d82332044156c28234411fc9427780e607abce4df55076c10213b1bac62697e8fb0bc3e596c4092b21332e24bf5fb61f3302f67868e86b34ac7edd07
          enode://68647d2ec55388be550da41ea0d6ed055f4ed7ed81a18d947ce271cb9a1edd5d2[email protected]127.0.0.1:0?discport=63957
          Whisper node started
          Connected to peer.
          Filter is configured for the topic: 5a4ea131
          Please type the message. To quit type: ‘~Q’
      • You can now exchange messages between the two chat nodes.
      • Add more nodes as needed.
1 Like

And now using Jeff’s Whisper node on a Digital Ocean cloud server

2 Likes

lelelele, hope we’re all having fun here :)!

1 Like

Oh Wow! guyz you are doing TREMENDOUS job right here @jeff @nathanjmartin @GdB. This is a real deal post, easy to get and fun to work with!
Thanks Jeff for the well explained and detailed post, Also thanks GDB for the clear steps too. Hope you guyz enjoyed playing with whisper.

1 Like

Thank you :slight_smile: It’s a pleasure learning and working on blockchain, and the Elk device is very interesting. After playing with ESP8266 and ESP32, I think this is the next big thing in IoT.

@GdB @jeff Thank you for your help and instructions,

I was able to connect two nodes on the same network and talk to each other using the symmetric encryption. I ended up loading three Ubuntu OSes on a VM server, using one as the forwarder and two others to chat. I had to open the port I defined on the forwarding server (port 30379 in this case) for the connections to establish.

Thank you again for everyone’s help.

1 Like