Provides tx notification privacy.
More...
#include <levin_notify.h>
Provides tx notification privacy.
◆ notify() [1/4]
| cryptonote::levin::notify::notify |
( |
| ) |
|
|
inlinenoexcept |
Construct an instance that cannot notify.
◆ notify() [2/4]
| cryptonote::levin::notify::notify |
( |
boost::asio::io_service & |
service, |
|
|
std::shared_ptr< connections > |
p2p, |
|
|
epee::byte_slice |
noise, |
|
|
epee::net_utils::zone |
zone, |
|
|
bool |
pad_txs, |
|
|
i_core_events & |
core |
|
) |
| |
|
explicit |
Construct an instance with available notification zones.
◆ notify() [3/4]
| cryptonote::levin::notify::notify |
( |
const notify & |
| ) |
|
|
delete |
◆ notify() [4/4]
| cryptonote::levin::notify::notify |
( |
notify && |
| ) |
|
|
default |
◆ ~notify()
| cryptonote::levin::notify::~notify |
( |
| ) |
|
|
noexcept |
◆ get_status()
- Returns
- Status information for zone selection.
◆ new_out_connection()
| void cryptonote::levin::notify::new_out_connection |
( |
| ) |
|
Probe for new outbound connection - skips if not needed.
◆ operator=() [1/2]
| notify& cryptonote::levin::notify::operator= |
( |
const notify & |
| ) |
|
|
delete |
◆ operator=() [2/2]
◆ run_epoch()
| void cryptonote::levin::notify::run_epoch |
( |
| ) |
|
Run the logic for the next epoch immediately. Only use in testing.
◆ run_fluff()
| void cryptonote::levin::notify::run_fluff |
( |
| ) |
|
Run the logic for flushing all Dandelion++ fluff queued txs. Only use in testing.
◆ run_stems()
| void cryptonote::levin::notify::run_stems |
( |
| ) |
|
Run the logic for the next stem timeout imemdiately. Only use in testing.
◆ send_txs()
| bool cryptonote::levin::notify::send_txs |
( |
std::vector< blobdata > |
txs, |
|
|
const boost::uuids::uuid & |
source, |
|
|
relay_method |
tx_relay |
|
) |
| |
Send txs using cryptonote_protocol_defs.h payload format wrapped in a levin header. The message will be sent in a "discreet" manner if enabled - if !noise.empty() then the command/payload will be queued to send at the next available noise interval. Otherwise, a Dandelion++ fluff algorithm will be used.
- Note
- Eventually Dandelion++ stem sending will be used here when enabled.
- Parameters
-
| txs | The transactions that need to be serialized and relayed. |
| source | The source of the notification. is_nil() indicates this node is the source. Dandelion++ will use this to map a source to a particular stem. |
- Returns
- True iff the notification is queued for sending.
◆ core_
◆ zone_
| std::shared_ptr<detail::zone> cryptonote::levin::notify::zone_ |
|
private |
The documentation for this class was generated from the following files: