remove redundant old_coin_pub from link data
This commit is contained in:
parent
ca66a1d1af
commit
b40afe196c
@ -341,10 +341,12 @@ COMMENT ON TABLE wire_out
|
|||||||
CREATE TABLE IF NOT EXISTS aggregation_tracking
|
CREATE TABLE IF NOT EXISTS aggregation_tracking
|
||||||
(aggregation_serial_id BIGSERIAL UNIQUE
|
(aggregation_serial_id BIGSERIAL UNIQUE
|
||||||
,deposit_serial_id INT8 PRIMARY KEY REFERENCES deposits (deposit_serial_id) ON DELETE CASCADE
|
,deposit_serial_id INT8 PRIMARY KEY REFERENCES deposits (deposit_serial_id) ON DELETE CASCADE
|
||||||
,wtid_raw BYTEA CONSTRAINT wire_out_ref REFERENCES wire_out(wtid_raw) ON DELETE CASCADE DEFERRABLE
|
,wtid_raw BYTEA CONSTRAINT wire_out_ref REFERENCES wire_out(wtid_raw) ON DELETE CASCADE DEFERRABLE
|
||||||
);
|
);
|
||||||
COMMENT ON TABLE aggregation_tracking
|
COMMENT ON TABLE aggregation_tracking
|
||||||
IS 'mapping from wire transfer identifiers (WTID) to deposits (and back)';
|
IS 'mapping from wire transfer identifiers (WTID) to deposits (and back)';
|
||||||
|
COMMENT ON COLUMN aggregation_tracking.wtid_raw
|
||||||
|
IS 'We first create entries in the aggregation_tracking table and then finally the wire_out entry once we know the total amount. Hence the constraint must be deferrable and we cannot use a wireout_uuid here, because we do not have it when these rows are created. Changing the logic to first INSERT a dummy row into wire_out and then UPDATEing that row in the same transaction would theoretically reduce per-deposit storage costs by 5 percent (24/~460 bytes).';
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS aggregation_tracking_wtid_index
|
CREATE INDEX IF NOT EXISTS aggregation_tracking_wtid_index
|
||||||
ON aggregation_tracking
|
ON aggregation_tracking
|
||||||
|
@ -303,19 +303,56 @@ struct TALER_EXCHANGEDB_TableData
|
|||||||
|
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
struct TALER_MerchantPublicKeyP merchant_pub; // FIXME
|
|
||||||
struct TALER_MerchantSignatureP merchant_sig;
|
struct TALER_MerchantSignatureP merchant_sig;
|
||||||
struct GNUNET_HashCode h_contract_terms; // FIXME
|
|
||||||
uint64_t rtransaction_id;
|
uint64_t rtransaction_id;
|
||||||
struct TALER_Amount amount_with_fee;
|
struct TALER_Amount amount_with_fee;
|
||||||
uint64_t known_coin_id;
|
uint64_t deposit_serial_id;
|
||||||
} refunds;
|
} refunds;
|
||||||
|
|
||||||
struct {} wire_out;
|
struct
|
||||||
struct {} aggregation_tracking;
|
{
|
||||||
struct {} wire_fee;
|
struct GNUNET_TIME_Absolute execution_date;
|
||||||
struct {} recoup;
|
struct TALER_WireTransferIdentifierRawP wtid_raw;
|
||||||
struct {} recoup_refresh;
|
json_t *wire_target;
|
||||||
|
char *exchange_account_section;
|
||||||
|
struct TALER_Amount amount;
|
||||||
|
} wire_out;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
uint64_t deposit_serial_id;
|
||||||
|
struct TALER_WireTransferIdentifierRawP wtid_raw;
|
||||||
|
} aggregation_tracking;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
char *wire_method;
|
||||||
|
struct GNUNET_TIME_Absolute start_date;
|
||||||
|
struct GNUNET_TIME_Absolute end_date;
|
||||||
|
struct TALER_Amount wire_fee;
|
||||||
|
struct TALER_Amount closing_fee;
|
||||||
|
struct TALER_MasterSignatureP master_sig;
|
||||||
|
} wire_fee;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct TALER_CoinSpendSignatureP coin_sig;
|
||||||
|
struct TALER_DenominationBlindingKeyP coin_blind;
|
||||||
|
struct TALER_Amount amount;
|
||||||
|
struct GNUNET_TIME_Absolute timestamp;
|
||||||
|
uint64_t known_coin_id;
|
||||||
|
uint64_t reserve_out_serial_id;
|
||||||
|
} recoup;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct TALER_CoinSpendSignatureP coin_sig;
|
||||||
|
struct TALER_DenominationBlindingKeyP coin_blind;
|
||||||
|
struct TALER_Amount amount;
|
||||||
|
struct GNUNET_TIME_Absolute timestamp;
|
||||||
|
uint64_t known_coin_id;
|
||||||
|
uint64_t rrc_serial;
|
||||||
|
} recoup_refresh;
|
||||||
|
|
||||||
} details;
|
} details;
|
||||||
|
|
||||||
@ -1638,7 +1675,7 @@ typedef int
|
|||||||
*
|
*
|
||||||
* @param cls closure
|
* @param cls closure
|
||||||
* @param rowid unique serial ID for the refresh session in our DB
|
* @param rowid unique serial ID for the refresh session in our DB
|
||||||
* @param reserve_pub public key of the reserve (also the WTID)
|
* @param reserve_pub public key of the reserve (also the wire subject)
|
||||||
* @param credit amount that was received
|
* @param credit amount that was received
|
||||||
* @param sender_account_details information about the sender's bank account, in payto://-format
|
* @param sender_account_details information about the sender's bank account, in payto://-format
|
||||||
* @param wire_reference unique identifier for the wire transfer
|
* @param wire_reference unique identifier for the wire transfer
|
||||||
|
@ -377,11 +377,6 @@ struct TALER_LinkDataPS
|
|||||||
*/
|
*/
|
||||||
struct GNUNET_HashCode h_denom_pub;
|
struct GNUNET_HashCode h_denom_pub;
|
||||||
|
|
||||||
/**
|
|
||||||
* Public key of the old coin being refreshed.
|
|
||||||
*/
|
|
||||||
struct TALER_CoinSpendPublicKeyP old_coin_pub;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transfer public key (for which the private key was not revealed)
|
* Transfer public key (for which the private key was not revealed)
|
||||||
*/
|
*/
|
||||||
|
@ -41,8 +41,6 @@ TALER_wallet_link_sign (const struct GNUNET_HashCode *h_denom_pub,
|
|||||||
GNUNET_CRYPTO_hash (coin_ev,
|
GNUNET_CRYPTO_hash (coin_ev,
|
||||||
coin_ev_size,
|
coin_ev_size,
|
||||||
&ldp.coin_envelope_hash);
|
&ldp.coin_envelope_hash);
|
||||||
GNUNET_CRYPTO_eddsa_key_get_public (&old_coin_priv->eddsa_priv,
|
|
||||||
&ldp.old_coin_pub.eddsa_pub);
|
|
||||||
GNUNET_CRYPTO_eddsa_sign (&old_coin_priv->eddsa_priv,
|
GNUNET_CRYPTO_eddsa_sign (&old_coin_priv->eddsa_priv,
|
||||||
&ldp,
|
&ldp,
|
||||||
&coin_sig->eddsa_signature);
|
&coin_sig->eddsa_signature);
|
||||||
@ -62,7 +60,6 @@ TALER_wallet_link_verify (
|
|||||||
.purpose.size = htonl (sizeof (ldp)),
|
.purpose.size = htonl (sizeof (ldp)),
|
||||||
.purpose.purpose = htonl (TALER_SIGNATURE_WALLET_COIN_LINK),
|
.purpose.purpose = htonl (TALER_SIGNATURE_WALLET_COIN_LINK),
|
||||||
.h_denom_pub = *h_denom_pub,
|
.h_denom_pub = *h_denom_pub,
|
||||||
.old_coin_pub = *old_coin_pub,
|
|
||||||
.transfer_pub = *transfer_pub
|
.transfer_pub = *transfer_pub
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user