<p>Because it doesn't re-broadcast any non confirmed transaction, it re-broadcast only your own non-confirmed transactions. So you will be the only node on the entire network who is doing the re-broadcast every exact 30 minutes and based on this anyone can get what IP is originating that transaction.</p>

<p>A few lines below your code example you find this:  </p>

<pre><code>BOOST_FOREACH(PAIRTYPE(const uint256, CWalletTx)&amp; item, mapWallet)
{
...
}
</code></pre>

<p>This will loop on the transactions of your own wallet (mapWallet), not all the network transactions.</p>

CC BY-SA 3.0
2014-01-02T07:41:55.113Z
2014-01-02T19:49:40.617Z
2014-01-02T19:49:40.617Z
kR105
<p>I see in the sourcecode this two lines:</p>

<pre><code>// Do this infrequently and randomly to avoid giving away
// that these are our transactions.
</code></pre>

<p>in the method ResendWalletTransactions. Why is this necessary? If a client send out his transactions every 30 minutes and the receiver put these transactions in his own queue and send this transaction list every 30 minutes to all his neigbors I don't see why someone should recover the own transactions of the client.</p>

<p>The full beginning of the method is something like:</p>

<pre><code>void CWallet::ResendWalletTransactions()
{
    // Do this infrequently and randomly to avoid giving away
    // that these are our transactions.
    static int64 nNextTime;
    if (GetTime() &lt; nNextTime)
        return;
    bool fFirst = (nNextTime == 0);
    nNextTime = GetTime() + GetRand(30 * 60);
    if (fFirst)
        return;
</code></pre>

CC BY-SA 3.0
2013-09-06T19:12:13.163Z
> I don't see why someone should recover the own transactions of the client.

You are possibly misreading something as there's no "recovering" of transactions.  This has to do with the timing of when the re-broadcast of a transaction that hasn't confirmed occurs.  Please clarify what your concern is.
Stephen Gornick
<transactions><relay><broadcast>
Why are Transactions sending out randomly?
Balderman
# Why are Transactions sending out randomly?

(Asked by: username_0 on 2013-09-06)

I see in the sourcecode this two lines:

```
// Do this infrequently and randomly to avoid giving away
// that these are our transactions.

```

in the method ResendWalletTransactions. Why is this necessary? If a client send out his transactions every 30 minutes and the receiver put these transactions in his own queue and send this transaction list every 30 minutes to all his neigbors I don't see why someone should recover the own transactions of the client.

The full beginning of the method is something like:

```
void CWallet::ResendWalletTransactions()
{
    // Do this infrequently and randomly to avoid giving away
    // that these are our transactions.
    static int64 nNextTime;
    if (GetTime() < nNextTime)
        return;
    bool fFirst = (nNextTime == 0);
    nNextTime = GetTime() + GetRand(30 * 60);
    if (fFirst)
        return;

```

**Tags:** transactions, relay, broadcast

> **Comments:**
> **username_1**: > I don't see why someone should recover the own transactions of the client.  You are possibly misreading something as there's no "recovering" of transactions.  This has to do with the timing of when the re-broadcast of a transaction that hasn't confirmed occurs.  Please clarify what your concern is.  

---

## 1 answers

### Answer by username_2 on 2014-01-02. Score: 2

Because it doesn't re-broadcast any non confirmed transaction, it re-broadcast only your own non-confirmed transactions. So you will be the only node on the entire network who is doing the re-broadcast every exact 30 minutes and based on this anyone can get what IP is originating that transaction.

A few lines below your code example you find this:

```
BOOST_FOREACH(PAIRTYPE(const uint256, CWalletTx)& item, mapWallet)
{
...
}

```

This will loop on the transactions of your own wallet (mapWallet), not all the network transactions.


---

