ZeroMQ (ZMQ) и Remote Procedure Call (RPC) – это два разных способа взаимодействия с нодой Monero. Они имеют разные цели и принципы работы.  


### 1. RPC (Remote Procedure Call)  

RPC используется для традиционного запроса-ответа (client-server), где клиент отправляет запрос, а сервер отвечает. Это основной способ взаимодействия с Monero Daemon (monerod).  


#### Принцип работы RPC в Monero:

- Клиент отправляет HTTP-запрос к monerod, например, чтобы получить баланс, транзакции или информацию о блоках.

- monerod обрабатывает запрос и отправляет ответ.

- Используется в кошельках (например, monero-wallet-rpc) и скриптах для управления нодой.  


📌 Пример использования RPC:  

- Запрос: get_block_count → возвращает общее число блоков в цепочке.  

- Запрос: get_info → возвращает информацию о ноде (синхронизация, версия, хеш последнего блока).  


### 2. ZMQ (ZeroMQ)  

ZeroMQ — это асинхронный механизм передачи сообщений. В Monero он позволяет ноде отправлять обновления клиентам без необходимости постоянных запросов.  


#### Принцип работы ZMQ в Monero:

- monerod может автоматически отправлять сообщения клиенту при появлении новых блоков или транзакций.  

- Работает по принципу "подписчик-издатель" (Publisher-Subscriber).  

- Клиенты подписываются на события, и Monero нода отправляет обновления в реальном времени.  


📌 Пример использования ZMQ:  

- Подписка на json-full позволяет получать полный JSON-объект нового блока сразу после его добавления в цепь.  

- Можно использовать в ботах, мониторинге и автоматических системах.  


### Ключевые отличия  


| Функция        | RPC | ZMQ |

|---------------|-----|-----|

| Протокол  | HTTP | Binary (ØMQ) |

| Тип связи | Запрос-Ответ | Асинхронный поток |

| Используется для | Управление нодой, запрос баланса, создание транзакций | Отслеживание новых блоков и транзакций в реальном времени |

| Поддержка в Monero | monerod --rpc-bind-port=18081 | monerod --zmq-pub tcp://127.0.0.1:18082 |


### Когда использовать что?  

✅ RPC – если вам нужно управлять нодой и получать данные по запросу. Например, для кошельков и API.  

✅ ZMQ – если вам нужны уведомления о новых блоках или транзакциях в реальном времени (без постоянных запросов).  


В идеале, их можно комбинировать: RPC для управления, а ZMQ для событий реального времени. 🚀

Коментарі

Популярні дописи з цього блогу

🎮 How to easily transcode a video to the desired size | An honest review of simple programs for Windows 10

📊 Моя реферальная статистика на Richamster