monero/src
warptangent d045dfa7ce
Fix transfers (without mixins)
Fix Blockchain::get_tx_outputs_gindexs() to return amount output
indices.

Implement BlockchainLMDB::get_tx_amount_output_indices() and call it
from the function instead of BlockchainLMDB::get_tx_output_indices()

Previously, Blockchain::get_tx_outputs_gindexs() was instead returning
global output indices, which are internal to LMDB databases.

Allows bitmonerod RPC /get_o_indexes.bin to return the amount output
indices as expected.

Allows simplewallet refresh to set correct amount output indices for
incoming transfers. simplewallet can now construct and send valid
transactions (currently only without mixins).

This is a fix that doesn't require altering the structure of the
current LMDB databases.

TODO:

This can be done more efficiently by adding another LMDB database
(key-value table).

It's not used during regular transaction validation by bitmonerod. I
think it's currently used only or mainly by simplewallet for just its
own incoming transactions. So the current behavior is not a primary
bottleneck.

Currently, it's using the "output_amounts" database, walking through a
given amount's list of values, comparing each one to a given global
output index. The iteration number of the match is the desired result:
the amount output index. This is done for each global output index of
the transaction.

A tx's amount output indices can be stored in various other ways
allowing for faster lookup. Since a tx is only written once, there are
no special future write requirements for its list of indices.
2015-01-09 16:34:12 -08:00
..
blockchain_converter blockchain_converter: add --testnet for converting testnet blockchain 2015-01-04 19:39:43 -08:00
common year updated in license 2015-01-02 18:52:46 +02:00
connectivity_tool year updated in license 2015-01-02 18:52:46 +02:00
crypto year updated in license 2015-01-02 18:52:46 +02:00
cryptonote_core Fix transfers (without mixins) 2015-01-09 16:34:12 -08:00
cryptonote_protocol year updated in license 2015-01-02 18:52:46 +02:00
daemon year updated in license 2015-01-02 18:52:46 +02:00
miner year updated in license 2015-01-02 18:52:46 +02:00
mnemonics year updated in license 2015-01-02 18:52:46 +02:00
p2p year updated in license 2015-01-02 18:52:46 +02:00
platform year updated in license 2015-01-02 18:52:46 +02:00
rpc year updated in license 2015-01-02 18:52:46 +02:00
serialization year updated in license 2015-01-02 18:52:46 +02:00
simplewallet year updated in license 2015-01-02 18:52:46 +02:00
wallet year updated in license 2015-01-02 18:52:46 +02:00
CMakeLists.txt very, VERY primitive blockchain converter 2015-01-04 19:38:56 -08:00
cryptonote_config.h year updated in license 2015-01-02 18:52:46 +02:00
version.cmake year updated in license 2015-01-02 18:52:46 +02:00
version.h.in onwards to 0.8.8.7 2014-12-13 13:45:57 +02:00