Protocolo Descentralizado (Nome Confidencial)

Nosso protocolo é uma solução inovadora semelhante a rede Bitcoin, porém utilizando uma abordagem baseada em Transmissão por Relays e Basic BlockChain para rede sociais e outras aplicações. Os dados são armazenados em blocos descentralizados, assinados e criptografados com a chave privada do usuário.

Características Principais

Segurança e Privacidade

Com a criptografia baseada em chaves privadas, os usuários têm total controle sobre seus dados. A descentralização garante resistência à censura e elimina pontos únicos de falha.

Escalabilidade e Flexibilidade

A estrutura modular baseada em JSON permite fácil integração com outras tecnologias e um crescimento escalável sem comprometer a eficiência.

Import Lib onpost.min.js

    <script src="onpostt.min.js"></script>

Exemplo de Código

        onpostt.connect(['ws://localhost:3000', 'ws://localhost:4000']);

        async function post() {
            var privateKey = '21e28dfffa49daf6373527c579ee16dea1afd7c8a2f95d9eb2e6aeb0a8d6d3d2';
            var pubkey = onpostt.generatePublicKey(privateKey);  

            var block = {
                pubkey: pubkey,  // Chave pública do usuário
                created_at: Math.floor(Date.now() / 1000), // Timestamp atual
                mode: "post", // Tipo de evento (1 = Post)
                query: [
                    ["username", "lanpião.dev"],
                    ["site", "google.com"]
                ],
                content: 'Rei do Cangaço', // Conteúdo da postagem
                app: 'mariabonita.com.br' // Nome do aplicativo que está publicando
            };

            var BlockSigned = await onpostt.signBlock(block, privateKey);
            console.log('Block Assinado:', BlockSigned);
            // BlockSigned.content = 'oalr'
            onpostt.sendBlock(BlockSigned, function(response) {
                console.log('Resposta do relay:', response);
            });
        }

        

Send Block

        onpostt.sub({
            mode: 'post', // Filtra por tipo de evento
            query: [["username", "lanpião.dev"], ["site", "mariabonita.com.br"]], // Filtra por múltiplas chaves no campo 'query'
            app: "mariabonita.com.br", // Filtra pelo nome do app
            limit: 10, // Limita o número de eventos
            offset: 0 // Pula os primeiros 5 eventos
        }, function(handleEvent) {
            console.log('Eventos lanpião.dev, mariabonita.com.br, app:mariabonita.com.br', handleEvent);
        });


        onpostt.sub({
            mode: 'post', // Filtra por tipo de evento
            query: [["username", "lanpião.dev2"], ["site", "mariabonita.com.br"]], // Filtra por múltiplas chaves no campo 'query'
            app: "mariabonita.com.br", // Filtra pelo nome do app
            limit: 10, // Limita o número de eventos
            offset: 0 // Pula os primeiros 5 eventos
        }, function(handleEvent) {
            console.log('Eventos jackson.dev2:', handleEvent);
        });

        onpostt.sub({
            pubkey: '03dca175856ff79a1eb5d3b368b6840af29c38c36bf3291d07573ddcdf59110523',
            mode: 'post', // Filtra por tipo de evento
            query: [["username", "lanpião.dev"], ["site", "mariabonita.com.br"]], // Filtra por múltiplas chaves no campo 'query'
            app: "jsaplication.com.br", // Filtra pelo nome do app
            limit: 10, // Limita o número de eventos
            offset: 0 // Pula os primeiros 5 eventos
        }, function(handleEvent) {
            console.log('Eventos personalizados author:', handleEvent);
        });


        onpostt.sub({
            pubkey: '03dca175856ff79a1eb5d3b368b6840af29c38c36bf3291d07573ddcdf59110523',
            mode: 'post', // Filtra por tipo de evento
            id:"91707575e4b2b325a67b03a57a8bf1218c7b7ac7399ac5705af5c21dca8de18a",
            query: [["username", "lanpião.dev"], ["site", "mariabonita.com.br"]], // Filtra por múltiplas chaves no campo 'query'
            app: "mariabonita.com.br", // Filtra pelo nome do app
            limit: 10, // Limita o número de eventos
            offset: 0 // Pula os primeiros 5 eventos
        }, function(handleEvent) {
            console.log('Eventos getFile', handleEvent);
        });


        onpostt.sub({
            pubkey: '03dca175856ff79a1eb5d3b368b6840af29c38c36bf3291d07573ddcdf59110523',
            // id: "4124e36b3a60e50711419be4c5f2febc565f78b2215ce6ac7a510d40572dd905",
            mode: 'post', // Filtra por tipo de evento
            query: [["username", "lanpião.dev"], ["site", "mariabonita.com.br"]], // Filtra por múltiplas chaves no campo 'query'
            app: "mariabonita.com.br", // Filtra pelo nome do app
            limit: 20, // Limita o número de eventos
            offset: 5 // Pula os primeiros 5 eventos
        }, function(handleEvent) {
            console.log('Eventos lite 10, offset 5', handleEvent);
        });
        

Exemplo de Saída

        [
            {
                "pubkey": "03dca175856ff79a1eb5d3b368b6840af29c38c36bf3291d07573ddcdf59110523",
                "created_at": 1740544911,
                "mode": "post",
                "query": "[[\"username\",\"jackson.dev\"],[\"site\",\"jsaplication.com.br\"]]",
                "content": "Mundo Novo",
                "app": "jsaplication.com.br",
                "id": "91707575e4b2b325a67b03a57a8bf1218c7b7ac7399ac5705af5c21dca8de18a",
                "sig": "3045022069e88ba2ca027545a209037bdcd2260f79a97e6618147a63f463b227e68ad14e022100a3e45c7f7d2b5509e2a6a741a7f0aef928c056e1111ae4e48b45ca2be4e28b45"
            }
        ]