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 для событий реального времени. 🚀
Коментарі
Дописати коментар