FYI the code under discussion is available here on GitHub.
-> is a member access operator in C++, just as . is. They both expect the name of an object's member on the right (e.g. a member function or variable). The difference is that . expects an object on the left, whereas -> expects a pointer to an object which it first dereferences.
So chainActive.Tip()->nChainWork.getdouble() starts with the active chain, gets a pointer to a CBlockIndex object which represents the current tip, dereferences that pointer and gets the total chain work of the tip (which is a 256 bit integer), and converts it to a double.
Next it calculates natural_log(total_chain_work) / natural_log(2), which is the same as calculating log_base_2(total_chain_work). I presume this is simply to make the output smaller, as opposed to having to output the entire (much longer) total_chain_work.
If you'd like to get it back into the total_chain_work format used in older versions, just calculate 2log2_work, e.g. pow(2.0, log2_work).
1Minor correction: the ´log´ function in C and C++ computes the natural logarithm (base e), not base 10. – Nate Eldredge – 2015-05-07T06:30:04.180
@NateEldredge Oops, thanks for the correction. – Christopher Gurnee – 2015-05-07T13:37:26.320
1What's the "total chain work of the tip"? What's the "tip" (I assume the currently known head of the "best" blockchain)? If I see e.g.
log2_work=69.1234what does it tell me? – Flow – 2015-05-08T08:53:57.1474@Flow Yes, the "tip" is the most recent block in the "best" chain. The "total chain work" is the number of SHA-256d hashes that would be required (on average) to recreate the entire chain up to and including this tip (assuming the same the difficulty target of each block in the best chain). The "best" chain is the chain whose total work is greatest. If you see
log2_work=82.749277(which is the currentlog2_workaccording to my node), it means that the total work (approximate total # of hashes calculated) is about 2^82.749277 ≈ 8.12858 * 10^24. – Christopher Gurnee – 2015-05-08T12:33:14.073