mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-01-19 05:44:12 +01:00
topo: Tell chain_topology about the min and max block height
Signed-off-by: Christian Decker <decker.christian@gmail.com>
This commit is contained in:
parent
5c9c682cf7
commit
bdb87aa994
@ -745,14 +745,14 @@ struct chain_topology *new_topology(struct lightningd *ld, struct log *log)
|
|||||||
|
|
||||||
void setup_topology(struct chain_topology *topo,
|
void setup_topology(struct chain_topology *topo,
|
||||||
struct timers *timers,
|
struct timers *timers,
|
||||||
u32 first_blocknum)
|
u32 min_blockheight, u32 max_blockheight)
|
||||||
{
|
{
|
||||||
memset(&topo->feerate, 0, sizeof(topo->feerate));
|
memset(&topo->feerate, 0, sizeof(topo->feerate));
|
||||||
topo->timers = timers;
|
topo->timers = timers;
|
||||||
|
|
||||||
/* FIXME(cdecker) Actually load this from DB */
|
/* FIXME(cdecker) Actually load this from DB */
|
||||||
topo->min_blockheight = first_blocknum;
|
topo->min_blockheight = min_blockheight;
|
||||||
topo->max_blockheight = first_blocknum;
|
topo->max_blockheight = max_blockheight;
|
||||||
|
|
||||||
/* Make sure bitcoind is started, and ready */
|
/* Make sure bitcoind is started, and ready */
|
||||||
wait_for_bitcoind(topo->bitcoind);
|
wait_for_bitcoind(topo->bitcoind);
|
||||||
|
@ -150,9 +150,8 @@ void broadcast_tx(struct chain_topology *topo,
|
|||||||
const char *err));
|
const char *err));
|
||||||
|
|
||||||
struct chain_topology *new_topology(struct lightningd *ld, struct log *log);
|
struct chain_topology *new_topology(struct lightningd *ld, struct log *log);
|
||||||
void setup_topology(struct chain_topology *topology,
|
void setup_topology(struct chain_topology *topology, struct timers *timers,
|
||||||
struct timers *timers,
|
u32 min_blockheight, u32 max_blockheight);
|
||||||
u32 first_channel_block);
|
|
||||||
|
|
||||||
void begin_topology(struct chain_topology *topo);
|
void begin_topology(struct chain_topology *topo);
|
||||||
|
|
||||||
|
@ -306,7 +306,7 @@ void notify_new_block(struct lightningd *ld,
|
|||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
struct lightningd *ld;
|
struct lightningd *ld;
|
||||||
u32 blockheight, first_block;
|
u32 min_blockheight, max_blockheight;
|
||||||
|
|
||||||
setup_locale();
|
setup_locale();
|
||||||
daemon_setup(argv[0], log_backtrace_print, log_backtrace_exit);
|
daemon_setup(argv[0], log_backtrace_print, log_backtrace_exit);
|
||||||
@ -388,24 +388,22 @@ int main(int argc, char *argv[])
|
|||||||
/* Get the blockheight we are currently at, UINT32_MAX is used to signal
|
/* Get the blockheight we are currently at, UINT32_MAX is used to signal
|
||||||
* an unitialized wallet and that we should start off of bitcoind's
|
* an unitialized wallet and that we should start off of bitcoind's
|
||||||
* current height */
|
* current height */
|
||||||
wallet_blocks_heights(ld->wallet, UINT32_MAX, &first_block, &blockheight);
|
wallet_blocks_heights(ld->wallet, UINT32_MAX, &min_blockheight, &max_blockheight);
|
||||||
|
|
||||||
/* If we were asked to rescan from an absolute height (--rescan < 0)
|
/* If we were asked to rescan from an absolute height (--rescan < 0)
|
||||||
* then just go there. Otherwise take compute the diff to our current
|
* then just go there. Otherwise compute the diff to our current height,
|
||||||
* height, lowerbounded by 0. */
|
* lowerbounded by 0. */
|
||||||
if (ld->config.rescan < 0)
|
if (ld->config.rescan < 0)
|
||||||
blockheight = -ld->config.rescan;
|
max_blockheight = -ld->config.rescan;
|
||||||
else if (blockheight < (u32)ld->config.rescan)
|
else if (max_blockheight < (u32)ld->config.rescan)
|
||||||
blockheight = 0;
|
max_blockheight = 0;
|
||||||
else if (blockheight != UINT32_MAX)
|
else if (max_blockheight != UINT32_MAX)
|
||||||
blockheight -= ld->config.rescan;
|
max_blockheight -= ld->config.rescan;
|
||||||
|
|
||||||
db_commit_transaction(ld->wallet->db);
|
db_commit_transaction(ld->wallet->db);
|
||||||
|
|
||||||
/* Initialize block topology (does its own transaction) */
|
/* Initialize block topology (does its own transaction) */
|
||||||
setup_topology(ld->topology,
|
setup_topology(ld->topology, &ld->timers, min_blockheight, max_blockheight);
|
||||||
&ld->timers,
|
|
||||||
blockheight);
|
|
||||||
|
|
||||||
/* Create RPC socket (if any) */
|
/* Create RPC socket (if any) */
|
||||||
setup_jsonrpc(ld, ld->rpc_filename);
|
setup_jsonrpc(ld, ld->rpc_filename);
|
||||||
|
@ -101,9 +101,8 @@ void setup_color_and_alias(struct lightningd *ld UNNEEDED)
|
|||||||
void setup_jsonrpc(struct lightningd *ld UNNEEDED, const char *rpc_filename UNNEEDED)
|
void setup_jsonrpc(struct lightningd *ld UNNEEDED, const char *rpc_filename UNNEEDED)
|
||||||
{ fprintf(stderr, "setup_jsonrpc called!\n"); abort(); }
|
{ fprintf(stderr, "setup_jsonrpc called!\n"); abort(); }
|
||||||
/* Generated stub for setup_topology */
|
/* Generated stub for setup_topology */
|
||||||
void setup_topology(struct chain_topology *topology UNNEEDED,
|
void setup_topology(struct chain_topology *topology UNNEEDED, struct timers *timers UNNEEDED,
|
||||||
struct timers *timers UNNEEDED,
|
u32 min_blockheight UNNEEDED, u32 max_blockheight UNNEEDED)
|
||||||
u32 first_channel_block UNNEEDED)
|
|
||||||
{ fprintf(stderr, "setup_topology called!\n"); abort(); }
|
{ fprintf(stderr, "setup_topology called!\n"); abort(); }
|
||||||
/* Generated stub for subd_shutdown */
|
/* Generated stub for subd_shutdown */
|
||||||
void subd_shutdown(struct subd *subd UNNEEDED, unsigned int seconds UNNEEDED)
|
void subd_shutdown(struct subd *subd UNNEEDED, unsigned int seconds UNNEEDED)
|
||||||
|
Loading…
Reference in New Issue
Block a user