Skip to content

Instantly share code, notes, and snippets.

@blueplanet
Created December 23, 2017 14:17
Show Gist options
  • Save blueplanet/b4905533ede44cc3a0e5413409565375 to your computer and use it in GitHub Desktop.
Save blueplanet/b4905533ede44cc3a0e5413409565375 to your computer and use it in GitHub Desktop.
イーサリアムの Whisper を使ってみる ref: https://qiita.com/blueplanet/items/6947a04406fa74401457
geth -dev --ws --wsport 8546 --wsaddr 0.0.0.0 --wsorigins "*" --wsapi "eth,web3,shh" console
// 上記コマンドで起動したconsoleで下記を実行して、symKeyの値をメモしておく
> web3.shh.newSymKey()
"6a255cd62f2f9989119a60ea0cac6aa71aba479e99a49cff8a6eade669f1e44e"
>
receive data:
{ sig: '0x045811f4c1ac1c860c18d314159eeedb13dd194e40eb95851f5abd9b303731bfdb918e1b41a43a75875c5d9ea073011a985ec4bdf1a151d2ee27c25e4186b90919',
ttl: 10,
timestamp: 1514038334,
topic: '0xffaadd11',
payload: '0xffffffdddddd1122',
padding: '0x6a6a321cadb2b17e45fe678e74c1fcb252fd2737bff136086666f85a436b8840d5d0752529b83e2608202f7a320325fb9518a8bd32e5a418a278279fdbac1bc49c9e704cd2b67cf3
b512f08c25f67c77ec28561f32d662abd13e89521bec7c34339ef5bbfdb2ee01ae11af1428781f786da980243891896a0408885a95744ba88a0896f4b00089ef4ba6ae2ec4865ed3fc463c83e7b99c
0ee108f43c249856e45aae3447aa75b256bd96500b369a0545f06c86cbe4',
pow: 0.6714754098360656,
hash: '0x962587c9de2d3f355dbaf098762a57288a12dba1edb00c35e1f5fbe63da9a38c' }
// send.js
var Web3 = require("web3");
var web3 = new Web3();
web3.setProvider(new Web3.providers.WebsocketProvider('ws://0.0.0.0:8546'));
var symKey = '2996cfb046f29413e55796fc201a3f7146b19ce63644369fc0f415f7d83a4637';
var keyPair = null;
Promise.all([
web3.shh.newKeyPair().then((id) => { keyPair = id; })
]).then(() => {
web3.shh.post({
symKeyID: symKey, // encrypts using the sym key ID
sig: keyPair, // signs the message using the keyPair ID
ttl: 300,
topic: '0xffaadd11',
payload: '0xffffffdddddd1122',
powTime: 3,
powTarget: 0.5
});
console.log('sent message');
});
// watch.js
var Web3 = require("web3");
var web3 = new Web3();
web3.setProvider(new Web3.providers.WebsocketProvider('ws://0.0.0.0:8546'));
var symKey = '2996cfb046f29413e55796fc201a3f7146b19ce63644369fc0f415f7d83a4637';
var keyPair = null;
Promise.all([
web3.shh.newKeyPair().then((id) => { keyPair = id; })
]).then(() => {
subscription = web3.shh.subscribe("messages", {
symKeyID: symKey,
topics: ['0xffaadd11']
}).on('data', (message) => {
console.log('receive data: ')
console.log(message);
});
console.log('started subscribe.');
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment