Skip to content

Commit 81568f6

Browse files
committed
Initial RFC on issue 148
1 parent 84953fc commit 81568f6

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

src/ln/msgs.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ use std::error::Error;
2525
use std::{cmp, fmt};
2626
use std::io::Read;
2727
use std::result::Result;
28+
use std;
2829

2930
use util::{byte_utils, events};
3031
use util::ser::{Readable, Writeable, Writer};
@@ -563,6 +564,14 @@ pub trait RoutingMessageHandler : Send + Sync {
563564
fn handle_htlc_fail_channel_update(&self, update: &HTLCFailChannelUpdate);
564565
}
565566

567+
///A trait to describe the API required to access the network topology
568+
pub trait NetworkAPI : Send + Sync {
569+
///This should return a vec of all possible channel announcements or an error
570+
fn get_all_channel_announcements(&self)-> Result<Vec<ChannelAnnouncement>, std::fmt::Error>;
571+
///This should return a vec of all possible node announcements or an error
572+
fn get_all_node_announcements(&self)-> Result<Vec<NodeAnnouncement>, std::fmt::Error>;
573+
}
574+
566575
pub(crate) struct OnionRealm0HopData {
567576
pub(crate) short_channel_id: u64,
568577
pub(crate) amt_to_forward: u64,

src/ln/peer_handler.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use secp256k1::key::{SecretKey,PublicKey};
1010

1111
use ln::msgs;
12+
use ln::msgs::NetworkAPI;
1213
use util::ser::{Writeable, Writer, Readable};
1314
use ln::peer_channel_encryptor::{PeerChannelEncryptor,NextNoiseStep};
1415
use util::byte_utils;
@@ -130,6 +131,7 @@ pub struct PeerManager<Descriptor: SocketDescriptor> {
130131
pending_events: Mutex<Vec<Event>>,
131132
our_node_secret: SecretKey,
132133
initial_syncs_sent: AtomicUsize,
134+
network_api : NetworkAPI,
133135
logger: Arc<Logger>,
134136
}
135137

@@ -515,6 +517,7 @@ impl<Descriptor: SocketDescriptor> PeerManager<Descriptor> {
515517
if self.initial_syncs_sent.load(Ordering::Acquire) < INITIAL_SYNCS_TO_SEND {
516518
self.initial_syncs_sent.fetch_add(1, Ordering::AcqRel);
517519
local_features.set_initial_routing_sync();
520+
//TODO get and send announcements.
518521
}
519522
encode_and_send_msg!(msgs::Init {
520523
global_features: msgs::GlobalFeatures::new(),

src/ln/router.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use bitcoin::blockdata::opcodes;
1313

1414
use chain::chaininterface::{ChainError, ChainWatchInterface};
1515
use ln::channelmanager;
16-
use ln::msgs::{ErrorAction,HandleError,RoutingMessageHandler,NetAddress,GlobalFeatures};
16+
use ln::msgs::{ErrorAction,HandleError,RoutingMessageHandler,NetAddress,GlobalFeatures, NetworkAPI};
1717
use ln::msgs;
1818
use util::ser::Writeable;
1919
use util::logger::Logger;
@@ -428,6 +428,15 @@ impl RoutingMessageHandler for Router {
428428
}
429429
}
430430

431+
impl NetworkAPI for Router {
432+
fn get_all_channel_announcements(&self)-> Result<Vec<msgs::NodeAnnouncement>, std::fmt::Error>{
433+
unimplemented!();
434+
}
435+
fn get_all_node_announcements(&self)-> Result<Vec<msgs::NodeAnnouncement>, std::fmt::Error>{
436+
unimplemented!();
437+
}
438+
}
439+
431440
#[derive(Eq, PartialEq)]
432441
struct RouteGraphNode {
433442
pubkey: PublicKey,

0 commit comments

Comments
 (0)