user30668: I'm wondering if there is a flag that allows running bitcoind without using an obfuscation key for the chainstate. I haven't been able to find it.

user2306: To add on to eponymous's answer, to disable this, comment out this section of code:
https://github.com/bitcoin/bitcoin/blob/50fae68d416b4b8ec4ca192923dfd5ae9ea42773/src/dbwrapper.cpp#L129-L139
if (!key_exists && obfuscate && IsEmpty()) {
    // Initialize non-degenerate obfuscation if it won't upset
    // existing, non-obfuscated data.
    std::vector<unsigned char> new_key = CreateObfuscateKey();

    // Write `new_key` so we don't obfuscate the key with itself
    Write(OBFUSCATE_KEY_KEY, new_key);
    obfuscate_key = new_key;

    LogPrintf("Wrote new obfuscate key for %s: %s\n", path.string(), HexStr(obfuscate_key));
}

Then recompile, then delete your existing chainstate. (This change only causes it to stop generating an obfuscation key, it does not un-obfuscate the data.)

user24925: There’s no way of easily disabling obfuscation, but you could build a version that sets the keys to zero, resulting in no change when the XOR is used. Generally it has no impact on anything, so it’s left enabled even on non-windows systems where it’s generally not useful. 

30668: <p>I'm wondering if there is a flag that allows running <code>bitcoind</code> without using an <code>obfuscation key</code> for the <code>chainstate</code>. I haven't been able to find it.</p>
 2306: <p>To add on to eponymous's answer, to disable this, comment out this section of code:</p>

<p><a href="https://github.com/bitcoin/bitcoin/blob/50fae68d416b4b8ec4ca192923dfd5ae9ea42773/src/dbwrapper.cpp#L129-L139" rel="nofollow noreferrer">https://github.com/bitcoin/bitcoin/blob/50fae68d416b4b8ec4ca192923dfd5ae9ea42773/src/dbwrapper.cpp#L129-L139</a></p>

<pre><code>if (!key_exists &amp;&amp; obfuscate &amp;&amp; IsEmpty()) {
    // Initialize non-degenerate obfuscation if it won't upset
    // existing, non-obfuscated data.
    std::vector&lt;unsigned char&gt; new_key = CreateObfuscateKey();

    // Write `new_key` so we don't obfuscate the key with itself
    Write(OBFUSCATE_KEY_KEY, new_key);
    obfuscate_key = new_key;

    LogPrintf("Wrote new obfuscate key for %s: %s\n", path.string(), HexStr(obfuscate_key));
}
</code></pre>

<p>Then recompile, then delete your existing chainstate. (This change only causes it to stop generating an obfuscation key, it does not un-obfuscate the data.)</p>
 24925: <p>There’s no way of easily disabling obfuscation, but you could build a version that sets the keys to zero, resulting in no change when the XOR is used. Generally it has no impact on anything, so it’s left enabled even on non-windows systems where it’s generally not useful. </p>
