Skip to content

Commit 0789a60

Browse files
committed
feat(devnet): start DMQ network in the devnet
1 parent 0df5853 commit 0789a60

File tree

9 files changed

+150
-2
lines changed

9 files changed

+150
-2
lines changed

mithril-test-lab/mithril-devnet/devnet-log.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,15 @@ if [ "${NODES}" = "cardano" ] || [ "${NODES}" = "*" ]; then
3939

4040
LINES=${LINES} ./log-cardano.sh
4141
echo
42+
fi
43+
if [ "${NODES}" = "*" ]; then
44+
echo "====================================================================="
45+
echo "=== DMQ Network"
46+
echo "====================================================================="
47+
echo
48+
fi
49+
if [ "${NODES}" = "dmq" ] || [ "${NODES}" = "*" ]; then
50+
51+
LINES=${LINES} ./log-dmq.sh
52+
echo
4253
fi

mithril-test-lab/mithril-devnet/devnet-mkfiles.sh

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,18 @@ SCRIPT_DIRECTORY=$(dirname $0)
1313
# Init script
1414
. $SCRIPT_DIRECTORY/mkfiles/mkfiles-init.sh
1515

16-
# Generate the topology
17-
. ${SCRIPT_DIRECTORY}/mkfiles/mkfiles-topology.sh
16+
# Generate the Cardano nodes topology
17+
. ${SCRIPT_DIRECTORY}/mkfiles/mkfiles-topology-cardano.sh
1818

1919
# Generate Cardano devnet artifacts
2020
. $SCRIPT_DIRECTORY/mkfiles/mkfiles-cardano.sh
2121

22+
# Generate the DMQ nodes topology
23+
. ${SCRIPT_DIRECTORY}/mkfiles/mkfiles-topology-dmq.sh
24+
25+
# Generate Cardano DMQ artifacts
26+
. $SCRIPT_DIRECTORY/mkfiles/mkfiles-dmq.sh
27+
2228
# Generate the start scripts
2329
. $SCRIPT_DIRECTORY/mkfiles/mkfiles-start.sh
2430

mithril-test-lab/mithril-devnet/devnet-run.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,16 @@ echo
3131
# Change directory
3232
pushd ${ARTIFACTS_DIR} > /dev/null
3333

34+
# Start devnet DMQ nodes
35+
if [ "${NODES}" = "dmq" ] || [ "${NODES}" = "*" ]; then
36+
echo "====================================================================="
37+
echo " Start DMQ nodes"
38+
echo "====================================================================="
39+
echo
40+
./start-dmq.sh
41+
echo
42+
fi
43+
3444
# Start devnet Cardano nodes
3545
if [ "${NODES}" = "cardano" ] || [ "${NODES}" = "*" ]; then
3646
echo "====================================================================="

mithril-test-lab/mithril-devnet/mkfiles/mkfiles-cardano.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ esac
3333
CARDANO_BIN_PATH=./bin
3434
CARDANO_CLI=${CARDANO_BIN_PATH}/cardano-cli
3535
CARDANO_NODE=${CARDANO_BIN_PATH}/cardano-node
36+
DMQ_NODE=${CARDANO_BIN_PATH}/dmq-node
3637
NUM_SPO_NODES=$NUM_POOL_NODES
3738
INIT_SUPPLY=12000000
3839
TOTAL_SUPPLY=2000000000000
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Temporary script to copy DMQ node binary
2+
cp $DMQ_NODE_BINARY/dmq-node ./bin/
3+
4+
for NODE in ${ALL_NODES}; do
5+
cat >> ${NODE}/config.dmq.json <<EOF
6+
{
7+
"LocalMsgSubmissionTracer": true,
8+
"LocalMsgNotificationTracer": true
9+
}
10+
EOF
11+
done

