| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add an include_sensitive parameter to tx_memory_pool::get_pool_for_rpc
(and its core passthrough), mirroring the include_sensitive_data
parameter on the HTTP analog get_transactions_and_spent_keys_info.
When false, receive_time and last_relayed_time are zeroed using the
same masking already applied on the HTTP path.
The ZMQ handler in daemon_handler.cpp passes !m_restricted, so
--restricted-zmq-rpc callers now receive the same privacy-filtered view
as restricted HTTP callers instead of the unfiltered timing metadata
they previously got. Stem-phase txs continue to be excluded regardless
(relay_category::broadcasted filter unchanged).
Refs #10529.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Changes complexity from M*N to (2*N+M)*log2(M). The FCMP++ stressnet recently hit mempool sizes of ~55k txs.
If the requesting node's mempool is populated, this results in an average of (55000*55000)/2
(about 1.5 billion) comparisons for the responding node. Under this commit, this would be reduced to
(55000+55000)*log2(55000) comparisons (about 2.6 million), a 99.83% reduction.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Without this commit:
1) read height from DB
2) add block to chain in separate thread
3) read chain for block id's and request them from peer
4) ERR in handle_response_chain_entry, peer's first block is the
one that was added to the chain, which has block idx=height from
step 1.
This commit reads the chain for height and highest block id's
in one go while holding the m_blockchain_lock to avoid the race.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[release-v0.18]
- `/getblocks.bin` respects the `RESTRICTED_TX_COUNT` (=100) when
returning pool txs via a restricted RPC daemon.
- A restricted RPC daemon includes a max of `RESTRICTED_TX_COUNT` txs
in the `added_pool_txs` field, and returns any remaining pool hashes
in the `remaining_added_pool_txids` field. The client then requests
the remaining txs via `/gettransactions` in chunks.
- `/gettransactions` no longer does expensive no-ops for ALL pool txs
if the client requests a subset of pool txs. Instead it searches for
the txs the client explicitly requests.
- Reset `m_pool_info_query_time` when a user:
(1) rescans the chain (so the wallet re-requests the whole pool)
(2) changes the daemon their wallets points to (a new daemon would
have a different view of the pool)
- `/getblocks.bin` respects the `req.prune` field when returning
pool txs.
- Pool extension fields in response to `/getblocks.bin` are optional
with default 0'd values.
|
| |
|
|
| |
[release-v0.18]
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Implements view tags as proposed by @UkoeHB in MRL issue
https://github.com/monero-project/research-lab/issues/73
At tx construction, the sender adds a 1-byte view tag to each
output. The view tag is derived from the sender-receiver
shared secret. When scanning for outputs, the receiver can
check the view tag for a match, in order to reduce scanning
time. When the view tag does not match, the wallet avoids the
more expensive EC operations when deriving the output public
key using the shared secret.
|
| |\
| |
| |
| | |
0d6fce8 Compil. time: cryptonote_core minus portable_storage header (mj-xmr)
|
| | | |
|
| |/ |
|
| |\
| |
| |
| | |
dfee15e RPC and ZeroMQ APIs to support p2pool (SChernykh)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Adds the following:
- "get_miner_data" to RPC API
- "json-miner-data" to ZeroMQ subscriber contexts
Both provide the necessary data to create a custom block template. They are used by p2pool.
Data provided:
- major fork version
- current height
- previous block id
- RandomX seed hash
- network difficulty
- median block weight
- coins mined by the network so far
- mineable mempool transactions
|
| |\ \
| |/
|/|
| | |
4ced092 daemon: allow proxy configuration (anon, selsta, tobtoht)
|
| | |
| |
| |
| |
| | |
Co-authored-by: selsta <selsta@sent.at>
Co-authored-by: tobtoht <thotbot@protonmail.com>
|
| |/
|
|
| |
It only needs to parse the tx headers, not the full tx data
|
| | |
|
| | |
|
| |\
| |
| |
| | |
d73cb95 Fix timeout checks for forwarded and Dandelion++ stem txes (Lee Clagett)
|
| | | |
|
| |\ \
| | |
| | |
| | | |
a9cd5d9 cryptonote_core: dandelion - use local height or median height if syncing (xiphon)
|
| | |/ |
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| |\
| |
| |
| | |
7bd66b01b daemon: guard against rare 'difficulty drift' bug with checkpoints and recalculation (stoffu)
|
| | |
| |
| |
| |
| |
| | |
recalculation
On startup, it checks against the difficulty checkpoints, and if any mismatch is found, recalculates all the blocks with wrong difficulties. Additionally, once a week it recalculates difficulties of blocks after the last difficulty checkpoint.
|
| |\ \
| | |
| | |
| | | |
5ef0607da Update copyright year to 2020 (SomaticFanatic)
|
| | |/
| |
| |
| | |
Update copyright year to 2020
|
| |/
|
|
| |
It's time based and we don't have forks every 6 months anymore
|
| |\
| |
| |
| | |
a813c46 cryptonote_core: skip dns checkpoints on startup if not enforced (xiphon)
|
| | | |
|
| |/ |
|
| |\
| |
| |
| | |
054b4c7 protocol: request txpool contents when synced (moneromooo-monero)
|
| | |
| |
| |
| |
| |
| |
| | |
A newly synced Alice sends a (typically quite small) list of
txids in the local tpxool to a random peer Bob, who then uses
the existing tx relay system to send Alice any tx in his txpool
which is not in the list Alice sent
|
| |/ |
|
| |\
| |
| |
| | |
987c3139 print_coinbase_tx_sum now supports 128 bits sums (moneromooo-monero)
|
| | |
| |
| |
| | |
The tail emission will bring the total above 64 bits
|
| |\ \
| | |
| | |
| | | |
5985c5af rpc: add bad-blocks to flush_cache RPC (moneromooo-monero)
|
| | |/
| |
| |
| | |
Flushes m_invalid_blocks in Blockchain.
|
| | | |
|
| |/ |
|
| |
|
|
|
|
|
| |
This allows flushing internal caches (for now, the bad tx cache,
which will allow debugging a stuck monerod after it has failed to
verify a transaction in a block, since it would otherwise not try
again, making subsequent log changes pointless)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the peer (whether pruned or not itself) supports sending pruned blocks
to syncing nodes, the pruned version will be sent along with the hash
of the pruned data and the block weight. The original tx hashes can be
reconstructed from the pruned txes and theur prunable data hash. Those
hashes and the block weights are hashes and checked against the set of
precompiled hashes, ensuring the data we received is the original data.
It is currently not possible to use this system when not using the set
of precompiled hashes, since block weights can not otherwise be checked
for validity.
This is off by default for now, and is enabled by --sync-pruned-blocks
|
| | |
|
| |
|
|
|
| |
Related to emission, reorgs, getting tx data back, output
distribution and histogram
|