mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-07-10 18:29:30 +00:00
* remove --mode from the CLI * move WakuMode to the messaging layer * expose store backend (db url, max connections) and a remote store node on the messaging surface * wakunode2 with no flags now runs as a full service node (store still opt-in) * add rateLimitMessagesPerEpoch * channel rate-limiting auto-enables if epochPeriodSec or messagesPerEpoch is set * fix JSON conf parser to be generic (works over all config types) * messaging config = mode + preset + messagingOverrides + channelsOverrides * add full messaging plus selective kernel config options to MessagingClientConf * mode (Core/Edge) expands to kernel protocol flags in the messaging layer * create_node parses the messaging config, drops the flat WakuNodeConf JSON entrypoint * wire channelsOverrides (segmentation/SDS/rate-limit) into channel creation * fix liblogosdelivery.h comments and README for the new config shape * messaging conf tests: switch names, reject-unknown, set-twice, field->kernel * add kernel log-level, log-format, nodekey to the messaging surface * Port 0 (ephemeral) default for messaging entry points * KernelConf alias for WakuNodeConf * rewrite the FFI examples to the new config shape * C/C++ examples use preset status.prod * drop operator-only confs from the examples * remove duplicate tests & misc test fixes * Delete p2pReliability from Kernel (Waku) resolver and config (keep preset definition) * Delete NodeConfig API (deprecation completed by p2pReliability removal from kernel) * Rename test_messaging_conf.nim to test_conf.nim (tests Logos Delivery config in general) * Rename messaging_conf_json.nim to logos_delivery_conf_json.nim * Add logos_delivery_conf.nim (defines LogosDeliveryConf aggregate) * misc docs/comments cleanups
81 lines
2.4 KiB
JavaScript
81 lines
2.4 KiB
JavaScript
|
|
var express = require('express');
|
|
var app = express();
|
|
|
|
function create_random_string(length) {
|
|
let result = '';
|
|
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
const charactersLength = characters.length;
|
|
let counter = 0;
|
|
while (counter < length) {
|
|
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
counter += 1;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
var wakuMod = require('bindings')('waku');
|
|
|
|
var cfg = `{
|
|
"mode": "Core",
|
|
"messagingOverrides": {
|
|
"listen-address": "0.0.0.0",
|
|
"tcp-port": 60001,
|
|
"nodekey": "364d111d729a6eb6d3e6113e163f017b5ef03a6f94c9b5b7bb1bb36fa5cb07a9",
|
|
"log-level": "DEBUG"
|
|
}
|
|
}`
|
|
|
|
function event_handler(event) {
|
|
console.log("evento NodeJs: " + event)
|
|
}
|
|
|
|
wakuMod.wakuNew(cfg)
|
|
|
|
wakuMod.wakuVersion(function(msg){ console.log("Waku Version: " + msg) })
|
|
|
|
// Example on how to retrieve a value from the waku library
|
|
var defaultPubsubTopic = ""
|
|
wakuMod.wakuDefaultPubsubTopic(function(msg){ defaultPubsubTopic = msg })
|
|
|
|
console.log("Default pubsub topic: " + defaultPubsubTopic)
|
|
|
|
console.log("Setting callback event callback function")
|
|
wakuMod.wakuSetEventCallback(event_handler)
|
|
|
|
wakuMod.wakuStart()
|
|
|
|
wakuMod.wakuConnect("/ip4/127.0.0.1/tcp/60000/p2p/16Uiu2HAmVFXtAfSj4EiR7mL2KvL4EE2wztuQgUSBoj2Jx2KeXFLN",
|
|
10000,
|
|
function onErr(msg) {
|
|
console.log("Error connecting node: " + msg)
|
|
})
|
|
|
|
wakuMod.wakuRelaySubscribe(defaultPubsubTopic,
|
|
function onErr(msg) {
|
|
console.log("Error subscribing: " + msg)
|
|
})
|
|
|
|
app.post('/publish',
|
|
function (req, res) {
|
|
// First read existing users.
|
|
console.log("Publish event received")
|
|
|
|
wakuMod.wakuRelayPublish(defaultPubsubTopic,
|
|
"content_topic_name",
|
|
create_random_string(10),
|
|
10000,
|
|
function onError(msg) {
|
|
console.log("Error: " + msg)
|
|
process.exit(-1)
|
|
});
|
|
|
|
res.end( JSON.stringify("OK publish"))
|
|
})
|
|
|
|
var server = app.listen(8081, function () {
|
|
var host = server.address().address
|
|
var port = server.address().port
|
|
console.log("Example waku listening at http://%s:%s", host, port)
|
|
})
|