diff --git a/lightningd/chaintopology.c b/lightningd/chaintopology.c index 4eaa93179..633405681 100644 --- a/lightningd/chaintopology.c +++ b/lightningd/chaintopology.c @@ -609,7 +609,7 @@ static void add_tip(struct chain_topology *topo, struct block *b) /* Attach to tip; b is now the tip. */ assert(b->height == topo->tip->height + 1); b->prev = topo->tip; - topo->tip->next = b; + topo->tip->next = b; /* FIXME this doesn't seem to be used anywhere */ topo->tip = b; wallet_block_add(topo->ld->wallet, b); @@ -653,8 +653,13 @@ static void remove_tip(struct chain_topology *topo) struct bitcoin_txid *txs; size_t i, n; + log_debug(topo->log, "Removing stale block %u: %s", + topo->tip->height, + type_to_string(tmpctx, struct bitcoin_blkid, &b->blkid)); + /* Move tip back one. */ topo->tip = b->prev; + if (!topo->tip) fatal("Initial block %u (%s) reorganized out!", b->height, @@ -663,7 +668,7 @@ static void remove_tip(struct chain_topology *topo) txs = wallet_transactions_by_height(b, topo->ld->wallet, b->height); n = tal_count(txs); - /* Notify that txs are kicked out. */ + /* Notify that txs are kicked out (their height will be set NULL in db) */ for (i = 0; i < n; i++) txwatch_fire(topo, &txs[i], 0);