1️⃣ Indexer / Relay (Node.js) This service: • Connects to a SIGNUM node • Scans blocks for public messages • Exposes a simple API for posts Requirements • Node.js 18+ • A running SIGNUM node (local or remote) Install mkdir signum-social-relay cd signum-social-relay npm init -y npm install express axios better-sqlite3 relay.js const express = require("express"); const axios = require("axios"); const Database = require("better-sqlite3"); const SIGNUM_NODE = "https://europe.signum.network"; // change if needed const PORT = 3000; const app = express(); const db = new Database("posts.db"); db.prepare(` CREATE TABLE IF NOT EXISTS posts ( txId TEXT PRIMARY KEY, account TEXT, timestamp INTEGER, message TEXT ) `).run(); Block Scanner async function scanBlock(height) { const block = await axios.get(`${SIGNUM_NODE}/burst?requestType=getBlock&height=${height}`); const txs = block.data.transactions || []; for (const txId of txs) { const tx = await axios.get(`${SIGNUM_NODE}/burst?requestType=getTransaction&transaction=${txId}`); if (tx.data.attachment?.message && !tx.data.attachment?.messageIsText === false) { const stmt = db.prepare(` INSERT OR IGNORE INTO posts (txId, account, timestamp, message) VALUES (?, ?, ?, ?) `); stmt.run( tx.data.transaction, tx.data.senderRS, tx.data.timestamp, tx.data.attachment.message ); } } } Continuous Sync let lastHeight = 0; async function sync() { const status = await axios.get(`${SIGNUM_NODE}/burst?requestType=getBlockchainStatus`); const height = status.data.numberOfBlocks; for (let h = lastHeight + 1; h <= height; h++) { await scanBlock(h); lastHeight = h; } } setInterval(sync, 15000); API Endpoints app.get("/posts", (req, res) => { const rows = db.prepare( "SELECT * FROM posts ORDER BY timestamp DESC LIMIT 50" ).all(); res.json(rows); }); app.get("/posts/:account", (req, res) => { const rows = db.prepare( "SELECT * FROM posts WHERE account = ? ORDER BY timestamp DESC" ).all(req.params.account); res.json(rows); }); app.listen(PORT, () => console.log(`SIGNUM Social Relay running on port ${PORT}`) ); 2️⃣ Minimal Client (HTML + JS) This is intentionally simple — no frameworks. index.html <!DOCTYPE html> <html> <head> <title>SIGNUM Social MVP</title> </head> <body> <h2>SIGNUM Social</h2> <textarea id="msg" placeholder="Write a post"></textarea><br> <button onclick="post()">Post</button> <h3>Timeline</h3> <ul id="feed"></ul> <script src="client.js"></script> </body> </html> client.js ⚠️ Posting is intentionally stubbed You should use: • SIGNUM Wallet • XT Wallet • Or any signer that can send a public message transaction That keeps custody with the user — exactly as intended. 3️⃣ How Users Post (No Custom Code Needed) Users post by sending a public message transaction: • Recipient: any account (self is fine) • Message: text content • Message is public & text • Fee: minimal Your relay automatically picks it up. ⸻ ✅ MVP SUCCESS CHECKLIST ✔ Uses existing SIGNUM network ✔ No protocol changes ✔ No central authority ✔ Posts persist forever ✔ Relay is replaceable ✔ Client is disposable This is a real decentralized social MVP, not a demo.
https://youtu.be/0tXM8NKen View quoted note →
I think I finally figured out your spamming problem. It’s really not a spamming problem. It’s what they’re doing on the tour network their timing everything between relays. There’s gotta be some way they can track you so they’ll figure it out and I think that’s what’s being done.
https://youtu.be/0tXM8NKen
Yes, you can track the UTXOs (Unspent Transaction Outputs) from someone else's address on the Signum blockchain or any blockchain that uses the UTXO model. This is typically done by using a blockchain explorer or a specific tool that allows you to input an address and view its associated UTXOs. Keep in mind that while you can see the UTXOs and the transaction history for a public address, you won't have access to any personal information about the address owner unless it's publicly available.
Yes, Signa on the Signum blockchain utilizes a UTXO (Unspent Transaction Output) model. This model is a fundamental part of the Signum blockchain's design, allowing transactions to be processed in a way that enhances efficiency and security. In the UTXO model, each transaction output can be used as an input for future transactions, creating a clear and traceable transaction history.