Sending a message via minode
buildbot/travis_bionic Build done. Details
buildbot/multibuild_parent Build done. Details

This commit is contained in:
Lee Miller 2023-11-02 23:16:01 +02:00
parent 1db96e2e27
commit b9ba97fb91
Signed by: lee.miller
GPG Key ID: 4F97A5EA88F4AB63
3 changed files with 47 additions and 65 deletions

View File

@ -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"]

View File

@ -1,68 +1,42 @@
var messages = require('bitmessage').messages;
var objects = require('bitmessage').objects; const objects = require('bitmessage').objects,
var Address = require('bitmessage').Address; Address = require('bitmessage').Address;
var TcpTransport = require('bitmessage-transports').TcpTransport;
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: 300000, killSignal: 'SIGQUIT'}
console.log('[toAddr enc pub key]', toAddr.encPublicKey.toString('hex')); ).stderr.on('data', (data) => {
console.log('[toAddr version]', toAddr.version); console.log(`${data}`);
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());
var msg = await 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, friend: true
skipPow: true,
}); });
const strippedMsg = encodedMsg.slice(8); console.log('msg:', msg.toString('hex'));
console.log('[check messages]', strippedMsg);
console.log('[check messages]', strippedMsg.toString('hex')); console.log('Sending the msg');
var d = await objects.msg.decodePayloadAsync(encodedMsg, { sock.send(Buffer.concat([
skipPow: true, Buffer.from('msg', 'ascii'), Buffer.from('00', 'hex'), msg
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');
// }
// });
// });

View File

@ -11,7 +11,9 @@
"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#mac",
"bitmessage-transports": "^0.1.4" "nan": "2.15.0",
"secp256k1": "3.7.1",
"zeromq": "5.3.1"
} }
} }