Skip to content

Commit

Permalink
EXPERIMENTAL: advertize the extended_queries feature.
Browse files Browse the repository at this point in the history
Signed-off-by: Rusty Russell <[email protected]>
  • Loading branch information
rustyrussell authored and cdecker committed Aug 29, 2019
1 parent d943d8a commit a38131f
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 6 deletions.
5 changes: 4 additions & 1 deletion common/features.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@ static const u32 our_localfeatures[] = {
LOCAL_DATA_LOSS_PROTECT,
LOCAL_INITIAL_ROUTING_SYNC,
LOCAL_UPFRONT_SHUTDOWN_SCRIPT,
LOCAL_GOSSIP_QUERIES
LOCAL_GOSSIP_QUERIES,
#if EXPERIMENTAL_FEATURES
LOCAL_EXTENDED_GOSSIP_QUERIES
#endif
};

static const u32 our_globalfeatures[] = {
Expand Down
2 changes: 2 additions & 0 deletions common/features.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ bool global_feature_negotiated(const u8 *gfeatures, size_t f);
#define LOCAL_INITIAL_ROUTING_SYNC 2
#define LOCAL_UPFRONT_SHUTDOWN_SCRIPT 4
#define LOCAL_GOSSIP_QUERIES 6
/* FIXME: Get bolt reference! */
#define LOCAL_EXTENDED_GOSSIP_QUERIES 10

/* BOLT #9:
*
Expand Down
15 changes: 10 additions & 5 deletions tests/test_connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from fixtures import * # noqa: F401,F403
from flaky import flaky # noqa: F401
from lightning import RpcError
from utils import DEVELOPER, only_one, wait_for, sync_blockheight, VALGRIND, TIMEOUT, SLOW_MACHINE
from utils import DEVELOPER, only_one, wait_for, sync_blockheight, VALGRIND, TIMEOUT, SLOW_MACHINE, EXPERIMENTAL_FEATURES
from bitcoin.core import CMutableTransaction, CMutableTxOut

import binascii
Expand Down Expand Up @@ -1317,6 +1317,8 @@ def test_forget_channel(node_factory):
def test_peerinfo(node_factory, bitcoind):
l1, l2 = node_factory.line_graph(2, fundchannel=False, opts={'may_reconnect': True})
lfeatures = 'aa'
if EXPERIMENTAL_FEATURES:
lfeatures = '08aa'
# Gossiping but no node announcement yet
assert l1.rpc.getpeer(l2.info['id'])['connected']
assert len(l1.rpc.getpeer(l2.info['id'])['channels']) == 0
Expand Down Expand Up @@ -1566,15 +1568,18 @@ def test_dataloss_protection(node_factory, bitcoind):
l2 = node_factory.get_node(may_reconnect=True, log_all_io=True,
feerates=(7500, 7500, 7500), allow_broken_log=True)

if EXPERIMENTAL_FEATURES:
# lflen == 2, features 1, 3, 5, 7 and 11 (0x08aa).
lf = "0002" + "08aa"
else:
# lflen == 1, features 1, 3, 5 and 7 (0xaa).
lf = "0001" + "aa"
l1.rpc.connect(l2.info['id'], 'localhost', l2.port)
# l1 should send out WIRE_INIT (0010)
l1.daemon.wait_for_log(r"\[OUT\] 0010"
# gflen == 0
"0000"
# lflen == 1
"0001"
# Local features 1, 3, 5 and 7 (0xaa).
"aa")
+ lf)

l1.fund_channel(l2, 10**6)
l2.stop()
Expand Down

0 comments on commit a38131f

Please sign in to comment.