-
binaryFate
v0.18.2.0 binaries are now online. Big thank you to all contributors
-
greenpillow11[m]
-
greenpillow11[m]
When will multisig wallet loose it’s ‘experimental feature’ status? Are there still many known bugs or is it secure already?
-
selsta
greenpillow11[m]: multisig needs security proofs and an audit
-
jeffro256[m]
By the time that tx_memory_pool::init is called, its Blockchain member m_blockchain is already initialized correct?
-
UkoeHB
-
UkoeHB
ah idk about the initialization order though
-
jeffro256[m]
```std::unique_ptr<Blockchain> core_storage;
-
jeffro256[m]
tx_memory_pool m_mempool(*core_storage);
-
jeffro256[m]
core_storage.reset(new Blockchain(m_mempool));```
-
jeffro256[m]
lol how would that ever not cause a segmentation fault
-
moneromooo
*core_storage yields a reference. It is not dereferenced.
-
jeffro256[m]
Yes but its a reference to nothing, if it's stored and used later, when dereferenced it will seg fault, no? Unless I'm missing something else
-
jeffro256[m]
std::addressof(*std::unique_ptr<int>()) == nullptr
-
moneromooo
Actually, the code you quoted does seem odd, due to the unique_ptr usage...
-
jeffro256[m]
Oh that's because the reference never gets used... tx_memory_pool is never initialized
-
jeffro256[m]
I mean ::init() called, it is c++ initialized
-
jeffro256[m]
UkoeHB I'll review that PR later
-
jeffro256[m]
I remember seeing that a long time ago
-
jeffro256[m]
This stems from a design issue with Blockchain/tx_memory_pool, they shouldn't both need references to each other. The Blockchain class does way too much but oh well
-
jeffro256[m]
I say that... while having an open PR which expands the Blockchain class
-
zerodan[m]
-
jeffro256[m]
Another question: is it possible for a reorg to end up lowering the height of the chain if the difficulty of each block is just that much higher?
-
jeffro256[m]
Like would RestOfTheChain <- Block (diff 100) <- Block(diff 100) ever reorganize to RestOfTheChain <- Block(diff 300)
-
tevador
-
jeffro256[m]
// !!!
-
jeffro256[m]
Haha thanks I'll take a look
-
jeffro256[m]
Oh... You're saying it would only happen if the difficulty adjusted upwards enough from a reorg that the old blocks did not pass difficulty tests?
-
sech1
actually much more than 15 blocks because there's also 60 blocks cutoff elsewhere
-
sech1
so 75 blocks until difficulty actually starts to react to hashrate changes
-
jeffro256[m]
Is that the DIFFICULTY_CUT value you're talking about?
-
tevador
I think it's technically possible to increase the difficulty with just over 15 blocks, but not enough to account for fewer blocks in the chain overall. The cutoff would only apply if the newly added timestamps are outliers.
-
jeffro256[m]
Why wouldn't it end up with fewer blocks? Wouldn't that cause hard forks dependent on when a certain node saw a block?
-
jeffro256[m]
Nvm no it wouldn't
-
jeffro256[m]
So as a very messy, not well super well-defined rule of thumb, is it fair to say that the head of the chain is chosen by height in the short term, and cumulative difficulty in the long term?