-
Notifications
You must be signed in to change notification settings - Fork 2
feat: testnet w/ cardano-node 10.4.1 and dingo 0.12.0 #20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat: testnet w/ cardano-node 10.4.1 and dingo 0.12.0 #20
Conversation
Signed-off-by: Chris Gianelloni <wolf31o2@blinklabs.io>
🎉 Nice contribution. |
It does.
It also supports Prometheus metrics matching some of the Haskell node metrics on port 12798 at
|
Thanks, this is cool to see! I needed to patch the Makefile to get this running on antithesis: patchdiff --git a/compose/Makefile b/compose/Makefile
index 98d8630..c1bb45f 100644
--- a/compose/Makefile
+++ b/compose/Makefile
@@ -48,7 +48,7 @@ help:
@echo " make anti password='password1234' session_id=<some session_id> input_hash=<some hash> vtime=<decimal seconds>"
@echo
-build: TESTNET build-image build-config build-sidecar build-tracer build-tracer-sidecar ## Build cardano-node, config, sidecar, and tracer images
+build: TESTNET build-image build-config build-sidecar build-tracer build-tracer-sidecar build-dingo ## Build cardano-node, config, sidecar, and tracer images
build-image: TESTNET ## Build cardano-node container image
ln -snf testnets/${testnet}/testnet.yaml .testnet.yaml ; cd testnets/${testnet} ; docker compose build
@@ -65,7 +65,10 @@ build-tracer: TESTNET ## Build tracer container image
build-tracer-sidecar: TESTNET ## Build tracer container image
docker build -f tracer-sidecar/Dockerfile -t ${registry}${testnet}_tracer-sidecar:latest tracer-sidecar/
-push: TESTNET push-image push-config push-tracer push-sidecar push-tracer-sidecar ## Push cardano-node, config and sidecar container image
+build-dingo: TESTNET ## Build dingo container image
+ docker build -f Dockerfile.dingo -t ${registry}${testnet}_dingo:latest .
+
+push: TESTNET push-image push-config push-tracer push-sidecar push-tracer-sidecar push-dingo ## Push cardano-node, config and sidecar container image
push-image: TESTNET ## Push cardano-node container image
docker push ${registry}${testnet}:latest
@@ -82,6 +85,9 @@ push-tracer: TESTNET ## Push tracer container image
push-tracer-sidecar: TESTNET ## Push tracer container image
docker push ${registry}${testnet}_tracer-sidecar:latest
+push-dingo: TESTNET ## Push dingo container image
+ docker push ${registry}${testnet}_dingo:latest
+
up: TESTNET ## Start Run local Docker Compose
cd testnets/${testnet} ; docker compose up --detach
@@ -100,7 +106,7 @@ anti: TESTNET ## Run Antithesis job
--arg description '${description}' \
--arg duration '${duration}' \
--arg config_image '${testnet}_config:latest' \
- --arg images '${testnet}:latest;${testnet}_sidecar:latest;${testnet}_tracer:latest;${testnet}_tracer-sidecar:latest' \
+ --arg images '${testnet}:latest;${testnet}_sidecar:latest;${testnet}_tracer:latest;${testnet}_tracer-sidecar:latest;${testnet}_dingo:latest' \
--arg recipients '${recipients}' \
'{params: {"antithesis.description": $$description,"custom.duration": $$duration,"antithesis.config_image": $$config_image,"antithesis.images": $$images,"antithesis.report.recipients": $$recipients}}')" but with this it did run! And pass. But can't share the report as it currently requires SSO. Ultimately we probably don't want to require all testnets to use the same list of images like with the above patch, but I think this is fine for now. Could you include the changes in the patch? |
Signed-off-by: Chris Gianelloni <wolf31o2@blinklabs.io>
Signed-off-by: Chris Gianelloni <wolf31o2@blinklabs.io>
Patch applied and I merged main so it's not far behind. |
Thanks, will have a final look and merge next week when I get back, am off this week |
There is a problem with the use of the testnet-generation-tool. The cardano-node instances and the dingo instance will end up using different keys and genesis files. |
Dingo doesn't even load everything from the files. Currently, it uses them for protocol parameters starting points. It definitely is taking blocks from the nodes and simply storing them and passing them along. We have no consensus, so it uses the first node is connects to and "trusts" it. It will give those blocks to any ChainSync clients and will also do transaction propagation (without most validation, and none being fully fatal yet) across node-to-node. |
This introduces a dingo Go Cardano node to the network. It may exhibit interesting bugs and different behavior from a Haskell cardano-node, introducing a bit of chaos into the mix.