Skip to content

Commit d4f87a1

Browse files
committed
Add config files for integration test
1 parent d6ee230 commit d4f87a1

33 files changed

+16381
-0
lines changed

integration-test/docker/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
tmp_configs/
2+
.env

integration-test/docker/README.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
## Overview
2+
3+
Runtime environments for integration tests.
4+
5+
`docker-compose.yml` kicks off two components, [cardano-node](https://github.com/input-output-hk/cardano-node) and
6+
[ogmios](https://github.com/CardanoSolutions/ogmios), which are necessary to run deterministic integration tests.
7+
8+
Good things about a customizable and deterministic ledger:
9+
10+
* Deterministic UTxO set and deterministic actors (isolation).
11+
* Deterministic fees.
12+
* Flexible configurations.
13+
* Reproducible.
14+
15+
To achieve a relatively good degree of determinism, we use a local cardano node that runs as a single
16+
BFT node in the network. The node will produce all blocks and the environment/ledger is isolated.
17+
18+
## Instructions
19+
20+
### Pre-requisites
21+
22+
* Install [Docker](https://www.docker.com/)
23+
24+
### Steps
25+
26+
Bootstrap config files for a single BFT node:
27+
28+
`./bootstrap.sh local-alonzo`
29+
30+
31+
Compose docker services (node + ogmios):
32+
33+
`docker-compose up -d`
34+
35+
36+
Clean up docker containers and volumes when done with testing:
37+
38+
`docker-compose down`
39+

integration-test/docker/bootstrap.sh

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/bin/sh
2+
3+
set -e
4+
5+
if [ "$#" -ne 1 ] || [ "$1" = "-h" ]; then
6+
echo "Bootstrap network configs and environment variables."
7+
echo "Usage: $0 [network] (e.g. local-alonzo, testnet, mainnet)"
8+
exit 0
9+
fi
10+
11+
if [ -d "./tmp_configs" ]; then
12+
echo "Removing tmp_configs"
13+
rm -rf ./tmp_configs
14+
fi
15+
16+
echo "Copying configs to tmp_configs"
17+
cp -r configs tmp_configs
18+
19+
NETWORK=$1
20+
21+
echo "Bootstrapping network: $NETWORK"
22+
23+
if [ "$NETWORK" = "local-alonzo" ]; then
24+
echo "Updating byron startTime to present in local mode, alonzo era"
25+
jq -M ".startTime = ""$(date +%s)" configs/"$NETWORK"/"$NETWORK"-byron-genesis.json > \
26+
tmp_configs/"$NETWORK"/"$NETWORK"-byron-genesis.json
27+
fi
28+
29+
echo "NETWORK=$NETWORK" >.env
30+
NETWORK_MAGIC=$(jq .networkMagic tmp_configs/"$NETWORK"/"$NETWORK"-shelley-genesis.json)
31+
echo "Found network magic: $NETWORK_MAGIC"
32+
echo "NETWORK_MAGIC=$NETWORK_MAGIC" >>.env
33+
echo "Done"
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{ "omega": 0
2+
, "issuerPk":
3+
"ckPV1Ypq8uRkxwoDj93p7cCm4G+uB9R8SGGOKyc6KyIR8NDVVwu1FS3AwSoUjra02uiF5AlAUXUvVqZvnT8nCw=="
4+
, "delegatePk":
5+
"MYL9xuLMepgsQxRtqOu57nJw16pMWel79j0APRV1NSqH3ZUeBu+p7XaNoVCzw7yemMb4vwLiRDcMnnqHXztFVA=="
6+
, "cert":
7+
"643985a3022fedf3d9aaee8ab18d35e0cdc894beb5edb502ca47c37cce678741dd502fba0c2b8ee38513e0a75f6ee2dcc0f05d5b3c1d7ce72cc1c22a8a910909"
8+
}
Binary file not shown.
Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
{
2+
"collateralPercentage": 1,
3+
"maxBlockExUnits": {
4+
"exUnitsMem": 500000000000,
5+
"exUnitsSteps": 500000000000
6+
},
7+
"maxCollateralInputs": 5,
8+
"maxValueSize": 4000,
9+
"costModels": {
10+
"PlutusV1": {
11+
"cekConstCost-exBudgetMemory": 100,
12+
"unBData-cpu-arguments": 150000,
13+
"divideInteger-memory-arguments-minimum": 1,
14+
"nullList-cpu-arguments": 150000,
15+
"cekDelayCost-exBudgetMemory": 100,
16+
"appendByteString-cpu-arguments-slope": 621,
17+
"sha2_256-memory-arguments": 4,
18+
"multiplyInteger-cpu-arguments-intercept": 61516,
19+
"iData-cpu-arguments": 150000,
20+
"equalsString-cpu-arguments-intercept": 150000,
21+
"trace-cpu-arguments": 150000,
22+
"lessThanEqualsByteString-cpu-arguments-intercept": 103599,
23+
"encodeUtf8-cpu-arguments-slope": 1000,
24+
"equalsString-cpu-arguments-constant": 1000,
25+
"blake2b-cpu-arguments-slope": 29175,
26+
"consByteString-memory-arguments-intercept": 0,
27+
"headList-cpu-arguments": 150000,
28+
"listData-cpu-arguments": 150000,
29+
"divideInteger-cpu-arguments-model-arguments-slope": 118,
30+
"divideInteger-memory-arguments-slope": 1,
31+
"bData-cpu-arguments": 150000,
32+
"chooseData-memory-arguments": 32,
33+
"cekBuiltinCost-exBudgetCPU": 29773,
34+
"mkNilData-memory-arguments": 32,
35+
"equalsInteger-cpu-arguments-intercept": 136542,
36+
"lengthOfByteString-cpu-arguments": 150000,
37+
"subtractInteger-cpu-arguments-slope": 0,
38+
"unIData-cpu-arguments": 150000,
39+
"sliceByteString-cpu-arguments-slope": 5000,
40+
"unMapData-cpu-arguments": 150000,
41+
"modInteger-cpu-arguments-model-arguments-slope": 118,
42+
"lessThanInteger-cpu-arguments-intercept": 179690,
43+
"appendString-memory-arguments-intercept": 0,
44+
"mkCons-cpu-arguments": 150000,
45+
"sha3_256-cpu-arguments-slope": 82363,
46+
"ifThenElse-cpu-arguments": 1,
47+
"mkNilPairData-cpu-arguments": 150000,
48+
"constrData-memory-arguments": 32,
49+
"lessThanEqualsInteger-cpu-arguments-intercept": 145276,
50+
"addInteger-memory-arguments-slope": 1,
51+
"chooseList-memory-arguments": 32,
52+
"equalsData-memory-arguments": 1,
53+
"decodeUtf8-cpu-arguments-intercept": 150000,
54+
"bData-memory-arguments": 32,
55+
"lessThanByteString-cpu-arguments-slope": 248,
56+
"listData-memory-arguments": 32,
57+
"consByteString-cpu-arguments-intercept": 150000,
58+
"headList-memory-arguments": 32,
59+
"subtractInteger-memory-arguments-slope": 1,
60+
"appendByteString-memory-arguments-intercept": 0,
61+
"unIData-memory-arguments": 32,
62+
"remainderInteger-memory-arguments-minimum": 1,
63+
"lengthOfByteString-memory-arguments": 4,
64+
"encodeUtf8-memory-arguments-intercept": 0,
65+
"cekStartupCost-exBudgetCPU": 100,
66+
"remainderInteger-memory-arguments-slope": 1,
67+
"multiplyInteger-memory-arguments-intercept": 0,
68+
"cekForceCost-exBudgetCPU": 29773,
69+
"unListData-memory-arguments": 32,
70+
"sha2_256-cpu-arguments-slope": 29175,
71+
"indexByteString-memory-arguments": 1,
72+
"equalsInteger-memory-arguments": 1,
73+
"remainderInteger-cpu-arguments-model-arguments-slope": 118,
74+
"cekVarCost-exBudgetCPU": 29773,
75+
"lessThanEqualsInteger-cpu-arguments-slope": 1366,
76+
"addInteger-memory-arguments-intercept": 1,
77+
"sndPair-cpu-arguments": 150000,
78+
"lessThanInteger-memory-arguments": 1,
79+
"cekLamCost-exBudgetCPU": 29773,
80+
"chooseUnit-cpu-arguments": 150000,
81+
"decodeUtf8-cpu-arguments-slope": 1000,
82+
"fstPair-cpu-arguments": 150000,
83+
"quotientInteger-memory-arguments-minimum": 1,
84+
"lessThanEqualsInteger-memory-arguments": 1,
85+
"chooseUnit-memory-arguments": 32,
86+
"fstPair-memory-arguments": 32,
87+
"quotientInteger-cpu-arguments-constant": 148000,
88+
"mapData-cpu-arguments": 150000,
89+
"unConstrData-cpu-arguments": 150000,
90+
"mkPairData-cpu-arguments": 150000,
91+
"sndPair-memory-arguments": 32,
92+
"decodeUtf8-memory-arguments-slope": 8,
93+
"equalsData-cpu-arguments-intercept": 150000,
94+
"addInteger-cpu-arguments-intercept": 197209,
95+
"modInteger-memory-arguments-intercept": 0,
96+
"cekStartupCost-exBudgetMemory": 100,
97+
"divideInteger-cpu-arguments-model-arguments-intercept": 425507,
98+
"divideInteger-memory-arguments-intercept": 0,
99+
"cekVarCost-exBudgetMemory": 100,
100+
"consByteString-memory-arguments-slope": 1,
101+
"cekForceCost-exBudgetMemory": 100,
102+
"unListData-cpu-arguments": 150000,
103+
"subtractInteger-cpu-arguments-intercept": 197209,
104+
"indexByteString-cpu-arguments": 150000,
105+
"equalsInteger-cpu-arguments-slope": 1326,
106+
"lessThanByteString-memory-arguments": 1,
107+
"blake2b-cpu-arguments-intercept": 2477736,
108+
"encodeUtf8-cpu-arguments-intercept": 150000,
109+
"multiplyInteger-cpu-arguments-slope": 11218,
110+
"tailList-cpu-arguments": 150000,
111+
"appendByteString-cpu-arguments-intercept": 396231,
112+
"equalsString-cpu-arguments-slope": 1000,
113+
"lessThanEqualsByteString-cpu-arguments-slope": 248,
114+
"remainderInteger-cpu-arguments-constant": 148000,
115+
"chooseList-cpu-arguments": 150000,
116+
"equalsByteString-memory-arguments": 1,
117+
"constrData-cpu-arguments": 150000,
118+
"cekApplyCost-exBudgetCPU": 29773,
119+
"equalsData-cpu-arguments-slope": 10000,
120+
"decodeUtf8-memory-arguments-intercept": 0,
121+
"modInteger-memory-arguments-slope": 1,
122+
"addInteger-cpu-arguments-slope": 0,
123+
"appendString-cpu-arguments-intercept": 150000,
124+
"quotientInteger-cpu-arguments-model-arguments-slope": 118,
125+
"unMapData-memory-arguments": 32,
126+
"cekApplyCost-exBudgetMemory": 100,
127+
"quotientInteger-memory-arguments-slope": 1,
128+
"mkNilPairData-memory-arguments": 32,
129+
"ifThenElse-memory-arguments": 1,
130+
"equalsByteString-cpu-arguments-slope": 247,
131+
"sliceByteString-memory-arguments-slope": 1,
132+
"sha3_256-memory-arguments": 4,
133+
"mkCons-memory-arguments": 32,
134+
"verifySignature-cpu-arguments-intercept": 3345831,
135+
"cekBuiltinCost-exBudgetMemory": 100,
136+
"remainderInteger-memory-arguments-intercept": 0,
137+
"lessThanEqualsByteString-memory-arguments": 1,
138+
"mkNilData-cpu-arguments": 150000,
139+
"equalsString-memory-arguments": 1,
140+
"chooseData-cpu-arguments": 150000,
141+
"remainderInteger-cpu-arguments-model-arguments-intercept": 425507,
142+
"tailList-memory-arguments": 32,
143+
"sha2_256-cpu-arguments-intercept": 2477736,
144+
"multiplyInteger-memory-arguments-slope": 1,
145+
"iData-memory-arguments": 32,
146+
"divideInteger-cpu-arguments-constant": 148000,
147+
"cekDelayCost-exBudgetCPU": 29773,
148+
"encodeUtf8-memory-arguments-slope": 8,
149+
"subtractInteger-memory-arguments-intercept": 1,
150+
"nullList-memory-arguments": 32,
151+
"lessThanByteString-cpu-arguments-intercept": 103599,
152+
"appendByteString-memory-arguments-slope": 1,
153+
"blake2b-memory-arguments": 4,
154+
"unBData-memory-arguments": 32,
155+
"cekConstCost-exBudgetCPU": 29773,
156+
"consByteString-cpu-arguments-slope": 1000,
157+
"trace-memory-arguments": 32,
158+
"quotientInteger-memory-arguments-intercept": 0,
159+
"mapData-memory-arguments": 32,
160+
"verifySignature-cpu-arguments-slope": 1,
161+
"quotientInteger-cpu-arguments-model-arguments-intercept": 425507,
162+
"modInteger-cpu-arguments-constant": 148000,
163+
"appendString-cpu-arguments-slope": 1000,
164+
"unConstrData-memory-arguments": 32,
165+
"mkPairData-memory-arguments": 32,
166+
"equalsByteString-cpu-arguments-constant": 150000,
167+
"equalsByteString-cpu-arguments-intercept": 112536,
168+
"sliceByteString-memory-arguments-intercept": 0,
169+
"lessThanInteger-cpu-arguments-slope": 497,
170+
"verifySignature-memory-arguments": 1,
171+
"cekLamCost-exBudgetMemory": 100,
172+
"sliceByteString-cpu-arguments-intercept": 150000,
173+
"modInteger-cpu-arguments-model-arguments-intercept": 425507,
174+
"modInteger-memory-arguments-minimum": 1,
175+
"appendString-memory-arguments-slope": 1,
176+
"sha3_256-cpu-arguments-intercept": 0
177+
}
178+
},
179+
"executionPrices": {
180+
"prMem": 0.1,
181+
"prSteps": 0.1
182+
},
183+
"lovelacePerUTxOWord": 1,
184+
"maxTxExUnits": {
185+
"exUnitsMem": 500000000000,
186+
"exUnitsSteps": 500000000000
187+
}
188+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{ "bootStakeholders":
2+
{ "b733bf8070781d30a0c8d5ca66392188f78c6604b631629cd055f402": 1 }
3+
, "heavyDelegation":
4+
{ "b733bf8070781d30a0c8d5ca66392188f78c6604b631629cd055f402":
5+
{ "omega": 0
6+
, "issuerPk":
7+
"ckPV1Ypq8uRkxwoDj93p7cCm4G+uB9R8SGGOKyc6KyIR8NDVVwu1FS3AwSoUjra02uiF5AlAUXUvVqZvnT8nCw=="
8+
, "delegatePk":
9+
"MYL9xuLMepgsQxRtqOu57nJw16pMWel79j0APRV1NSqH3ZUeBu+p7XaNoVCzw7yemMb4vwLiRDcMnnqHXztFVA=="
10+
, "cert":
11+
"643985a3022fedf3d9aaee8ab18d35e0cdc894beb5edb502ca47c37cce678741dd502fba0c2b8ee38513e0a75f6ee2dcc0f05d5b3c1d7ce72cc1c22a8a910909"
12+
} }
13+
, "startTime": 1640212228
14+
, "nonAvvmBalances":
15+
{ "2657WMsDfac6ef4bngGRU7FmksmW8QRfAifshdj4XyDxPeVT4DbPeoiUgzRdKjYYF":
16+
"10020000000" }
17+
, "blockVersionData":
18+
{ "scriptVersion": 0
19+
, "slotDuration": "1000"
20+
, "maxBlockSize": "2000000"
21+
, "maxHeaderSize": "2000000"
22+
, "maxTxSize": "4096"
23+
, "maxProposalSize": "700"
24+
, "mpcThd": "20000000000000"
25+
, "heavyDelThd": "300000000000"
26+
, "updateVoteThd": "1000000000000"
27+
, "updateProposalThd": "100000000000000"
28+
, "updateImplicit": "10000"
29+
, "softforkRule":
30+
{ "initThd": "900000000000000"
31+
, "minThd": "600000000000000"
32+
, "thdDecrement": "50000000000000"
33+
}
34+
, "txFeePolicy":
35+
{ "summand": "155381000000000" , "multiplier": "43946000000" }
36+
, "unlockStakeEpoch": "18446744073709551615"
37+
}
38+
, "protocolConsts": { "k": 10 , "protocolMagic": 42 }
39+
, "avvmDistr": {}
40+
}

0 commit comments

Comments
 (0)