Compare commits
6 Commits
Author | SHA1 | Date |
---|---|---|
Lee Miller | 344ba31842 | |
Lee Miller | e78c5b1576 | |
Lee Miller | 180f6bc0de | |
Lee Miller | 9c4c8940e8 | |
Lee Miller | 9eea54236b | |
Lee Miller | b9ba97fb91 |
|
@ -0,0 +1,20 @@
|
||||||
|
name: Send message
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
default:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
apt-get update
|
||||||
|
apt-get install -yq --no-install-suggests --no-install-recommends \
|
||||||
|
python3-pip
|
||||||
|
pip install pyzmq \
|
||||||
|
git+https://git.bitmessage.org/Bitmessage/MiNode.git@queue#egg=minode
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Install
|
||||||
|
run: npm install
|
||||||
|
- name: Run script
|
||||||
|
run: node index.js
|
10
Dockerfile
10
Dockerfile
|
@ -1,7 +1,13 @@
|
||||||
FROM node:16.14.2
|
FROM node:18-bullseye
|
||||||
|
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get install -yq python3-pip
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
RUN pip install pyzmq \
|
||||||
|
git+https://git.bitmessage.org/Bitmessage/MiNode.git@queue#egg=minode
|
||||||
|
|
||||||
COPY package.json package.json
|
COPY package.json package.json
|
||||||
COPY package-lock.json package-lock.json
|
COPY package-lock.json package-lock.json
|
||||||
|
|
||||||
|
@ -9,4 +15,4 @@ RUN npm install
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
CMD [ "node", "index.js" ]
|
CMD ["node", "index.js"]
|
||||||
|
|
98
index.js
98
index.js
|
@ -1,68 +1,42 @@
|
||||||
var messages = require('bitmessage').messages;
|
// Send newly generated message via a MiNode process running in background
|
||||||
var objects = require('bitmessage').objects;
|
|
||||||
var Address = require('bitmessage').Address;
|
const objects = require('bitmessage').objects,
|
||||||
var TcpTransport = require('bitmessage-transports').TcpTransport;
|
Address = require('bitmessage').Address;
|
||||||
var eccrypto = require("eccrypto");
|
|
||||||
|
const { spawn } = require('child_process');
|
||||||
|
const zmq = require('zeromq');
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
const from = Address.fromPassphrase('loremipsum1');
|
const sock = zmq.socket('pub');
|
||||||
console.log('[from]', from.encode());
|
|
||||||
console.log('[from sign priv key]', from.signPrivateKey.toString('hex'));
|
sock.bindSync('tcp://127.0.0.1:5566');
|
||||||
console.log('[from version]', from.version);
|
console.log('Publisher bound to port 5566');
|
||||||
console.log('[from stream]', from.stream);
|
|
||||||
console.log('[from behaviour]', from.behavior);
|
spawn(
|
||||||
const toAddr = Address.fromPassphrase('gru');
|
'minode', ['--request-queue', 'tcp://127.0.0.1:5566'],
|
||||||
console.log('[toAddr]', toAddr.encode());
|
{timeout: 100000, killSignal: 'SIGTERM', detached: true, stdio: 'inherit'}
|
||||||
console.log('[toAddr enc pub key]', toAddr.encPublicKey.toString('hex'));
|
).on('exit', (c, s) => {
|
||||||
console.log('[toAddr version]', toAddr.version);
|
sock.close();
|
||||||
console.log('[toAddr stream]', toAddr.stream);
|
});
|
||||||
console.log('[toAddr ripe]', toAddr.ripe);
|
|
||||||
const encodedMsg = await objects.msg.encodePayloadAsync({
|
const sender = Address.fromRandom(),
|
||||||
|
recipient = Address.fromPassphrase('test');
|
||||||
|
console.log('sender:', sender.encode());
|
||||||
|
console.log('recipient:', recipient.encode());
|
||||||
|
|
||||||
|
objects.msg.encodePayloadAsync({
|
||||||
ttl: 1800,
|
ttl: 1800,
|
||||||
from: from,
|
from: sender,
|
||||||
to: toAddr,
|
to: recipient,
|
||||||
message: 'hey there!',
|
message: 'The quick brown fox jumps over the lazy dog.',
|
||||||
subject: 'Lorem Ipsum',
|
subject: 'hello',
|
||||||
encoding: 2,
|
encoding: 2
|
||||||
friend: true,
|
}).then(function (msg) {
|
||||||
skipPow: true,
|
console.log('msg:', msg.toString('hex'));
|
||||||
|
console.log('Sending the msg...');
|
||||||
|
sock.send(Buffer.concat([
|
||||||
|
Buffer.from('msg', 'ascii'), Buffer.from('00', 'hex'), msg
|
||||||
|
]));
|
||||||
});
|
});
|
||||||
const strippedMsg = encodedMsg.slice(8);
|
|
||||||
console.log('[check messages]', strippedMsg);
|
|
||||||
console.log('[check messages]', strippedMsg.toString('hex'));
|
|
||||||
var d = await objects.msg.decodePayloadAsync(encodedMsg, {
|
|
||||||
skipPow: true,
|
|
||||||
identities: toAddr,
|
|
||||||
});
|
|
||||||
console.log('[decoded]', d.message);
|
|
||||||
// const encPublicKey = '04a60f6cd97ecd16768215ef059ccfbb1840b736bcdb0763872ddfeef4c417d2ec8439383ce68de9a2b30ad44e9f0e56a13fc2895a6e41f7cf3757e46181d32dd0';
|
|
||||||
// const encPrivateKey = '2cb5ae4e8cf8c71d1221f5c6c46810b448207cacedd86cc52219c3f107048c10';
|
|
||||||
// const dec = await objects.msg.decPayloadTest(encPrivateKey, e);
|
|
||||||
// console.log('[dec]', dec);
|
|
||||||
// var encObj = encrypted.decode(buf);
|
|
||||||
// resolve(eccrypto.decrypt(privateKey, encObj));
|
|
||||||
|
|
||||||
})();
|
})();
|
||||||
// var tcp = new TcpTransport({
|
|
||||||
// dnsSeeds: [['bootstrap8444.bitmessage.org', 8444]],
|
|
||||||
// });
|
|
||||||
|
|
||||||
// tcp.bootstrap().then(function (nodes) {
|
|
||||||
// var remoteHost = nodes[0][0];
|
|
||||||
// var remotePort = nodes[0][1];
|
|
||||||
// console.log('Connecting to', nodes[0]);
|
|
||||||
// tcp.connect(remotePort, remoteHost);
|
|
||||||
// });
|
|
||||||
|
|
||||||
// tcp.on('established', function (version) {
|
|
||||||
// console.log('Connection established to', version.userAgent);
|
|
||||||
|
|
||||||
// tcp.on('message', function (command, payload) {
|
|
||||||
// console.log('Got new', command, 'message');
|
|
||||||
// var decoded;
|
|
||||||
// if (command === 'addr') {
|
|
||||||
// decoded = messages.addr.decodePayload(payload);
|
|
||||||
// console.log('Got', decoded.addrs.length, 'node addresses');
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bignum": "^0.13.1",
|
"bignum": "^0.13.1",
|
||||||
"bitmessage": "^0.6.6",
|
"bitmessage": "git+https://git.bitmessage.org/Bitmessage/bitmessage-js.git",
|
||||||
"bitmessage-transports": "^0.1.4"
|
"zeromq": "5.3.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue