Skip to content

Commit 571774f

Browse files
committed
add fork_observer graph property
1 parent e381cc5 commit 571774f

File tree

4 files changed

+29
-14
lines changed

4 files changed

+29
-14
lines changed

src/graphs/default.graphml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,35 +5,41 @@
55
<key attr.name="build_args" attr.type="string" for="node" id="build_args"/>
66
<key attr.name="exporter" attr.type="boolean" for="node" id="exporter"/>
77
<key attr.name="collect_logs" attr.type="boolean" for="node" id="collect_logs"/>
8+
<key attr.name="fork_observer" attr.type="boolean" for="node" id="fork_observer"/>
89
<key attr.name="image" attr.type="string" for="node" id="image"/>
910
<graph edgedefault="directed">
1011
<node id="0">
1112
<data key="version">26.0</data>
1213
<data key="bitcoin_config">-uacomment=w0</data>
1314
<data key="exporter">true</data>
1415
<data key="collect_logs">true</data>
16+
<data key="fork_observer">true</data>
1517
</node>
1618
<node id="1">
1719
<data key="version">26.0</data>
1820
<data key="bitcoin_config">-uacomment=w1</data>
1921
<data key="exporter">true</data>
2022
<data key="collect_logs">true</data>
23+
<data key="fork_observer">true</data>
2124
</node>
2225
<node id="2">
2326
<data key="image">bitcoindevproject/bitcoin:26.0</data>
2427
<data key="bitcoin_config">-uacomment=w2 -debug=mempool</data>
2528
<data key="exporter">true</data>
2629
<data key="collect_logs">true</data>
30+
<data key="fork_observer">true</data>
2731
</node>
2832
<node id="3">
2933
<data key="version">26.0</data>
3034
<data key="bitcoin_config">-uacomment=w3</data>
3135
<data key="exporter">true</data>
36+
<data key="fork_observer">true</data>
3237
</node>
3338
<node id="4">
3439
<data key="version">26.0</data>
3540
<data key="bitcoin_config">-uacomment=w4</data>
3641
<data key="exporter">true</data>
42+
<data key="fork_observer">true</data>
3743
</node>
3844
<node id="5">
3945
<data key="version">26.0</data>
@@ -63,6 +69,7 @@
6369
<node id="11">
6470
<data key="version">26.0</data>
6571
<data key="bitcoin_config">-uacomment=w11</data>
72+
<data key="fork_observer">true</data>
6673
</node>
6774
<!-- connect the nodes in a ring to start -->
6875
<edge id="1" source="0" target="1"></edge>

src/schema/graph_schema.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@
2323
"type": "boolean",
2424
"default": false,
2525
"comment": "Whether to collect Bitcoin Core debug logs with Promtail"},
26+
"fork_observer": {
27+
"type": "boolean",
28+
"default": false,
29+
"comment": "Whether it should be monitored with Fork Observer."},
2630
"build_args": {
2731
"type": "string",
2832
"default": "",

src/warnet/tank.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@
3030
"-rpcallowip=0.0.0.0/0",
3131
"-rpcbind=0.0.0.0",
3232
"-fallbackfee=0.00001000",
33-
"-listen=1",
34-
"-rest"
33+
"-listen=1"
3534
])
3635

3736
class Tank:
@@ -61,6 +60,7 @@ def __init__(self, index: int, warnet):
6160
# index of integers imported from graph file
6261
# indicating which tanks to initially connect to
6362
self.init_peers = []
63+
self.fork_observer = False
6464

6565
def _parse_version(self, version):
6666
if not version:
@@ -96,6 +96,9 @@ def parse_graph_node(self, node):
9696
}
9797
self.lnnode = LNNode(self.warnet, self, self.warnet.container_interface, options)
9898

99+
if self.fork_observer:
100+
self.bitcoin_config += " -rest"
101+
99102
logger.debug(
100103
f"Parsed graph node: {self.index} with attributes: {[f'{key}={value}' for key, value in graph_properties.items()]}"
101104
)

src/warnet/warnet.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -181,18 +181,19 @@ def write_fork_observer_config(self):
181181
shutil.copy(TEMPLATES / FO_CONF_NAME, self.fork_observer_config)
182182
with open(self.fork_observer_config, "a") as f:
183183
for tank in self.tanks:
184-
f.write(
185-
f"""
186-
[[networks.nodes]]
187-
id = {tank.index}
188-
name = "Node {tank.index}"
189-
description = "Warnet tank {tank.index}"
190-
rpc_host = "{tank.ipv4}"
191-
rpc_port = {tank.rpc_port}
192-
rpc_user = "{tank.rpc_user}"
193-
rpc_password = "{tank.rpc_password}"
194-
"""
195-
)
184+
if tank.fork_observer:
185+
f.write(
186+
f"""
187+
[[networks.nodes]]
188+
id = {tank.index}
189+
name = "Node {tank.index}"
190+
description = "Warnet tank {tank.index}"
191+
rpc_host = "{tank.ipv4}"
192+
rpc_port = {tank.rpc_port}
193+
rpc_user = "{tank.rpc_user}"
194+
rpc_password = "{tank.rpc_password}"
195+
"""
196+
)
196197
logger.info(f"Wrote file: {self.fork_observer_config}")
197198

198199
def export(self, subdir):

0 commit comments

Comments
 (0)