ZeroMQ

Difficoltà: avanzato

Argomento: tecnologia


DEFINIZIONE

ZeroMQ è un wrapper leggero attorno alle connessioni TCP, alla comunicazione inter-processo e alla memoria condivisa, che fornisce varie semantiche orientate ai messaggi come publish/subscribe, request/reply e push/pull.

Il demone Bitcoin Core può essere configurato per agire come un "border router" fidato, implementando il protocollo bitcoin di connessione relay, prendendo decisioni di consenso, mantenendo il database locale della blockchain, trasmettendo le transazioni generate localmente nella rete e fornendo un'interfaccia RPC interrogabile per interagire su base polled per richiedere dati relativi alla blockchain. Tuttavia, esiste solo un servizio limitato per notificare al software esterno eventi come l'arrivo di nuovi blocchi o transazioni.

La struttura ZeroMQ implementa un'interfaccia di notifica attraverso un insieme di notificatori specifici. Attualmente esistono notificatori che pubblicano blocchi e transazioni. Questa funzione di sola lettura richiede solo la connessione di una corrispondente porta di sottoscrizione ZeroMQ nel software ricevente; non è autenticata né vi è alcun coinvolgimento bidirezionale del protocollo. Pertanto, i sottoscrittori devono convalidare i dati ricevuti, poiché potrebbero essere non aggiornati, incompleti o addirittura non validi.

I socket ZeroMQ sono autocolleganti e autorigeneranti; in altre parole, le connessioni effettuate tra due endpoint saranno automaticamente ripristinate dopo un'interruzione e una delle due estremità può essere liberamente avviata o interrotta in qualsiasi ordine.

Poiché ZeroMQ è orientato ai messaggi, i sottoscrittori ricevono transazioni e blocchi tutti insieme e non hanno bisogno di implementare alcun tipo di buffering o riassemblaggio.


aggiornato il 2023-04-16