mithril-test-lab/mithril-devnet/mkfiles/mkfiles-query.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,14 @@ find . -type f -print | grep "node.log" | sort -n | xargs -i sh -c 'echo '\${SE
6767
6868
EOF
6969
chmod u+x log-cardano.sh
70+
71+
cat >> log-dmq.sh <<EOF
72+
#!/usr/bin/env bash
73+
74+
SEPARATOR="---------------------------------------------------------------------"
75+
76+
# DMQ nodes logs
77+
find . -type f -print | grep "dmq.node.log" | sort -n | xargs -i sh -c 'echo '\${SEPARATOR}' && echo tail -n '\${LINES}' {} && echo '\${SEPARATOR}' && tail -n '\${LINES}' {} && echo '\${SEPARATOR}' && echo'
78+
79+
EOF
80+
chmod u+x log-dmq.sh

mithril-test-lab/mithril-devnet/mkfiles/mkfiles-start.sh

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,41 @@ EOF
110110

111111
chmod u+x start-cardano.sh
112112

113+
cat >> start-dmq.sh <<EOF
114+
#!/usr/bin/env bash
115+
116+
echo ">> Start DMQ network"
117+
killall dmq-node > /dev/null 2>&1
118+
119+
# Stop when there's an error, activate it after the killall since it will report an error if it doesn't kill anything
120+
set -e
121+
122+
#$DMQ_NODE --version
123+
124+
EOF
125+
126+
for NODE in ${ALL_NODES}; do
127+
cat >> ${NODE}/start-dmq.sh <<EOF
128+
#!/usr/bin/env bash
129+
130+
$DMQ_NODE \\
131+
--configuration-file ${NODE}/config.dmq.json \\
132+
--topology-file ${NODE}/topology.dmq.json \\
133+
--local-socket ${NODE}/ipc/dmq.node.sock \\
134+
--host-addr $(cat ${NODE}/host) \\
135+
--port $(cat ${NODE}/port.dmq) \\
136+
> ${NODE}/dmq.node.log
137+
EOF
138+
chmod u+x ${NODE}/start-dmq.sh
139+
cat >> start-dmq.sh <<EOF
140+
echo ">> Starting DMQ node '${NODE}'"
141+
./${NODE}/start-dmq.sh &
142+
143+
EOF
144+
done
145+
146+
chmod u+x start-dmq.sh
147+
113148
cat >> start-mithril.sh <<EOF
114149
#!/usr/bin/env bash
115150
@@ -191,6 +226,9 @@ cat >> stop.sh <<EOF
191226
echo ">> Stop Cardano network"
192227
killall cardano-node
193228
229+
echo ">> Stop DMQ network"
230+
killall dmq-node
231+
194232
echo ">> Stop Mithril network"
195233
if [ -z "\${MITHRIL_IMAGE_ID}" ]; then
196234
export MITHRIL_AGGREGATOR_IMAGE="mithril/mithril-aggregator"
File renamed without changes.
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
2+
NODE_PORT_START=4000
3+
4+
# Create network topology
5+
FULL_NODES=()
6+
FULL_NODES_N=()
7+
for (( i=1; i<=${NUM_FULL_NODES}; i++ ))
8+
do
9+
FULL_NODES=("${FULL_NODES[@]}" "node-full${i}")
10+
FULL_NODES_N=("${FULL_NODES_N[@]}" "${i}")
11+
done
12+
FULL_NODES=${FULL_NODES[@]}
13+
FULL_NODES_N=${FULL_NODES_N[@]}
14+
15+
POOL_NODES=()
16+
POOL_NODES_N=()
17+
for (( i=1; i<=${NUM_POOL_NODES}; i++ ))
18+
do
19+
POOL_NODES=("${POOL_NODES[@]}" "node-pool${i}")
20+
POOL_NODES_N=("${POOL_NODES_N[@]}" "${i}")
21+
done
22+
POOL_NODES=${POOL_NODES[@]}
23+
POOL_NODES_N=${POOL_NODES_N[@]}
24+
25+
ALL_NODES="${FULL_NODES} ${POOL_NODES}"
26+
27+
# create the topology files
28+
NODE_ADDR=$LISTENING_ADDR
29+
NODE_PORT=NODE_PORT_START
30+
TOPOLOGY='
31+
{
32+
"bootstrapPeers": [],
33+
"localRoots": [
34+
{
35+
"accessPoints": [],
36+
"advertise": false,
37+
"trustable": false,
38+
"valency": 1
39+
}
40+
],
41+
"peerSnapshotFile": null,
42+
"publicRoots": [
43+
{
44+
"accessPoints": [],
45+
"advertise": false
46+
}
47+
]
48+
}'
49+
for NODE in ${ALL_NODES}; do
50+
NODE_PORT=$(( ${NODE_PORT} + 1))
51+
echo ${NODE_PORT} > ${NODE}/port.dmq
52+
TOPOLOGY=$(echo ${TOPOLOGY} | jq '.localRoots[0].accessPoints[.localRoots[0].accessPoints | length] |= . + {"address": "'${NODE_ADDR}'","port": '${NODE_PORT}', "valency": 1}')
53+
done
54+
echo $TOPOLOGY | jq . > topology.dmq.json
55+
56+
NODE_IX=0
57+
for NODE in ${ALL_NODES}; do
58+
cat topology.dmq.json | jq '.localRoots[0].accessPoints |= del(.['${NODE_IX}'])' > ${NODE}/topology.dmq.json
59+
NODE_IX=$(( ${NODE_IX} + 1))
60+
done

0 commit comments

Comments
 (0)