|
Monero
|
Functions | |
| uint64_t | get_relay_delay (time_t now, time_t received) |
| uint64_t | template_accept_threshold (uint64_t amount) |
| uint64_t | get_transaction_weight_limit (uint8_t version) |
| void | set_if_less (std::atomic< time_t > &next_check, const time_t candidate) noexcept |
Variables | |
| constexpr const std::chrono::seconds | dandelionpp_embargo_average {CRYPTONOTE_DANDELIONPP_EMBARGO_AVERAGE} |
| time_t const | MIN_RELAY_TIME = (60 * 5) |
| time_t const | MAX_RELAY_TIME = (60 * 60 * 4) |
| float const | ACCEPT_THRESHOLD = 1.0f |
| constexpr const std::chrono::minutes | max_relayable_check {2} |
| Max DB check interval for relayable txes. More... | |
| constexpr const std::chrono::seconds | forward_delay_average {CRYPTONOTE_FORWARD_DELAY_AVERAGE} |
| uint64_t cryptonote::anonymous_namespace{tx_pool.cpp}::get_relay_delay | ( | time_t | now, |
| time_t | received | ||
| ) |
| uint64_t cryptonote::anonymous_namespace{tx_pool.cpp}::get_transaction_weight_limit | ( | uint8_t | version | ) |
|
noexcept |
| uint64_t cryptonote::anonymous_namespace{tx_pool.cpp}::template_accept_threshold | ( | uint64_t | amount | ) |
| float const cryptonote::anonymous_namespace{tx_pool.cpp}::ACCEPT_THRESHOLD = 1.0f |
|
constexpr |
The Dandelion++ has formula for calculating the average embargo timeout: (-k*(k-1)*hop)/(2*log(1-ep)) where k is the number of hops before this node and ep is the probability that one of the k hops hits their embargo timer, and hop is the average time taken between hops. So decreasing ep will make it more probable that "this" node is the first to expire the embargo timer. Increasing k will increase the number of nodes that will be "hidden" as a prior recipient of the tx.
As example, k=5 and ep=0.1 means "this" embargo timer has a 90% probability of being the first to expire amongst 5 nodes that saw the tx before "this" one. These values are independent to the fluff probability, but setting a low k with a low p (fluff probability) is not ideal since a blackhole is more likely to reveal earlier nodes in the chain.
This value was calculated with k=5, ep=0.10, and hop = 175 ms. A testrun from a recent Intel laptop took ~80ms to receive+parse+proces+send transaction. At least 50ms will be added to the latency if crossing an ocean. So 175ms is the fudge factor for a single hop with 39s being the embargo timer.
|
constexpr |
| time_t const cryptonote::anonymous_namespace{tx_pool.cpp}::MAX_RELAY_TIME = (60 * 60 * 4) |
|
constexpr |
Max DB check interval for relayable txes.
| time_t const cryptonote::anonymous_namespace{tx_pool.cpp}::MIN_RELAY_TIME = (60 * 5) |