Estoy construyendo una plataforma de mensajería P2P usando Node.JS, IPFS (el módulo de cadena de bloques descentralizado web3) e ipfs-http-client.
Estoy tratando de identificar e imprimir solo el mensaje más reciente enviado a un tema de IPFS por un usuario con un peerId como se especifica en la variable peerId .
El siguiente código parece imprimir todos los mensajes recibidos en el tema.
¿Cuál es la mejor manera de identificar el mensaje más reciente enviado al tema por un compañero específico?
Estoy tratando de usar seqno o date para identificar el mensaje más reciente, pero tengo problemas para entender cómo hacerlo.
¿Hay una mejor manera de hacer esto?
¡Gracias por adelantado!
const IPFS = require('ipfs') const IpfsHttpClient = require('ipfs-http-client').create; const uint8ArrayToString = require("uint8arrays/to-string").toString; let ipfs let topic=`` let peerId=`` async function nodeConnect (node_url) { ipfs = IpfsHttpClient(node_url) } ... ... async function subscribe (topic) { await nodeConnect('/ip4/.../tcp/5001') await ipfs.pubsub.subscribe(topic, msg => { const from = msg.from const seqno = uint8ArrayToString(msg.seqno, 'base16') if (from === peerId) return console.log(`Ignoring message ${seqno} from self`) console.log(`Message ${seqno} from ${from}:`) try { console.log(JSON.stringify(uint8ArrayToString(msg.data), null, 2)) } catch (_) { console.log(uint8ArrayToString(msg.data, 'base16')) } }) } ... ...