-
Notifications
You must be signed in to change notification settings - Fork 41
Logbook 2023 H2
- Today, we have been working on the following issues:
- Simplify Mithril client CLI download command #1406: the PR Simplify mithril-client CLI #1413 has been merged, which closes the issue
- Make all infra Cardano nodes use P2P topology #1405: the PR Activate Cardano node P2P mode in infrastructure #1417 has been reviewed and approved. The modifications and the new Cardano node topologies have been tested on a temporary network. It will be merged shortly
- Light Wallet: Implement browser tests with fake aggregator #1407: we have paired on the ceration of the tests that are currently run on an external aggregator which will be replaced by a local aggregator once #1397 is completed
- Implement a fake standalone aggregator #1397: the developments have been pushed to the branch greg/1397/fake_aggregator. A draft PR will be created shortly
- Today, we have worked on the following issues:
- Manual publication to npm registry with GitHub action #1411: the PR Implement manual npm publication workflow #1414 has been merged. It closes the issue
- Add toggle for unstable release publication in CI #1415: the PR has been merged. It closes the issue
- Simplify Mithril client CLI download command #1406: the PR Simplify mithril-client CLI #1413 is being reviewed, and some modifications will be done before it is merged
- Implement a fake standalone aggregator #1397: the developments have been pushed to the branch greg/1397/fake_aggregator. A draft PR will be created shortly
- Make all infra Cardano nodes use P2P topology #1405: the draft PR Activate Cardano node P2P mode in infrastructure #1417 has been created
- Here are the issues on which we have been working today:
- Implement configurable signed entity types in aggregator #1388: the PR Support for configurable signed entity types in aggregator #1412 has been reviewed and merged. It closes the issue
- Simplify Mithril client CLI download command #1406: we have paired on the issue and we have created a draft PR Simplify mithril-client CLI #1413 which will be merged shortly
- Implement a fake standalone aggregator #1397: the developments have been pushed to the branch greg/1397/fake_aggregator. A draft PR will be created shortly
- Manual publication to npm registry with GitHub action #1411: the PR Implement manual npm publication workflow #1414 has been created and is pending review. It should be merged shortly
- Add toggle for unstable release publication in CI #1415: the PR has been created and is pending review. It will be merged shortly
-
Today, we have worked on the following issues:
- Implement open_message timeout in aggregator #1387: the PR Implement open_message timeout in aggregator #1401 has been merged, which closes the issue
- Enhance machine readable logs in client #1234: the PR Enhance machine readable logs in client #1400 has been merged. This closes the issue
- Implement configurable signed entity types in aggregator #1388: the PR Support for configurable signed entity types in aggregator #1412 has been created. It is pending review reviewed shortly
- Implement a fake standalone aggregator #1397: the developments have been pushed to the branch greg/1397/fake_aggregator. A draft PR will be created shortly
- Add toggle for network deployment in CI #1402: the PR has been merged
-
We have also created and groomed the issues:
- Fix signer node service setup #1404
- Make all infra Cardano nodes use P2P topology #1405
- Upgrade Cardano node to 8.7.2 #1410
- Light Wallet: Implement browser tests with fake aggregator #1407
- Add WASM client step in Mithril Client multi-platform test #1408
- Manual publication to npm registry with GitHub action #1411
- Implement the mithril client WASM package in the explorer #1409
-
Today, we have worked on the following issues:
- Implement open_message timeout in aggregator #1387: the PR Implement open_message timeout in aggregator #1401 has been created and is pending review. It will be merged shortly
- Enhance machine readable logs in client #1234: the PR Enhance machine readable logs in client #1400 has been created and has been reviewed. It will be merged shortly
- Implement a fake standalone aggregator #1397: the developments have been pushed to the branch greg/1397/fake_aggregator. A draft PR will be created shortly
- Implement configurable signed entity types in aggregator #1388: we have started working on this issue. A PR will be created next week
- Upgrade dependencies #1399: the PR has been created, reviewed and merged
- Add toggle for network deployment in CI #1402: the PR has been created and reviewed. It will be merged shortly
-
Additionally, we have rotated the KES keys of the SPO we are running on the
release-preprod
network
-
Today, we have worked on the following issues:
- Refactor mithril-client-cli with mithril-client library #1335: The PR Refactor mithril-client-cli using mithril-client library #1395 has been merges. This closes the issue
- Implement open_message timeout in aggregator #1387: we have kept working on the issue, and developments have been published to the branch jpraynaud/1387-open-message-timeout. We will create a PR shortly
- Enhance machine readable logs in client #1234: we have started working on this issue. A PR will be created shortly
- Implement a fake standalone aggregator #1397: the developments have been pushed to the branch greg/1397/fake_aggregator. A draft PR will be created shortly
-
Additionally, we have worked on the sprint planning for the next iteration
- Today, we have worked on the following issues:
- Light Wallet: Release mithril-client WASM library #1336: the PR Implement Mithril client WASM API #1389 has been reviewed and merged. This closes the issue
- Refactor mithril-client-cli with mithril-client library #1335: The PR Refactor mithril-client-cli using mithril-client library #1395 has been reviewed and is being fixed. It will be merged shortly
- Implement open_message timeout in aggregator #1387: we have kept working on the issue, and we will create a PR shortly. In the mean time developments have been published to the branch jpraynaud/1387-open-message-timeout
- Enhance machine readable logs in client #1234: we have started working on this issue. A PR will be created shortly
- Today, we have worked on the following issues:
- Light Wallet: Release mithril-client WASM library #1336: the PR Implement Mithril client WASM API #1389 is pending review. It will be merged shortly
- Refactor mithril-client-cli with mithril-client library #1335: The draft PR Refactor mithril-client-cli using mithril-client library #1395 has been updated and will be ready to be reviewed shortly
- Implement open_message timeout in aggregator #1387: we have kept working on the issue, and we will create a PR shortly. In the mean time developments have been published to the branch jpraynaud/1387-open-message-timeout
- Upgrade breaking changes crates#1357: the issue has been closed
- Implement a fake standalone aggregator #1397: the issue has been created
-
Today, we have worked on the following issues:
- Light Wallet: Release mithril-client WASM library #1336: we have updated the draft PR Implement Mithril client WASM API #1389. We will keep working on it shortly
- Refactor mithril-client-cli with mithril-client library #1335: we have paired on this issue. The draft PR Refactor mithril-client-cli using mithril-client library #1395 has been updated and will be ready to be reviewed shortly
- Light Wallet: Certify Cardano UTxO/transactions set PoC #1393: we finalized the benchmarks and published the results in the issue. This closes the issue
- Implement open_message timeout in aggregator #1387: we have started working on the issue, and we will create a PR shortly
- Fix broken links in documentation #1394: the PR has been reviewed and merged
- Implement ChainObserver adapter configuration in aggregator #1396: the issue has been created
-
During our team session, we have discussed about the following topics:
- Genesis secret key: we should probably trash it once the genesis certificate has been created (on the
mainnet
). In that case, if we re-genesis the certificate chain, we just create new keys (and need aggregator to be restarted as well) - Activation of Squiddler for the https://mithril.network website in order to detect 404 errors for external references
- Signatures of light wallet data: an idea that we have is to store only the transaction hash and a pointer to the location of the transaction in the immutable files (chunk immutable number + location in file) in the local storage. We have also investigated the quadrable library that provides a sparse Merkle tree database: we will try to prototype a bridge with Rust
- Documentation restructure, we will work on it altogether during our next team session
- Genesis secret key: we should probably trash it once the genesis certificate has been created (on the
-
Today, we have worked on the following issues:
-
Light Wallet: Release mithril-client WASM library #1336: we have kept pairing on the implementation of publication of the package to
npm
registry, and we have updated the draft PR Implement Mithril client WASM API #1389. We will keep working on it shortly - Refactor mithril-client-cli with mithril-client library #1335: we have kept working on the issue. The draft PR Refactor mithril-client-cli using mithril-client library #1395 has been created
-
Light Wallet: Certify Cardano UTxO/transactions set PoC #1393: we have pushed the development on the jpraynaud/1283-gather-blocks-tx-from-immutable for which we have conducted some benchmarks and identified what kind of problems we need to fix in order to go to
mainnet
-
Upgrade breaking changes crates #1357: the PR 1357/upgrade sqlite #1392 has been merged and we have conducted performance tests on which we have not noticed any regression. A new PR will be created shortly for the upgrade of the
http
crate
-
Light Wallet: Release mithril-client WASM library #1336: we have kept pairing on the implementation of publication of the package to
-
We have also checked if any test SPO on our test networks needed to have their KES keys rotated: this was not needed
- Today, we have worked on the following issues:
- Light Wallet: Release mithril-client WASM library #1336: we have kept pairing on the implementation of the JavaScript API for the WASM client and we have updated the draft PR Implement Mithril client WASM API #1389. We will keep working on it tomorrow
- Refactor mithril-client-cli with mithril-client library #1335: we have kept working on the issue. A draft PR will be created shortly
-
Create a test network on Sanchonet #1173: the network has been successfully created its first certificates, and we have been able to restore a Caadano node
8.7.1-pre
from a Mithril snapshot. We will keep working on the issue and setup a SPO for the network - Light Wallet: Certify Cardano UTxO/transactions set PoC #1393: we have pushed the development on the jpraynaud/1283-gather-blocks-tx-from-immutable which now implements the certification of the transaction hashes. We will keep working on it and provide some benchmarks
- Today, we have worked on the following issues:
- Light Wallet: Release mithril-client WASM library #1336: we have kept pairing on the implementation of the JavaScript API for the WASM client and we have updated the draft PR Implement Mithril client WASM API #1389. We will keep working on it tomorrow and we should merge it shortly
- Upgrade breaking changes crates #1357: the PR 1357/upgrade sqlite #1392 has been created and is pending review. It will be merged shortly
- Create a test network on Sanchonet #1173: the draft PR [Support Sanchonet Cardano network #1384] has been updated with the (temporary) deactivation of the communications made with pallas and use of fallback to the Cardano cli. The network has been successfully setup with a genesis certificate and should start signing tomorrow
- Refactor mithril-client-cli with mithril-client library #1335: we have started working on the issue. A draft PR will be created shortly
- Create dummies for SignedEntities #1386: the PR has been merged
- Remove sqlite dependency from mithril-client crate #1390: the PR Fix mithril-client dependencies #1391has been merged. It closes the issue
- Today, we have worked on the following issues:
- Light Wallet: Release mithril-client WASM library #1336: the PR Release mithril-client WASM library #1368 has been merged. We have kept pairing on the implementation of the Javascript API for the WASM client and we have created the draft PR Implement Mithril client WASM API #1389. We will keep working on it tomorrow
- Make mithril-client examples full crates #1385: the PR Make mithril-client examples full crates #1379 has been merged. This closes the issue
-
Create a test network on Sanchonet #1173: the draft PR [Support Sanchonet Cardano network #1384] has been updated. We have encountered a problem with the
PallasChainObserver
that is apparently unable to retrieve the epoch number on the Sanchonet network. We have filed a bug issue for this: https://github.com/txpipe/pallas/issues/347 - Upgrade breaking changes crates #1357: the developments have been pushed to the branch greg/1357/upgrade_sqlite. We will create a draft PR shortly
- Create dummies for SignedEntities #1386: the PR has been created and reviewed. It should be merged shortly
- Remove sqlite dependency from mithril-client crate #1390: the issue has been created and the PR Fix mithril-client dependencies #1391, which has been created, is pending review and will be merged shortly
- Implement open_message timeout in aggregator #1387: the issue has been created and groomed
- Implement configurable signed entity types in aggregator #1388: the issue has been created and groomed
-
Today, we have worked on the following issues:
- Light Wallet: Release mithril-client WASM library #1336: the PR Release mithril-client WASM library #1368 is almost ready to be merged (we just need to fix the CI errors about crates.io publication). We have also paired on implementing the Javascript API for the WASM client and developments have been published to the ensemble/1336-mithril-client-wasm-api branch. We will keep working on it shortly
- Manual publication to crates.io with GitHub action #1380: the PR Implement manual crates publication workflow #1382 has been merged. This closes the issue
- Make mithril-client examples full crates #1385: the PR Make mithril-client examples full crates #1379 has been reviewed and will be merged shortly
- Create a test network on Sanchonet #1173: the draft PR [Support Sanchonet Cardano network #1384] has been created and we will keep working on it shortly
-
During our team session, we discussed about:
- Threat modeling for P2P network
- How to handle smoothly breaking changes with users of our distributions (Mithril client):
- We could have 2 different OpenAPI files (one for signer and another for aggregator)
- We will try to implement Consumer-driven contract testing strategy in a PoC with Hydra team
- Each of our consumer will advertise the versions that they are using in (pre)release
- During deployment steps of our CI/CD, we will check if there is any of our consumers that has a breaking change
- This will help us handle deployment of breaking changes with less friction (especially as the number of projects using the client is growing)
- Implementation of the Sanchonet test network
- Implementation of the Light Client PoC with the Merkle tree we will likely use and which data we will sign (UTxO or more likely Transactions)
- Size/performance concerns for storing transaction/UTxO sets locally on signer/aggregator nodes
-
Today, we have worked on the following issues:
- Light Wallet: Release mithril-client WASM library #1336: we have paired on the issue and we have completed the PR Release mithril-client WASM library #1368 which has been reviewed and will be merged shortly
- Manual publication to crates.io with GitHub action #1380: the issue has been created and the PR Implement manual crates publication workflow #1382 has been created and is pending review. It will be merged shortly
-
Upgrade breaking changes crates #1357: we have started investigating the breaking changes introduced in the
sqlite
crate. We will create a draft PR shortly
-
We have also checked if any test SPO on our test networks needed to have their KES keys rotated: this was not needed
-
Today, we have worked on the issues:
- Enhance aggregator REST API performances #1327: the PR HTTP message service handles signed entities #1366 has been merged and we have measured nominal performances on the fixed routes 🎉 This closes the issue
-
Upgrade dependencies #1376: the PR has been reviewed and merged. It fixes the following security advisories
GHSA-xphf-cx8h-7q9g
andGHSA-wf5p-g6vw-rhxx
. Also the Certificate tab of the explorer has been activated - Fix explorer switch aggregator infinite loop #1378: the PR has been created, reviewed and merged. It fixes a problem with the aggregator switch on the explorer which was flooding the aggregator backend
-
We have also prepared the sprint planning for the next iteration
-
Finally, we have worked on the demo path:
- Update on Mithril Mainnet Beta
- What's new in distribution
2347
- Focus on newly released Mithril client library
- Focus on improvements of Mithril/Cardano nodes communication by TxPipe
- Showcase live coding of a CLI with the Mithril client library
- Showcase of Mithril aggregator performance improvements
- Showcase of Mithril relay P2P network
-
Today, we have worked on the following issues:
-
Enhance Mithril/Cardano node communication #1315: the PR [enhance mithril/cardano node communication #1348] has been merged and deployed on the
testing-preview
network. It is working smoothly 🎉 - Light Wallet: Release mithril-client WASM library #1336: we have paired on the issue and we have worked on the draft PR Release mithril-client WASM library #1368. We have a working prototype version of the API in WASM 💪 but we are having troubles with building on the CI. We will keep working on it shortly
- Enhance aggregator REST API performances #1327: the PR HTTP message service handles signed entities #1366 has been updated with review comments, it will be merged tomorrow
-
Signer runtime is stuck for some SPO #1312: the issue has been closed as
the PR Add timeout on signer node HTTP requests #1374 has been merged - Error message for mithril-client snapshot download #1375: the issue has been troubleshooted and closed
- mithril-client verbosity not following usage menu #1325: the PR Fix verbosity log levels #1373 has been reviewed and merged, which closes the issue
- Upgrade dependencies #1376: the PR has been created and is pending review. It will be merged shortly
-
Enhance Mithril/Cardano node communication #1315: the PR [enhance mithril/cardano node communication #1348] has been merged and deployed on the
-
We have also worked on the demo path preparation for tomorrow
- Today, we have worked on the following issues:
- Enhance Mithril/Cardano node communication #1315: the PR [enhance mithril/cardano node communication #1348] has been reviewed and is almost ready to be merged
- Enhance aggregator REST API performances #1327: the PR HTTP message service handles signed entities #1366 has been updated with modifications, it will be merged shortly
- Signer runtime is stuck for some SPO #1312: the issue has been reopened as the problem seems to be due to missing timeouts in the HTTP client of the signer. The PR Add timeout on signer node HTTP requests #1374 has been created and is pending review. It will be merged shortly
- mithril-client verbosity not following usage menu #1325: the PR Fix verbosity log levels #1373 has been reviewed and is ready to be merged
- Error message for mithril-client snapshot download #1375: the bug issue has been created and is being treated
- Fix mithril-common publication on crates.io #1372: the PR has been reviewed and merged
-
Today we have released the new
2347.0
distribution, and we published the first version of themithril-client
library on crates.io 🥳 -
We have also worked on the following issues:
- Enhance aggregator REST API performances #1327: the PR HTTP message service handles signed entities #1366 has been updated with modifications, it will be merged shortly
- mithril-client verbosity not following usage menu #1325: the draft PR Fix verbosity log levels #1373 has been created and will be merged shortly
- Update current documentation for 2347 distribution #1367: the PR has been merged
- Announce Mithril client library is released #1371: the PR has been merged
- Fix crates.io release credentials #1370: the PR has been merged
- Fix mithril-common publication on crates.io #1372: the PR has been created and is pending review
-
Finally, during our team session, we have discussed about:
- How can we bootstrap the P2P network?
- We have screened some options for gathering an accurate list of peers:
- Retrieve the list from Cardano Explorer (json file with Cardano relays)
- Cardano node itself to retrive the peers list (not sure if it is possible)
- Cardano CLI command
query stake-pool
(access to the Cardano relay, but must be called for each SPO) - Use the P2P network itself to broadcast this information about the relay
- We have also talked about the distribution of these bootstrap peers list:
- DNS Bootstrap with SRV records (interesting, but not the easiest)
- Hardcode the list in each distribution (easy and efficient)
- Additionally, we have talked about the security and threat model for the P2P network
-
Today, we have worked on the following issues:
- Enhance aggregator REST API performances #1327: the PR HTTP message service handles signed entities #1366 has been updated with modifications and is pending review. It will be merged shortly
- Signer runtime is stuck for some SPO #1312: the PR Add goodbye message for signer node #1362 has been merged and the issue has been closed
- enhance mithril/cardano node communication #1348: the PR has been reviewed and some modifications have been requested. We should merge it shortly
-
Also we have checked if some KES keys needed to be rotated on the test SPOs that we run, and this was not the case
-
Finally, we have started working on a demo path for the tribe review meeting with the P2P relay
-
Today, we have created a new pre-release for the
2347
distribution: 2347.0-pre. It has been successfully deployed on thepre-release-preview
network and will be tested until next week 🎉 -
We have also worked on the following issues:
- Light Wallet: Release mithril-client WASM library #1336: we have paired on the issue and we have created the draft PR Release mithril-client WASM library #1368. We have a working prototype version of the API in WASM 💪 . We will keep working on it shortly
- Enhance aggregator REST API performances #1327: the PR HTTP message service handles signed entities #1366 has been reviewed and some modifications are in progress. It should be ready to review shortly
- Signer runtime is stuck for some SPO #1312: the PR Add goodbye message for signer node #1362 is still being completed and will be ready to merge shortly
- Support P2P relay in infrastructure #1361: the PR Deploy P2P network infrastructure #1363 has been reviewed and merged. This closes the issue
- Fix Mithril relay Rust doc #1364: the PR has been merged
- Standardize default environment file path of Signer node configuration for SPOs #1365: the PR has been merged
-
Update current documentation for 2347 distribution #1367: the draft PR has been created and will be merged once the
2347
distribution is released
- Today we have worked on these issues:
- Light Wallet: Release mithril-client WASM library #1336: we have paired on the issue and have pushed our work in progress on the branch ensemble/1336-mithril-client-wasm. We will keep working on it shortly
- Enhance aggregator REST API performances #1327: the PR HTTP message service handles signed entities #1366 has been created and is pending review
- Signer runtime is stuck for some SPO #1312: the PR Add goodbye message for signer node #1362 has been reviewed and it will be merged after some modifications
- Support P2P relay in infrastructure #1361: the draft PR Deploy P2P network infrastructure #1363 has been created and will be ready to be reviewed shortly
- Mithril-client-lib: Gate snapshot download & message computation behind a feature #1344: the PR has been merged
- Fix Mithril relay Rust doc #1364: the PR has been created in order to determine how to facilitate the external contributions while benefiting from the CI. It will be merged shortly
- Standardize default environment file path of Signer node configuration for SPOs #1365: the PR has been created and reviewed. It is ready to be merged.
- We have been working on these topics:
- Prototype a P2P relay with libp2p #1326: the PR Mithril relay P2P network for signatures PoC #1346 has been merged, which closes the issue
-
Enhance aggregator REST API performances #1327: the PR HTTP message service #1353 has been merged. We have seen x2 performance improvement on the
/certificates
route, and we will implement the same improvement for the/artifacts/mithril-stake-distributions
route - Signer runtime is stuck for some SPO #1312: we have paired on the implementation of the draft PR Add goodbye message for signer node #1362 that will help detect when (and why) a signer has been stopped. It will be merged shortly
- Make Cardano node version custom in CI/CD #1355: the PR Use Cardano node custom version CI/CD #1359 has been merged, which closes the issue
- Manually deploy a test Mithril network #1356: the PRs Manual deployment of test Mithril network #1358 and Runbooks for test distributions and deployments #1360 have been merged, which closes the issue
- Support P2P relay in infrastructure #1361: the issue has been created, and a PR will be created shortly. In the mean time, development have been pushed on the jpraynaud/1361-deploy-relay-p2p-network
-
Today we have worked on the following topics:
- Prototype a P2P relay with libp2p #1326: the PR Mithril relay P2P network for signatures PoC #1346 is being reviewed, some minor modifications will be implemented before it is merged
- Enhance aggregator REST API performances #1327: the PR HTTP message service #1353 has been reviewed, and some modifications are in progress
- Signer runtime is stuck for some SPO #1312: we have kept working on the issue, and we have tried to implement a termination log in order to see if the stuck signer have been stopped and not restarted. We will create a draft PR shortly
- Make Cardano node version custom in CI/CD #1355: the issue has been created, and a PR has been created Use Cardano node custom version CI/CD #1359 which is pending review. It will be merged shortly
- Manually deploy a test Mithril network #1356: the issue has been created, the PR Manual deployment of test Mithril network #1358 is pending review, and the draft PR Runbooks for test distributions and deployments #1360 will be ready for review shortly
-
Mithril-client-lib: Gate snapshot download & message computation behind a feature #1344: the PR has been updated with a temporary default feature set to
full
which avoids crashing the nix CI. We will try to update the nix CI so that it can handle custom features by crate this week
-
During our team session, we have discussed about:
- Error message is very technical and confusing #1354: we will try during the implementation of the issue Refactor mithril-client-cli with mithril-client library #1335 to take into consideration the need for clear error messages (at least for the most common mistakes)
- P2P networking: once the first version of the relay is merged, we will investigate the peer discovery process (given the fact that we don't want the aggregator to be the only entry point in the P2P network. We have also discussed about testing at scale the P2P network and we have decided to focus on this aspect later. Also, we have discussed about a testing program for the SPOs, we will likely create a poll to identify on which network they'd rather make it
-
Today we have worked on the following issues:
- Prototype a P2P relay with libp2p #1326: the PR Mithril relay P2P network for signatures PoC #1346 has been updated with some code refactoring and odcumentation enhancements. It is pending review and should be merged next week. We have also updated the infrastructure and deployment of the P2P network in the branch ensemble/1300-deploy-relay-p2p-network
- Enhance aggregator REST API performances #1327: the PR HTTP message service #1353 has been created, and is pending review. It will be merged shotly
- mithril-client fails to extract archive #1352: the bug issue has been created and closed. This was a false positive
-
We have also proceeded to the rotation of the KES keys of the 3 SPOs that we operate on the
testing-preview
network, as well as for the SPO that we operate on thepre-release-preview
-
Today we have worked on the issues:
- Prototype a P2P relay with libp2p #1326: the draft PR Mithril relay P2P network for signatures PoC #1346 has been updated with some code refactoring and a will be ready to be reviewed shortly. We have prepared the infrastructure and deployment of the P2P network in the branch ensemble/1300-deploy-relay-p2p-network. We will create a PR from it shortly
- Enhance aggregator REST API performances #1327: we have worked on the issue for avoiding unwanted (de)serializations. We will create a PR shortly
- Signer runtime is stuck for some SPO #1312: we are investigating the issue and are running several scenario to reproduce the problem
- P2P threat modeling and risk analysis #1350: the issue has been created
-
We have also worked on the sprint planning for the next iteration
-
Additionally, we have made some preparatory work for the creation of the next distribution: the PR Upgrade dependencies #1351 that will be merged shortly
-
During our team session, we have reviewed the work on the P2P network and we have decided to:
- To merge the prototype as soon as it is running properly in the CI and without deploying the relay yet on any network
- Create a separate PR for the activation of the relays in the infrastructure and the deployment pipeline
- Release the P2P relay on the to be activated
testing-sanchonet
network - Work on a threat model and security risk assertion for the P2P networking layer
- Today, we have worked on the following issues:
- Light Wallet: Release mithril-client library #1311: the PR Mithril client and common crates preparation for publication #1349 has been merged, which closes the issue 🎉
- Prototype a P2P relay with libp2p #1326: the draft PR Mithril relay P2P network for signatures PoC #1346 has been updated with some code refactoring. We will mob program on it tomorrow
- Enhance aggregator REST API performances #1327: we have worked on the issue for avoiding unwanted (de)serializations. We will create a PR shortly
- Mithril-client-lib: Gate snapshot download & message computation behind a feature #1344: the PR has been updated with some fixes due to the usage of features. We need to fix the nix builds before it can be merged
- Today, we have worked on the following topics:
- Light Wallet: Release mithril-client library #1311: we have paired on the PR Mithril client and common crates preparation for publication #1349 has been created and is ready for review. We will merge it shortly
- Prototype a P2P relay with libp2p #1326: the draft PR Mithril relay P2P network for signatures PoC #1346 has been created. We are currently checking the reliability of the P2P layer in the end to end tests
- 🔥 release-mainnet aggregator is unreachable #1310: the issue has been closed
- Enhance aggregator REST API performances #1327: the PR enhance Aggregator REST API performances #1347 has been created, reviewed and merged
- Fix certificate hashes re-computation in aggregator #1343: we have paired on the PR Fix certificate hashes re-computation in aggregator #1345 has been created, reviewed and merged. This closes the issue
- Mithril-client-lib: Gate snapshot download & message computation behind a feature #1344: the PR has been created and reviewed. It will be merged shortly
- Today, we have worked on the following subjects:
- Light Wallet: Release mithril-client library #1311: the PR Redesign mithril client api #1332 has been merged 🎉. We will keep working on the issue with the crates.io publication
- Prototype a P2P relay with libp2p #1326: the aggregator and signer relays are now implemented into the end to end test 💪. The updates have been pushed to the branch ensemble/1300-mithril-relay-p2p-poc
- 🔥 release-mainnet aggregator is unreachable#1310: we have worked on the last step of the issue, and we will create a PR shortly
- Fix certificate hashes re-computation in aggregator #1343: the PR has been created, and we have started working on it. A draft PR Fix certificate hashes re-computation in aggregator #1345 has been created
- Enhance aggregator REST API performances #1327: we have groomed the issue, and we will start working on it shortly
- Remove unstable tag in unstable release #1235: the PR Enhance end to end readme and fix work_directory default value on MacOS #1338has been merged which loses the issue
- Enhance end to end readme and fix work_directory default value on MacOS #1338: the PR has been reviewed and merged
- Simplify common deps #1341: the PR has been created, reviewed and merged
- Mithril-client-lib: Gate snapshot download & message computation behind a feature #1344: the draft PR has been created and will be merged shortly
-
Today, we have worked on the following issues:
- Light Wallet: Release mithril-client library #1311: the PR Redesign mithril client api #1332 is ready to be merged. It will be merged next week
- 🔥 release-mainnet aggregator is unreachable#1310: the PR lower serialization #1333 has been merged. The PR embedded breaking changes that required a migration that was not planned for the re-computation of the certificate hashes. We have managed to fix the issue manually
- Remove unstable tag in unstable release #1235: the PR Enhance end to end readme and fix work_directory default value on MacOS #1338 is reviewed and ready to be merged
- Refactor mithril-client-cli with mithril-client library #1335: the issue was created
- Light Wallet: Release mithril-client WASM library #1336: the issue was created
-
We have also merged the following PRs:
- Fix certificate chain hashes recomputation #1337: the PR was reviewed and merged
- Enhance end to end readme and fix work_directory default value on MacOS #1338: the PR was created and is pending review
-
Finally, we have checked if any of the test SPOs we are running needed to rotate their KES keys, but this was not the case
- Today, we have worked on the following issues:
- Prototype a P2P relay with libp2p #1326: we have mob programmed on this issue, and we have made good improvements. We have been able to implement the P2P network layer for broadcasting signatures in an unstable end to end test. We will keep working on it shortly. The updates have been pushed to the branch ensemble/1300-mithril-relay-p2p-poc
- Light Wallet: Release mithril-client library #1311: the PR Redesign mithril client api #1332 has been reviewed and is pending minor moodifications. It will be merged shortly
- 🔥 release-mainnet aggregator is unreachable#1310: the PR lower serialization #1333 has been created and reviewed. It's pending minor modifications, and it will be merged shortly
-
Today, we have worked on the following issues:
- 🔥 release-mainnet aggregator is unreachable#1310: the PR Revert "add soft limit in certificate query" #1328 has been merged, and another PR will be created shortly from the branch greg/1310/lower_serialization
- Light Wallet: Release mithril-client library #1311: we have paired on this issue, and we will the PR Redesign mithril client api #1332 has been created and is pending review. It will be merged shortly
- Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC #1283: we have completed the implementation of a CLI that imports transaction from immutable files into a SQLite database and queries the UTxOs (all or of an address), and the developments have been pushed to jpraynaud/1283-gather-blocks-tx-from-immutable
- Prototype a P2P relay with libp2p #1326: we have made some improvements on the code, and we have tried to better understand why the test are not working with a dynamic number of peers. The updates have been pushed to the branch ensemble/1300-mithril-relay-p2p-poc
-
We have also created, reviewed and merged the PR Add Mithril end to end instructions for --skip-cardano-bin-download command #1331
- Today, we have worked on the following issues:
- 🔥 release-mainnet aggregator is unreachable#1310: the PR Revert "add soft limit in certificate query" #1328 is ready to be merged, and another PR will be created shortly that removes unnecessary cryptographic material in the certificates as pushed in the branch greg/1310/lower_serialization
- Light Wallet: Release mithril-client library #1311: we have paired on this issue, and we will create a draft PR shortly. The developments have been pushed to the branch ensemble/1311/redesign_mithril_client_api
- Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC #1283: we have created a SQLite store for the utxos, and the developments have been pushed to jpraynaud/1283-gather-blocks-tx-from-immutable
- Client Docker package is incorrect #1322: the PR Fix client CLI Docker package name in CI/CD #1330 has been created, reviewed and merged. This closes the issue and allows us to resume the release process
-
We have worked on the following issues:
-
🔥 release-mainnet aggregator is unreachable#1310: We have re-groomed what needs to be done in order to gain performance on the
/certificates
route. The PR Revert "add soft limit in certificate query" #1328 has been created, reviewed and is ready to be merged - Enhance aggregator REST API performances #1327: the issue has been created and groomed
- Light Wallet: Release mithril-client library #1311: we have paired on this issue, and we will create a draft PR shortly
- Prototype a P2P relay with libp2p #1326: we have fixed the integration test that now works with P2P clients. The updates have been pushed to the branch ensemble/1300-mithril-relay-p2p-poc
-
🔥 release-mainnet aggregator is unreachable#1310: We have re-groomed what needs to be done in order to gain performance on the
-
We have also fixed a crash that was occurring at startup on the
devnet
, and the PR Fix devnet crashing at startup #1329 has been created, reviewed and merged. -
Finally, during our team session, we have discussed about the P2P network PoC:
- The goal is to have 2 aggregators producing certificates based on the signatures sent by the signers (via the relay)
- We could try to implement also the signer registrations on a different topic of the pubsub
- This could lead to complications, especially as the signer retrieves the list of other signers from the network
- We have also talked about the protocol parameters which we consider to be network parameters (and that we will probably hard code or put in configuration files)
- In terms of peer discovery, we will probably rely on the list of relays (available via cardano-cli and/or ledger state query), and target a specific port number on the host
- We will keep working on it in a new team session this week
- Today, we have been working on the preparation of the demo with the following path:
- Presentation of the mainnet beta summary of signers registered into the protocol
- Presentation of the new
2342.0
distribution - Presentation of the Mithril relay security advisory
- Presentation of the improvements on Docker images size
- Showcase of the UI improvements of the Mithril explorer
- Presentation and showcase of the Mithril relay P2P network PoC
# Demo: P2P network relay
---
# Setup demo
## Download source (if needed)
git clone https://github.com/input-output-hk/mithril.git
#or
git clone git@github.com:input-output-hk/mithril.git
## Checkout correct branch
cd mithril/
git switch ensemble/1300-mithril-relay-p2p-poc
git checkout 11a85d7ceb
cargo build --release -p mithril-relay
cp target/release/mithril-relay ../
cd ..
./mithril-relay
---
# Demo (port are dynamically allocated and must be updated during the demo)
## Create a first relay
./mithril-relay --node-type=relay
## Create 2 clients which connect in P2P to the first relay
./mithril-relay --node-type=client --dial-to="/ip4/127.0.0.1/tcp/44719"
./mithril-relay --node-type=client --dial-to="/ip4/127.0.0.1/tcp/44719"
## Send a dignature to the first relay (all clients should receive the message via P2P pubsub)
curl --data @signature-1.json -H "Content-type: application/json" -vvv http://127.0.0.1:43259/register-signatures
## Create a second relay which connect to a peer of the P2P network
./mithril-relay --node-type=relay --dial-to="/ip4/127.0.0.1/tcp/44719"
## Create 2 clients which connect in P2P to the second relay
./mithril-relay --node-type=client --dial-to="/ip4/127.0.0.1/tcp/46663"
./mithril-relay --node-type=client --dial-to="/ip4/127.0.0.1/tcp/46663"
## Send a signature to the first relay
curl --data @signature-2.json -H "Content-type: application/json" -vvv http://127.0.0.1:43259/register-signatures
## Send a signature to the second relay
curl --data @signature-3.json -H "Content-type: application/json" -vvv http://127.0.0.1:35849/register-signatures
## Kill some peers on the network
### Kill 2 client processes
## Send a signature to the first relay
curl --data @signature-4.json -H "Content-type: application/json" -vvv http://127.0.0.1:43259/register-signatures
-
We have also prepared the next iteration
-
Additionally, we have verified the KES keys of the test SPOs, and none of them needed to be rotated
-
Today, we have been working on these issues:
- P2P Networking PoC #1300: We have pushed updates on ensemble/1300-mithril-relay-p2p-poc. The CLI has been refined, the tick of the relay has been made concurrent, and we have investigated on the integration tests that are not working with more that 1 client. We will keep working on it this week
- Light Wallet: Release mithril-client library #1311: we have paired on this issue, and we will create a draft PR shortly
-
We have also spent time preparing the demo of the iteration
- Today, we have worked on the following issues:
- P2P Networking PoC #1300: We have mob programmed on this issue and we have pushed updates on ensemble/1300-mithril-relay-p2p-poc. We are now able to make the tests work with 1 relay and 1 peer, and we have created a CLI that works with 1 relay and multiple peers. We will keep working on it this week
- Light Wallet: Release mithril-client library #1311: we have paired on this issue, and we will create a draft PR shortly
- Client regressions in snapshot list and download #1321: the PR Client regressions in snapshot list and download #1323 was reviewed and merged. This closes the issue
- Fix devnet Mithril Docker images #1272: the PR Enhance Mithril nodes devnet Docker images #1324 has been created, reviewed and merged. This closes the issue
-
Today, we have worked on the following issues:
- Light Wallet: Release mithril-client library #1311: we have finished the design part of the issue. We have also created the PR Rename mithril-client to mithril-client-cli #1320 which has been merged
-
🔥 release-mainnet aggregator is unreachable #1310: we re-run the test done yesterday as the PR was not deployed on the
testing-preview
network. We have noticed a drop of performances as explained in the issue. We will keep working on it next week - Client regressions in snapshot list and download #1321: the issue was created and the PR Client regressions in snapshot list and download #1323 which is under review (and will be merged next week)
- Client Docker package is incorrect #1322: the issue has been created
-
We have also checked if some KES keys needed to be rotated on our test SPOs: none needed to be rotated
- Today, we have worked on the following issues:
- P2P Networking PoC #1300: we have mob programmed on this issue, and we have pushed updates on the branch ensemble/1300-mithril-relay-p2p-poc. We have made progress and we will keep pair programming on it next week
- Light Wallet: Release mithril-client library #1311: we have almost finished the design part of the issue, and we will start implementing it tomorrow
-
🔥 release-mainnet aggregator is unreachable #1310: we have merged the PR add soft limit in certificate query #1314. We have run new performances test that indicate that there is no improvement. We have also paired on making some tests to better understand where the bottleneck stands with the
/certificates
route and we have understood that the problem likely comes from the retrieval of the certificates that makes back and forth (de)serialization of the Certificates (including the signatures) which can clearly be optimized. We will attempt to fix the problem shortly
- Today, we have worked on the following issues:
-
Light Wallet: Build mithril-common and mithril-client in WASM PoC #1284: we have paired on the issue. We have succeeded in building and running the
mithril-client
library in WASM: the client is able to verify the Certificate chain in a browser. In order to make the client work, we have slightly modified the aggregator router so that it exposes an allowed header for the Mithril API version: this was causing CORS errors and a fix has been deployed on thetesting-preview
network with the PR Fix aggregator HTTP server CORS #1318 - Light Wallet: Release mithril-client library #1311: we have started discussing about the design part of the issue, and we will continue to work on it tomorrow
- 🔥 release-mainnet aggregator is unreachable #1310: we have reviewed the PR add soft limit in certificate query #1314. We will merge shortly, make some performance tests, and we will see how to duplicate this to other tables that likely need some optimization on the get all query.
-
Light Wallet: Build mithril-common and mithril-client in WASM PoC #1284: we have paired on the issue. We have succeeded in building and running the
- Today, we have worked on the following issues:
-
🔥 release-mainnet aggregator is unreachable #1310: the PR Handle sqlite access using a ConnectionWithFullMutex #1316 has been merged, and we have run some performance tests that indicate that a significant performance optimization as detailed in the issue. We will attempt to fix the still not optimal performances on the
/certificates
route in particular - Make mithril-client crate a library #1141: We merged the PR rework client to export mithril API #1291 which close the issue
-
Light Wallet: Build mithril-common and mithril-client in WASM PoC #1284: we have paired on the issue and we have achieved to roughly compile both the
mithril-common
andmithril-client
crates in WASM. We are currently working on running the client in the browser and we will keep on pairing tomorrow - CoreVerifier setup does not compute total_stake correctly #1306: the PR total_stake calculation corrected #1308 has been merged, which closes the issue
- Enhance Mithril/Cardano node communication#1315: we have started grooming the issue with TxPipe team
-
🔥 release-mainnet aggregator is unreachable #1310: the PR Handle sqlite access using a ConnectionWithFullMutex #1316 has been merged, and we have run some performance tests that indicate that a significant performance optimization as detailed in the issue. We will attempt to fix the still not optimal performances on the
-
Today, we have released the new distribution
2342.0
and deployed it on therelease-mainnet
andrelease-preprod
networks 🎉 -
We have also worked on the following issues:
-
🔥 release-mainnet aggregator is unreachable #1310: the PR Handle sqlite access using a ConnectionWithFullMutex #1316 has been reviewed and will be merged shortly. Once this is done, we will be able to measure the performance improvements on the
testing-preview
network. We will continue with fixing the missing LIMIT in the queries - P2P Networking PoC #1300: we have mob programmed on this issue, and we have pushed updates on the branch ensemble/1300-mithril-relay-p2p-poc. We will keep mob programming on this issue this week
- Make mithril-client crate a library #1141: We have fixed some compilation problems on the CI with the doctests and we expect to merge the PR rework client to export mithril API #1291 tomorrow
- CoreVerifier setup does not compute total_stake correctly #1306: the PR total_stake calculation corrected #1308 has been reviewed and will be merged shortly
- Display a summary of signers before the full list in explorer #1133: the PR Explorer certificates list & signers summary #1309 has been reviewed and merged. This closes the issue
- Add certificates list in explorer #1184: the PR Explorer certificates list & signers summary #1309 has been reviewed and merged. This closes the issue
-
🔥 release-mainnet aggregator is unreachable #1310: the PR Handle sqlite access using a ConnectionWithFullMutex #1316 has been reviewed and will be merged shortly. Once this is done, we will be able to measure the performance improvements on the
-
Additionally, we have groomed the issues:
-
Today, we have been working on these issues:
- 🔥 release-mainnet aggregator is unreachable #1310: we have investigated the issue and we have been able to spot the performance bottleneck that was likely the source of the unreliability. A PR is being created for replacing the way the Mutex to the connection is handled which has proven locally to improve the performances, and that will be merged next week. Also a draft PR for optimizing SQL queries has been created add soft limit in certificate query #1314. We'll keep investigating and fixing the problem next week
- Make mithril-client crate a library #1141: we have fixed most of the issues in the PR rework client to export mithril API #1291 that will merged next week
- ProtocolKeyRegistration creates performance bottleneck in aggregator #1187: the PR Aggregator keyreg bottleneck #1295 has been merged, which closes the issue
- Compute deterministic Cardano UTxO/transactions set PoC #1283: we have pushed some optimizations to the branch jpraynaud/1283-gather-blocks-tx-from-immutable
- Display a summary of signers before the full list in explorer #1133: the PR Explorer certificates list & signers summary #1309 is ready to be merged
- Add certificates list in explorer#1184: the PR is ready to be merged
- Epic: Light Wallet implementation PoC #1313: the epic has been created
- Enhance Mithril/Cardano node communication #1315: the issue has been created
-
We have also checked if some KES keys needed to be rotated on our test SPOs, which was not the case
-
Today, we have been working on these issues:
- 🔥 release-mainnet aggregator is unreachable#1310: the issue has been created following incidents, and we are investigating them
- Make mithril-client crate a library #1141: we have almost finalized the PR rework client to export mithril API #1291 that should be ready to merge tomorrow
- ProtocolKeyRegistration creates performance bottleneck in aggregator #1187: we have almost finalized the PR Aggregator keyreg bottleneck #1295 that should be merged tomorrow
- Compute deterministic Cardano UTxO/transactions set PoC #1283: we have fixed a bug that occurs when transaction are partially invalids and tested at scale on the preprod network. Updates have been pushed to the branch jpraynaud/1283-gather-blocks-tx-from-immutable
- CoreVerifier setup does not compute total_stake correctly #1306: the issue has been created and a draft PR has been created total_stake calculation corrected #1308 that will be merged shortly
- Fix devnet Mithril Docker images #1272: the PR Refactor Dockerfile.ci to slim containers #1302 has been reviewed and merged
- Display a summary of signers before the full list in explorer #1133: the PR Explorer certificates list & signers summary #1309 is pending review and will be merged shortly
- Add certificates list in explorer#1184: the PR Explorer certificates list & signers summary #1309 is pending review and will be merged shortly
-
Additionally, we have created a new distribution pre-release
2342.0-pre
and has been deployed on thepre-release-preview
network
-
Today, we have been working on these issues:
- Make mithril-client crate a library #1141: we have worked on the PR rework client to export mithril API #1291 that should be ready to merge tomorrow
- ProtocolKeyRegistration creates performance bottleneck in aggregator #1187: we have paired on stabilizing the end to end tests, and the PR Aggregator keyreg bottleneck #1295 is now ready to be reviewed. We will merge it shortly
- Publish multiple packages to crates.io #1298: the PR Publish multiple packages to crates.io #1299 has been merged, which closes the issue
-
We have also merged the following PRs:
-
Finally, we have updated the discussions about Implementing Mithril in a light wallet #1273
- Today, we have worked on these issues:
- P2P Networking PoC #1300: we have mob programmed on this issue and we have pushed the first draft on the branch ensemble/1300-mithril-relay-p2p-poc. We will keep mob programming on this issue this week
- Make mithril-client crate a library #1141: we have reviewed the PR rework client to export mithril API #1291 and we have decided to postpone the release to crates.io as we need to make deep modifications before we have a stable API available for developers
- ProtocolKeyRegistration creates performance bottleneck in aggregator #1187: we have some difficulties in stabilizing the end to end tests following the refactoring in the PR Aggregator keyreg bottleneck #1295. We will pair tomorrow on attempt to debug it tomorrow
- Publish multiple packages to crates.io #1298: the PR Publish multiple packages to crates.io #1299 is ready to be reviewed, and it will be merged shortly
-
We have worked on these issues:
- Make mithril-client crate a library #1141: we have paired on the compilation problems that we encountered in the CI when Windows is targeted. We have been able to find a solution, and the PR rework client to export mithril API #1291 will be cleaned-up and reviewed. We expect to merge it shortly
- ProtocolKeyRegistration creates performance bottleneck in aggregator #1187: the draft PR [Aggregator keyreg bottleneck #1295] has been created and we will make a first review shortly
- Rename public key published in releases #1292: the PR Rename GPG public key in releases #1294 has been reviwed and merged, which closes the issue
- Publish multiple packages to crates.io #1298: the PR Publish multiple packages to crates.io #1299 is pending review and will be merged shortly
- Fix devnet Mithril Docker images #1272: we have created the PR Fix missing aggregator configuration in devnet #1297 which has been reviewed and merged
-
Additionally, we have created the following issues:
-
Finally, we have published a security advisory Mithril relay could expose Cardano block producer internal IP when updated. We have also created a dev blog post: Mithril Relay Security Advisory and announced it on the discord channel
-
Today we have worked on the following issues:
- Make mithril-client crate a library #1141: we have paired on the PR rework client to export mithril API #1291. We have encountered some difficulties with the building of the library in the CI that we attempted to fix
- ProtocolKeyRegistration creates performance bottleneck in aggregator #1187: we have kept working on the issue, and we have paired to adjust some of the design. We have almost achieved the final skimming of the multi-signer in the aggregator in the mean time. Updates have been pushed to the branch [djo/1187/aggregator_keyreg_bottleneck]
- Compute deterministic Cardano UTxO/transactions set PoC #1283: we have kept refactoring the code and testing at scale on the test networks. Updates have been pushed to the branch jpraynaud/1283-gather-blocks-tx-from-immutable
- Mithril networks infrastructure maintenance #1218: the PR Infrastructure VM upgrade runbook #1293 has been reviwed and merged. This closes the issue
- Rename public key published in releases #1292: the PR Rename GPG public key in releases #1294 is pending review and will be merged shortly
-
We have also rotated the KES keys of our SPOs running on the
release-preprod
network
-
Today we have worked on the following issues:
- Make mithril-client crate a library #1141: the PR rework client to export mithril API #1291 has been reviewed and we have paired on modifications that are needed before it is merged
- ProtocolKeyRegistration creates performance bottleneck in aggregator #1187: we have kept working on the issue, and we have paired to understand a crash that occurred when running the end to end tests. Updates have been pushed to the branch [djo/1187/aggregator_keyreg_bottleneck]
- Compute deterministic Cardano UTxO/transactions set PoC #1283: we have kept working on computing the history of transactions for addresses, and we have started testing at scale on the test networks. Updates have been pushed to the branch jpraynaud/1283-gather-blocks-tx-from-immutable
-
We have also merged the PR Fix mithril-stm WASM build #1290 that fixes the compilation problem of the STM library in WASM
-
Finally, during our team session, we have mainly discussed about the P2P network for Mithril. We have investigated a draft of a possible design for introducing P2P networking and the possible technologies that we could use to support this design. We have decided to start by implementing a PoC for a Mithril relay:
- Time box the implementation of a first prototype in Rust with libp2p
- The idea is to get acquainted with the library and the constraints of operating a P2P network for Mithril
- We intend to get a working demo, and also to point out the important questions/difficulties we will need to sort out to release it on the
mainnet
- Some of these questions are:
- Do we need to authenticate messages sent on the network (with KES signatures e.g.)?
- How do we have security and reliability for the network?
- How do we handle the peers discovery (self discovery or by using a symmetric approach to Cardano relays)?
- Here is a draft of the plan we have in mind:
- Setup a Mithril relay in Rust that acts as a proxy (replaces the current Squid implementation)
- Make the Mithril relay catch signatures sent from the signers and publish them on a P2P network
- Add a consumer of the signatures in the aggregator
- Assess a problems/difficulties (identified during the implementation phase)
- Conduct a risk analysis and get feedback from networking experts
- Prepare a testnet deployment with testing SPOs and with multiple aggregators producing certificates
- Work on other features: client and aggregator use peer discovery to select an aggregator, ...
- We will create an issue and start working on it next week
- Today, we have been working on these issues:
- Make mithril-client crate a library #1141: the PR rework client to export mithril API #1291 has been created and is pending review. We should merge it shortly
-
ProtocolKeyRegistration creates performance bottleneck in aggregator #1187: we have paired on the design of the new
EpochDataService
that will provide the computations at each epoch of the common data that do not need to be recomputed until the next epoch. Updates have been pushed to the branch djo/1187/aggregator_keyreg_bottleneck. A PR will be created shortly - Compute deterministic Cardano UTxO/transactions set PoC #1283: We are now able to compute a deterministic mapping of addresses and transaction hashes from the immutbale files. Updates have been pushed to the branch jpraynaud/1283-gather-blocks-tx-from-immutable
- Mithril networks infrastructure maintenance #1218: empty legacy buckets in GCP have been cleaned
-
Today we have worked on the following issues:
- Make mithril-client crate a library #1141: we have paired on this issue. Draft commits have been pushed to the branch ensemble/1141/client_api_snapshot_functions. A PR will be created shortly
- ProtocolKeyRegistration creates performance bottleneck in aggregator #1187: Draft commits have been pushed to the branch djo/1187/aggregator_keyreg_bottleneck. A PR will be created shortly
- Compute deterministic Cardano UTxO/transactions set PoC #1283: Draft commits have been pushed to the branch jpraynaud/1283-gather-blocks-tx-from-immutable
-
We have also worked on the following PRs:
- Upgrade dependencies #1289: the PR has been reviewed and merged
- Prettier formatter for explorer #1288: the PR has been reviewed and merged
- Fix mithril-stm WASM build #1290: the PR is pending review and will be merged shortly
-
Today, we have groomed the following issues of the iteration:
-
Also, we have worked on:
- Cache /signers/tickers calls in explorer #1286: the PR has been reviewed and merged. It closes the issue Add SPO tickers in explorer #1185
- Compute deterministic Cardano UTxO/transactions set PoC #1283: we have started working on the issue and retrieved the blocks and transactions from the immutable files. We have pushed the first draft on the branch jpraynaud/1283-gather-blocks-tx-from-immutable. We will keep working on it tomorrow
- ProtocolKeyRegistration creates performance bottleneck in aggregator #1187: we have started working on it. A PR will be created shortly
- Make mithril-client crate a library#1141: we have started working on it. A PR will be created shortly
-
Update Rust compiler in nix CI #1282: the issue is closed, and we now know how to update the
nix
CI for upgrading the Rust compiler
-
During our team session, we have discussed about:
- Decentralization and P2P: in order to start investigating and prototyping the decentralization of the protocol, we will start by working on a P2P Mithril relay. The idea is to replace the current Mithril relay (running squid under the hood) with a new
mithril-relay
node that will be responsible to broadcast single signatures to a P2P network (and also to a legacy HTTP aggregator endpoint). In order to do that we will start working on a PoC next week and try to implementlibp2p
pub/sub queues (and maybe KV store) as well as peer discovery. We want in particular to create a node that could be (re)used by a Hydra node - Light Wallet use-case: we have discussed about how to sign transaction history of the Cardano chain (and/or UTxO set), and how to make the aggregator aware of the transactions attached to an address and produce a cryptographic proof of this history
- Decentralization and P2P: in order to start investigating and prototyping the decentralization of the protocol, we will start by working on a P2P Mithril relay. The idea is to replace the current Mithril relay (running squid under the hood) with a new
-
We have paired on the issue Add SPO tickers in explorer #1185: a new PR that updates the explorer to display the SPO tickers has been reviewed and will be merged shortly. This will close the issue
-
The PR Update flake.lock #1281 has been reviewed and merged. It fixes a problem with the Rust compiler version used by the nix CI
-
The PR Upgrade Rust 1.73.0 #1285 has been created that fixes clippy warnings raised with the new version of Rust
1.73.0
. It will be reviewed and merged shortly -
We have created the following issues:
-
We have also worked on the demo preparation and the sprint planning for the next iteration
-
Today we have worked on the following issues:
-
Add SPO tickers in explorer #1185: we have paired on this issue
- Add signers ticker automatic import process + /signers/tickers route to aggregator http server #1276: the PR has been reviewed and merged
- Deploy infrastructure for SPO tickers #1279: the PR has been reviewed and merged
- A new PR will be created shortly with the modifications of the explorer so that it can use the new tickers list route that has been deployed
- Configure status page and alerting #1277: a status page has been created at https://mithril.cronitorstatus.com/ and some alerting has been setup. Also the PR Add Mithril networks status page in website footer #1278 has been reviewed and merged: it adds a link to the status page on our website
- Upgrade dependencies #1274: the PR Upgrade dependencies #1275 has been reviewed and merged. This closes the issue and security alerts that we had received on the project
-
Add SPO tickers in explorer #1185: we have paired on this issue
-
Additionally, we have started investigating some compilation problems that we have faced while building the STM library in WASM. We will keep working on that shortly
-
Finally, we have worked on the demo path:
- Update on Mithril Mainnet Beta
- What's new in distribution
2337
- Even faster Cardano node bootstrap
- Showcase of the SPO tickers displayed in the explorer
- Showcase of the proposal for Mithril in a light wallet
- Showcase of a light Mithril client running in a browser
- Showcase of the benchmark tool for the aggregator
- Today, we have worked on the following issues:
- Add SPO tickers in explorer #1185: Changes have been published to the branch ensemble/1185/add-spo-tickers-in-explorer, and a new PR will be created shortly
- Spike: Run client in browser WASM PoC #1254: We have pushed updates on the branch ensemble/1254-poc-wasm-client: The page that verifies a Mithril certificate is now configurable via the query string and it has been linked in the explorer. The issue has been closed.
- [Mithril Light Wallet Feature Draft]: We have completed the redaction of the first draft of the discussion Implement Mithril in a light wallet #1273
- Upgrade dependencies #1274: the PR Upgrade dependencies #1275 is pending review and will be merged shortly
- Fix devnet Mithril Docker images #1272: the issue has been created
-
Today, we have worked on the following issues:
- Add SPO tickers in explorer #1185: Changes have been published to the branch ensemble/1185/add-spo-tickers-in-explorer, and a new PR will be created shortly
- Spike: Run client in browser WASM PoC #1254: A new branch has been created that cleans up the previous work ensemble/1254-poc-wasm-client, it adds display in the browser of certificate chain verification steps. We will keep working on it tomorrow
- [Mithril Light Wallet Feature Draft]: the redaction of the issue is in progress, and will be completed shortly. Once completed, a discussion will be created.
- [Benchmark aggregator performances]: some benchmarks have been run following the implementation of a temporary fix for ProtocolKeyRegistration creates performance bottleneck in aggregator#1187. The ingestion throughput of single signatures is much better and comparable to the ingestion throughput of signer registrations, However, the aggregator stress tests fail at the same client concurrency levels, which seem to indicate a problem with locks on the database connection. We will investigate further this bottleneck and create a new issue if needed
-
During our team session, we have talked about the foloowing subjects:
- How to compute UTxO set for mainnet and verify it when the
--whole-utxo
option of thequery utxo
command fails on the mainnet: we can either work with thedbsync
version to retrieve the full set, or work with some sampling and verification based on thequery utxo
on specific address which seems to work - Mithril relay default configuration: we will create a security advisory following the fix that updates the recommended listening port of the relay
- Shallow node: we have discussed about implementing a shallow version of the Cardano node. The principle is that it would be bootstrapped by a mithril client. It would be called (via socket) by the Cardano node (forked version) when missing blocks are detected and would provide these certified information back to the Cardano node
- UTxO certification for light wallet use case: we have talked about the current design proposition that will be released shortly. Also we have discussed about the current difficulty of signing data that is not finalized on the Cardano chain. An idea that we had (and that we will attempt to investigate further with researchers) is that the data signed by a Mithril quorum under full security protocol parameters should be sufficient to reduce the number of blocks needed to make sure the chain is final.
- How to compute UTxO set for mainnet and verify it when the
-
Today we have paired on the following issues:
- Spike: Run client in browser WASM PoC #1254: we have recreated a PoC in a different branch in order to use a more recent template for the WASM client (we were having compilation and run issues with previous one). A new branch ensemble/1254/poc_wasm_client has been created in that manner. We have achieved the validation of a full certificate chain from one certificate up to the genesis certificate 🎉 (relying on the browser to retrieve the certificates form the aggregator, and with validation of the cryptographic part only of the certificate). We will polish the PoC next week in order to make it usable in a demo
- Add SPO tickers in explorer #1185: Development are in progress, and a branch has been created ensemble/1185/add-spo-tickers-in-explorer. A PR will be created next week
-
Also, we have checked if some KES keys needed to be rotated, but this was not the case on any Mithril network
- Here are the issues we have worked on today:
- Spike: Run client in browser WASM PoC #1254: we have kept working on the draft PR first setup #1269 in order to verify the full certificate chain in the browser
- Add a non 404 status code on the aggregator endpoint #1103: the PR Add a JSON message response on /aggregator endpoint calls #1270 has been reviewed and merged, which closes the issue
- Add SPO tickers in explorer #1185: we have paired on this issue and re-challenged the original design in order to provide a better user experience. A PR will be created shortly
- Benchmark aggregator performances #1220: the PR Benchmark aggregator performances #1271 has been reviewed and merged. This closes the issue. We now have tool to benchmark the performances of the aggregator and analyze them: a spreadsheet is filled with the first benchmarks that we have run that gives us good insights on the zones where the aggregator has bottlenecks. We will keep running some benchmarks and spot the most important bottlenecks to fix in order to reach better performances. Here is an example of the visualization of the statistics we retrieve from the benchmarks:
-
Today, we have worked on the following issues:
-
Errors refactoring #798: the issue has been closed 🎉
- Add anyhow in integration & e2e tests #1264: the PR has been reviewed and merged
- Add errors standards ADR #1266: the PR has been reviewed and merged. The ADR is available at https://mithril.network/doc/adr/6
- Use source attribute in errors #1265: the issue has been closed with the merge of the PR Use source attribute in wrapped errors #1268
- Create a SPO checklist for KES keys update #1267: the PR Enhance signer setup guide for SPO #1263 has been reviewed and merged, which closes the issue
- Spike: Run client in browser WASM PoC #1254: we have paired on this exploratory issue. We have been able to build and run a very light binary embedding the STM library and verifying the validity of a Mithril multi-signature in a browser 🥳. A draft PR first setup #1269 has been created and will be enhanced shortly with a README file detailing a process to reproduce the WASM compilation and run of the binary
- Add a non 404 status code on the aggregator endpoint #1103: the draft PR Add a JSON message response on /aggregator endpoint calls #1270 has been created and should be merged shortly
- Benchmark aggregator performances#1220: the draft PR Benchmark aggregator performances #1271 has been created and we will keep working on it this week
-
Errors refactoring #798: the issue has been closed 🎉
-
Finally, we have created the following issues:
-
Today we have worked on the following issues:
-
Errors refactoring #798:
- Add anyhow context for mithril-client/services #1256: the PR has been reviewed and merged
- remove store error #1257: the PR has been reviewed and merged
- Get rid of string error comparison in tests #1260: we have paired on the PR that has been reviewed and merged
- Spike: Run client in browser WASM PoC# 1254: we have started working on the PoC
- Benchmark aggregator performances #1220: we have started implementing a tool to run multiple stress tests and gather statistics about them
-
Errors refactoring #798:
-
We have also worked on some enhancement PRs:
- Fix explorer display units #1261: the PR has been reviewed and merged
- Enhance signer setup guide for SPO #1263: the PR is under review and will be merged shortly
-
Today we have worked on the following issues:
-
Release new 2337 distribution #1219: the
2337.0
has been released and deployed to therelease-mainnet
andrelease-preprod
networks. A fix has been created for the terraform composite deployment action with the PR Fix terraform composite action #1259 which has been merged, and the documentation has been rotated with the PR Update current documentation #1258 which has been merged -
Errors refactoring #798:
- Add anyhow context mithril-client/aggregator-client #1250: the PR has been reviewed and merged
- Add anyhow context in mithril-client/commands #1252: the PR has been reviewed and merged
- Add anyhow context in mithril-client/dependencies #1253: the PR has been reviewed and merged
- Use anyhow in signer single-signer #1255: the PR has been reviewed and merged
- Add anyhow context for mithril-client/services #1256: the PR has been reviewed and will be merged shortly
- remove store error #1257: the PR is being reviewed and will be merged shortly
- Client traffic creates performance bottleneck in aggregator #1207: the PR Fix aggregator stress test bottleneck with client traffic #1251 has been reviewed and merged, which closes this issue
-
Release new 2337 distribution #1219: the
-
We have also groomed the following issues:
-
Finally, during our team session, we have discussed about the following topics:
- Compiling the STM and client libraries to WASM, and make them run in the browser as one step toward implementation of a light wallet feature for Mithril
- Compute the Utxo set from Mithril signer and aggregator nodes:
- We will make multiple attempt that will probably be rolled-out at different times
- We need to get a qualification method to verify that we compute the Utxo set the same way with the different methods
- We need to summarize our attempts in a table that will help us read out the pros/cons of each method (e.g. new dependency needed, complexity of computation, depends on a feature of Cardano node not available yet, handling future versions of the protocol/blocks, max frequency of computation)
- A touchy question is related to the finality of the data vs the need for end users to get access to fresh information about their Utxos
- Possibilities we will try to explore are:
- Use the immutable files and read the blocks from them to compute the Utxo set at given block number
- Use the ledger events caught from a modified version of the Cardano node and stored in a file
- Use an indexer (e.g.
kupo
oroura
) - Read the ledger database
- Prepare an all in one package distribution to deploy Hydra state channels in "one click" that would use Mithril to bootstrap the Cardano nodes
- Today we have worked on the following issues:
-
Release new 2337 distribution #1219: everything is working as expected and we should release the
2337
distribution early next week -
Errors refactoring #798:
- Implement anyhow context in aggregator/signer_register #1243: the PR has been reviewed and merged
- Implement anyhow context in aggregator/snapshotter #1246: the PR has been reviewed and merged
- refactored aggregator client errors #1245: the PR has been reviewed and merged
- Use anyhow in aggregator multi-signer #1247: the PR has been reviewed and merged
- refactor common sqlite errors #1249: the PR has been reviewed and merged
- Add anyhow context mithril-client/aggregator-client #1250: the PR is being reviewed and will be merged shortly
- Implement anyhow context in aggregator/snapshotter #1246: the PR Fix aggregator stress test bottleneck with client traffic #1251 which is pending review
-
Release new 2337 distribution #1219: everything is working as expected and we should release the
- Today we have worked on the following issues:
-
Record statistics about downloaded snapshot in aggregator #1127: this issue has been closed
- download statistics #1239: the PR was reviewed and merged
- Fix record download statistics #1244: the PR was reviewed and merged, it fixed the previous PR which was not working properly as events were not recorded in the agggregator
-
Release new 2337 distribution #1219: a new distribution pre-release
2337.0-pre
has been created and deployed to thepre-release-preview
network. It has also been announced on Discord, and it should be released early next week -
Errors refactoring#798:
- Implement anyhow context in aggregator runtime #1240: the PR has been reviewed and merged
- Implement anyhow context in aggregator/services #1242: the PR has been reviewed and merged
- Implement anyhow context in aggregator/signer_register #1243: the PR is under review and will be merged shortly
- refactored aggregator client errors #1245: the PR is pending review and will be merged shortly
- Implement anyhow context in aggregator/snapshotter #1246: the PR is pending review and will be merged shortly
-
Record statistics about downloaded snapshot in aggregator #1127: this issue has been closed
- Today we have worked on the following issues:
-
Errors refactoring #798: we have worked on the following PRs:
- Implement anyhow context for aggregator configuration #1236: the PR was reviewed and merged
- Implement anyhow context: dependency_injection #1237: the PR was reviewed and merged
- Implement anyhow context in aggregator runtime #1240: the PR has been created and is pending review
- Implement anyhow context in aggregator/services #1242: : the PR has been created and is pending review
- Record statistics about downloaded snapshot in aggregator #1127: the PR download statistics #1239 has been reviewed and will be ready to be merged shortly
- Upgrade dependencies #1238: the PR Upgrade dependencies #1231 has been reviewed and merged
- Release new 2337 distribution #1219 : the PR Upgrade client version to 0.4.0 #1241 has been reviewed and merged
-
Errors refactoring #798: we have worked on the following PRs:
- Today we have worked on the following issues:
-
Errors refactoring #798: we have worked on the following PRs
- Implement anyhow context for digesters #1228: the PR was reviewed and merged
- Implement anyhow context for common/protocol #1229: the PR was reviewed and merged
- Implement anyhow context for artifact builder #1232: the PR was reviewed and merged
- Use anyhow in common/crypto_helper #1224: the PR was reviewed and merged
- Implement anyhow context for aggregator configuration #1236: the PR has been created and is pending review
- Upgrade dependencies #1231: the PR has been reviewed and merged
- Record statistics about downloaded snapshot in aggregator #1127: we paired on this issue to fix some tests, and a PR should be created shortly
- Client traffic creates performance bottleneck in aggregator #1207: we are still investigating the source of the problem. We will attempt to create a fix shortly
-
Errors refactoring #798: we have worked on the following PRs
-
Today we have worked on the following PRs:
- Use compression parameters in the terraform deployments #1222: the PR has been merged and this closes the issue Add snapshot compression parameters in infrastructure deployments #1200
- Add aggregator CDN support in infrastructure #1206 the PR has been merged and this closes the issue Add Cloudflare protection of infrastructure #986
- Implement anyhow context in mithril-aggregator database #1213: the PR has been reviewed and merged
- Implement anyhow context for signable_builder #1226: the PR has been reviewed and merged
- Implement anyhow for common store #1227: the PR has been reviewed and merged
- Implement anyhow context for digesters #1228: the PR is ready for review and will be merged shortly
- Implement anyhow context for common/protocol #1229: the PR is ready for review and will be merged shortly
- Implement anyhow context for artifact builder #1232: the PR is ready for review and will be merged shortly
- Upgrade dependencies #1231: the PR is ready for review and will be merged shortly
-
We have also created the following issues:
- Today we have worked on the following PRs:
- Add aggregator CDN support in infrastructure #1206: we reviewed the PR which should be merged shortly
- Use compression parameters in the terraform deployments #1222: the PR has been created and is under review
- Implement anyhow context in mithril-aggregator database #1213: the PR has been reviewed and some modifications will be done to it
- Implement anyhow context for adapters #1221: the PR has been reviewed and merged
- Use anyhow in Era framework #1223: the PR has been created, reviewed and merged
- Use anyhow in Cardano crypto helper #1224: the PR has been created and is pending review
- refacto message parts #1225: the PR has been created and is pending review
-
Today we have worked on the following PRs:
- [Implement anyhow context for adapters #1221: the PR has been created and is ready for review
- Implement anyhow context in mithril-aggregator database #1213: the PR has been created and is ready for review
- Use compression parameters in the terraform deployments #1222: the draft PR has been created
-
We have also created the following issues:
-
Today we have worked on the following PRs:
- add database migration for snapshots #1209: the PR was merged
- Add snapshot archive compression algorithm in explorer #1210: the PR was created, reviewed and merged
- display cardano node version in client #1211: the PR has been created, reviewed and merged. This closes the issue Make Cardano node version part of the Mithril network configuration #947
- cardano node version doc #1216: the PR was created, reviewed and merged
- Enhance aggregator stress tester performances #1214: the PR was created, reviewed and merged
- compare for avk #1217: the PR has been created, reviewed and merged
- [Implement anyhow context in mithril-common database #1212]: the PR has been created, reviewed and merged
- Implement anyhow context in mithril-aggregator database #1213: the draft PR has been created
-
We have also worked on the demo path:
- Presentation of the mainnet beta summary of signers registered into the protocol
- Showcase of the new registered signers page on the explorer
- Presentation of the new
2335.0
distribution - Presentation and showcase of the enhancements of the client
- Presentation and showcase of the enhancements of the snapshots
# Demo: Mithril Clients and Snapshots Enhancements
---
# Setup demo
## Download Previous Mithril Client
wget https://github.com/input-output-hk/mithril/releases/download/2331.1/mithril-2331.1-linux-x64.tar.gz
tar -xzf mithril-2331.1-linux-x64.tar.gz mithril-client
rm -f mithril-2331.1-linux-x64.tar.gz
chmod u+x mithril-client
mv mithril-client mithril-client-2331
./mithril-client-2331 --version
## Download source
git clone https://github.com/input-output-hk/mithril.git
#or
git clone git@github.com:input-output-hk/mithril.git
## Build new version from source
cd mithril/
cargo build --release -p mithril-client
cp target/release/mithril-client ../
cd ..
./mithril-client --version
---
# Demo
## Watch 'data' directory
watch -n 2 -c "ls -al ./data"
## Watch 'data/db' directory
watch -n 2 -c "du -h ./data/db"
### Connect to release-preprod
export NETWORK=preprod
export AGGREGATOR_ENDPOINT=https://aggregator.release-preprod.api.mithril.network/aggregator
export GENESIS_VERIFICATION_KEY=$(wget -q -O - https://raw.githubusercontent.com/input-output-hk/mithril/main/mithril-infra/configuration/release-preprod/genesis.vkey)
export SNAPSHOT_DIGEST=$(curl -sL $AGGREGATOR_ENDPOINT/artifact/snapshots | jq -r '.[0].digest')
## Previous version need to identify latest snapshot first, and then download it
./mithril-client-2331 snapshot list
echo $SNAPSHOT_DIGEST
rm -rf ./data && time ./mithril-client-2331 snapshot download $SNAPSHOT_DIGEST --download-dir=./data
rm -rf ./data && time ./mithril-client-2331 snapshot download latest --download-dir=./data
## New version has the 'latest' snapshot digest magic value
./mithril-client snapshot show latest
rm -rf ./data && time ./mithril-client snapshot download latest --download-dir=./data
## New version has machine readable progress information
rm -rf ./data && ./mithril-client snapshot download latest --json --download-dir=./data
## Previous version does not stream download/unpacking
rm -rf ./data && time ./mithril-client-2331 snapshot download $SNAPSHOT_DIGEST --download-dir=./data
## New version stream download/unpacking
rm -rf ./data && time ./mithril-client snapshot download latest --download-dir=./data
## Connect to pre-release-preview
export NETWORK=preview
export AGGREGATOR_ENDPOINT=https://aggregator.pre-release-preview.api.mithril.network/aggregator
export GENESIS_VERIFICATION_KEY=$(wget -q -O - https://raw.githubusercontent.com/input-output-hk/mithril/main/mithril-infra/configuration/pre-release-preview/genesis.vkey)
## Show latest snapshot information in the new version
./mithril-client snapshot show latest
## Connect to testing-preview
export NETWORK=preview
export AGGREGATOR_ENDPOINT=https://aggregator.testing-preview.api.mithril.network/aggregator
export GENESIS_VERIFICATION_KEY=$(wget -q -O - https://raw.githubusercontent.com/input-output-hk/mithril/main/mithril-infra/configuration/testing-preview/genesis.vkey)
## Show latest snapshot information in the new version, and unpack with zstandard
./mithril-client snapshot show latest
rm -rf ./data && time ./mithril-client snapshot download latest --download-dir=./data
- Finally, we have worked on the sprint planning for the next iteration
-
Today we have worked on the following PRs:
- Add Cardano Node version to the artifacts #1203: the PR has been reviewed and merged. This closes the issue Add aggregator Cardano node version in snapshot artifact #948
- Stress test aggregator phase 2 #1194: we have paired, reviewed and merged this PR. This closed the issue Design & implement stress test tool for aggregator - phase 2 #1155
- Implement anyhow context for certificate chain #1205: the PR has been reviewed and merged
- add database migration for snapshots #1209: the PR has been reviewed and will be merged shortly
- Add snapshot archive compression in explorer #1210: the PR is pending review and wil be merged shortly
-
We have also created the following issues:
- Client traffic creates performance bottleneck in aggregator#1207: the issue has been created
- Allow clients to check and download immutable DB incrementally #1208: the epic has been created
-
Today, we have released the new
2335.0
distribution, which has been deployed on the aggregators of therelease-mainnet
andrelease-preprod
networks -
We have also worked on the following PRs:
-
Today, we have released the new
2335.0
distribution, which has been deployed on the aggregators of therelease-mainnet
andrelease-preprod
networks -
We have also worked on the following PRs:
- Add anyhow context for api_version #1201: the PR has been reviewed and merged
- Implement anyhow context for beacon_provider #1202: we have paired on the PR which has been reviewed and merged
- Implement anyhow context for certificate chain #1205: we have paired on the PR which is under review and will be merged shortly
- Update current documentation for distribution 2335.0 #1204: the PR has been reviewed and merged
- Add Cardano Node version to the artifacts #1203: we have paired on the PR which is under review and will be merged shortly
- Add aggregator CDN support in infrastructure #1206: the PR has been created and is ready for review
- Today we have paired on the issues:
-
Design & implement stress test tool for aggregator - phase 2 #1155:
- The PR Stress test aggregator phase 2 #1194 has been updated with the first draft version of the fake clients traffic. We wil keep working on it shortly
- We have discussed about the implementation of another complementary stress test with only client traffic at large scale: this would be done on a dedicated stress test aggregator and the stress tester would be a SaaS solution that we still need to select
-
Errors refactoring #798: we have refined the list of the modules to refactor and paired on the first modules:
api_version
which is refactored in the PR Add anyhow context for api_version #1201 which is ready to be merged, and a PR that will be created shortly for thebeacon_provider
- Add aggregator Cardano node version in snapshot artifact #948: work is in progress, and a new PR will be created shortly
- Add Cloudflare protection of infrastructure #986: the terraform infrastructure modification is almost ready and a PR will be created shortly
-
Design & implement stress test tool for aggregator - phase 2 #1155:
-
Today we have worked on the following PRs:
- Use zstandard compression for snapshot archives #1195: the PR has been reviewed and merged, which closes the issue Use zstandard compression for snapshot archives #876
- Upgrade ed25519-dalek to v2 #1189: the PR has been merged and closes the issue Update ed25519-dalek to 2.0.0 #1188
- Fix Mithril network compatibility in unstable release #1196: the PR has been created, reviewed and merged
-
We have also created a new pre-release
2335.0-pre
distribution that has been deployed onpre-release-preview
. We expect to release the distribution early next week -
Additionally, we have worked on the following issues:
- Create Cardano node upgrade runbook #1197: the issue was crated
- Rename SecretKey types to SigningKey #1198: the issue was crated
- Add unpacked database size in snapshot artifact #1199: the issue was crated
- Add snapshot compression parameters in infrastructure deployments #1200: the issue was crated
-
Finally, we have check ed if some KES keys needed to be rotated, but this was not the case on any Mithril network
- Today we have worked on the following issues:
- Errors refactoring #798: we have paired on this issue and we have worked on defining a methodology to rollout the refactorign on all the nodes. A first PR has been created and merged Add common error: CodecError #1193 in that manner. We are assessing the list of modifications to be done and we will create a series of atomic PRs in order to proceed to the update
- Use zstandard compression for snapshot archives #876: we have paired on this issue and a PR will be created shortly
- Design & implement stress test tool for aggregator - phase 2#1155: we have paired on this issue and a draft PR has been created Stress test aggregator phase 2 #1194. We will keep working on it shortly
- Add aggregator Cardano node version in snapshot artifact #948: a new PR will be created shortly
- Add Cloudflare protection of infrastructure#986: we have found a way to circumvent the problem of ownership of GCP bucket that represents domain names with a service account. A PR will be created shortly
- Post deployment mainnet infrastructure#1091: we have created the dashboards for all the networks in the new Grafana instance, and we have explored reporting and alerting. Also logs/metrics ingestion have been created in the GitHub environments and will be used with the next release deployment
- Failed to restore recent snapshot with strange error #1160: the issue has been closed following the merge of the PR Fix disk space warning not displayed in client #1192. It looks like a false positive, but we will keep an eye on it and verify that it does not occur again
- Today we have worked on the following issues:
- [FR] - Retrieve Cardano node version with Cardano CLI #224: the issue was created in the Cardano cli repository, and relates to issue Add aggregator Cardano node version in snapshot artifact #948
-
Add aggregator Cardano node version in snapshot artifact #948: we are struggling with the retrieval of the Cardano node version, and the attempts that we have made to circumvent the problem have not been successful. We have thus created an issue on the Cardano cli repository to retrieve this information from the
cardano-cli
directly. In the mean time, we will implement a turnaround with a declarative value of the Cardano node set when the aggregator is launched and that follows the current version deployed by our terraform deployment scripts. A draft PR has been created add get_version in chain observer #1190 - Update ed25519-dalek to 2.0.0 #1188: the PR Upgrade ed25519-dalek to v2 #1189 has been created and reviewed. We are waiting for another review form the cryptographers before merging it
- Errors refactoring #798: we have paired on this issue and we will pair again tomorrow
- Use zstandard compression for snapshot archives #876: we have paired on this issue and we will keep pairing tomorrow
- Failed to restore recent snapshot with strange error #1160: the PR Fix disk space warning not displayed in client #1192 has been created and is ready for review
- Add SPO tickers in explorer #1185: we have groomed the issue
- Add a non 404 status code on the aggregator endpoint#1103: we have groomed the issue
- Create a test network on Sanchonet #1173: we have groomed the issue
-
Today we have worked on the following PRs:
- Download unpack snapshots simultaneously #1183: the PR has been reviewed and merged. It closes the issue Make client download and extract the archive simultaneously #1115 💪
- Fix flaky end to end test #1181: the PR has been reviewed and merged
- Fix latest digest usage in documentation #1182: the PR has been reviewed and merged
- Aggregator stress test refactoring #1186: the PR has been created and is ready to be reviewed
-
We have also worked on the following issues:
- Add aggregator Cardano node version in snapshot artifact #948: we have noticed that it's a bit tricky to retrieve the Cardano node version from the Cardano cli. This means that we need to add an access to the Cardano node binary from the aggregator. A PR will be created shortly
- Add certificates list in explorer #1184: the issue was created
- Add SPO tickers in explorer#1185: the issue was created
- ProtocolKeyRegistration creates performance bottleneck in aggregator #1187: the issue was created
- Update ed25519-dalek to 2.0.0#1188: the issue was created
-
During our team session, we have also paired on the issue Design & implement stress test tool for aggregator - phase 2#1155. The first step is to refactor the code to make it more readable and usable in a first PR. Then we will create the traffic load from random clients, and finally we will work on a more fine-grained request sender (and statistics its gathers)
-
Today we have worked on the following PRs:
- Fix run-signer-node doc #1175: the PR was reviewed and merged. It closes the issue Use the /signers/registered route to verify if a signer is registered #1152
- Rust version 1.72.0 : fix cargo clippy warning & update dependencies #1176: the PR has been reviewed and merged
- Add network compatibility table to autogenerated releases #1177: the PR has been reviewed and merged. It closes the issue Add target networks blocks in release notes #1151
- Replace git switch with git checkout in docs #1178: the PR has been reviewed and merged. It fixes the Fix docs git checkout command #1174
- Fix verify archive in aggregator Snapshotter #1179: the PR has been reviewed and will be merged shortly
-
We have also worked on the sprint planning, and we have created the following issues:
- Today we have worked on the following issues:
- Use zstandard compression for snapshot archives#876: More work on the POC has been made, we explored ZStandard dictionary & multithreading (only the later seems to have value in our case) + we also added a "stream" scenario in order to keep the capacity to report the download/unpack progress.
The POC findings are summarized in the following file: https://github.com/dlachaumepalo/download-extract-poc/blob/main/perf.md
- Today we have worked on the following issues:
- Provide progress information with --json option in Client#1095: The PR [#1172] has been merged.
- Use zstandard compression for snapshot archives#876: A straight to the point POC has been made to test zstandard usage in rust and its ability to be streamed.
- Today we have worked on the following issues:
- Refactor (de)serialization of crypto entities #668:
- Provide progress information with --json option in Client#1095: A PR [#1172] has been submitted and reviewed. It will be merged tomorrow then we will ask from feedback from the Lace desktop team to see if it answer their needs.
Github actions are back to normal.
- Today we have worked on the following issues:
- Refactor (de)serialization of crypto entities #668:
- Use the /signers/registered route to verify if a signer is registered#1152: A PR [#1169] has been submitted, reviewed and merged. The updated documentation is available here.
Today was marked by massive slowdown of the upload-artifact
and download-artifact
that we use a lot in our CI pipelines, making our CI barely usable (ie: a workflow that usually take 5 minutes is at 7 hours of running time right as I'm writting those lines).
The problem is github side, as other users have reported the same issue, so we can do nothing but wait.
- Today we have worked on the following issues:
- Simplify logs on the Signer/Aggregator #1106: The related PR #1165 has been reviewed and merged.
-
Refactor (de)serialization of crypto entities #668:
- A PR, #1167, have been made for two more types (GenesisSecretKey and GenesisVerificationKey) and is reviewed and is awaiting to be merged.
- Work have begun for the Aggregate Verification Key, a PR should be submitted tomorrow.
Also a PR [#1165] have been submitted by Yvan Sraka that should stabilize the hydra CI build (those have been flaky for some weeks). Many thanks to him for his time.
- Today we have worked on the following issues:
-
Refactor (de)serialization of crypto entities #668:
- A PR for the verification key signature #1164 have been submitted, reviewed and merged.
- A regression was identified on testing-preview after merging #1164, a fix have been made with #1166 but we need to monitor the environment to see if this indeed solve the issue.
- Advancement has also be made for two other types (GenesisSecretKey and GenesisVerificationKey), a PR should be submitted next Monday. With those two types we will be at 8/13 types converted.
- Simplify logs on the Signer/Aggregator #1106: The main work is finished, the related PR #1165 is awaiting review.
-
Refactor (de)serialization of crypto entities #668:
Also we merged a PR for the routine task of upgrading our dependencies (#1163).
- Today we have worked on the following issues:
- Refactor (de)serialization of crypto entities #668: A PR have been submitted and reviewed and merged.
- Errors refactoring #798: A PR has been submitted, reviewed and merged for the first task (making our common result and error alias of their anyhow equivalent).
We also split the logbook, extracting the second half of 2022 into a new page, and extracting the first half of 2023 into a new page too.
-
Today we have worked on the following issues:
- ECS-3156 Review glossary. Adjust capitalization and bolding. #1158 :the PR has been reviewed and merged.
- fnv/core verifier #939: the PR has been reviewed and merged.
- Download latest snapshot & stake distribution if latest is mentioned in Mithril Client commands #1110: the PR has been reviewed and merged.
- Refactor (de)serialization of crypto entities #668: Works have started, and good progress was made, for the Operational Certificates.
- Errors refactoring #798: Works have started, and good progress was made, on the first task (making our common result and error alias of their anyhow equivalent).
-
Also the following issue have been reported:
- Failed to restore recent snapshot with strange error #1160: investigation have started but this will probably be difficult to solve.
- Today we have worked on the following issues:
- Create explorer page with registered signers #1097: After some polishing and the addition of a Stake component the PR have been merged.
- fnv/core verifier #939: We provided some help on a issue with hashes of the aggregate signatures making some tests fails.
- ECS-3156 Review glossary. Adjust capitalization and bolding. #1158 :the PR has been created and is awaiting reviews.
-
Today we have worked on the following issues:
- Create Production Infrastructure Runbook #1085: the issue has been closed with the merge of the PR Add network production runbooks for Aggregator #1086
- Create explorer page with registered signers #1097: good progress have been made and a PR should be created tomorrow
- Design & implement stress test tool for aggregator - phase 1 #991: the issue has been closed
- Design & implement stress test tool for aggregator - phase 2 #1155: the issue has been created
- Update stm README - Core verifier #1156: the issue has been created
-
We have also worked on the demo preparation and the sprint planning preparation
-
Today, we have released the new
2331.1
distribution, and deployed it to therelease-mainnet
andrelease-preprod
networks 💪 -
We have also worked on the following PRs:
- Upgrade explorer to next 13 #1149: the PR has been reviewed and merged. This also closes the bug issue The release-mainnet network does not show up in the explorer #1111
- Implement prometheus monitor for end to end tests #1139: the PR has been reviewed and merged
- Reorganize docs folder #1150: the PR has been reviewed and merged
- Better unpack error in client #1148: the PR has been reviewed and merged
- Add network production runbooks for Aggregator #1086: the PR will be ready to be reviewed and merged tomorrow
-
Additionally, we have created the following issues:
-
Finally, we have worked on the demo path: (https://miro.com/app/board/o9J_lKq5Szc=/?moveToWidget=3458764561204820777&cot=14)
- Mithril Mainnet Beta Release: figures and showcase
- Even Faster Bootstrap: showcase
- Aggregator Stress Test: design and showcase
-
Today we have created a new distribution pre-release
2331.1-pre
. We have deployed it to thepre-release-preview
network, and it works as expected. We will release it tomorrow -
We have also worked on the following PRs:
- Add snapshot archive verification #1138: the PR has been reviewed and merged. It fixes the bug issue Client fails to unpack some snapshot archive #1137
- Clean ssh keys of infrastructure #1142: the PR has been reviewed and merged
- Implement prometheus monitor for end to end tests #1139: the PR is ready to be reviewed. It will be merged shortly
- Add network production runbooks for Aggregator #1086: the PR is in draft and will be ready to be reviewed shortly
- Better unpack error in client #1148: the PR is ready to be reviewed and will be merged shortly
- Documentation PRs:
- TW review of references.md #1134: the PR has been reviewed and merged
- TW review of: aggregator.md & signer.md #1145: the PR has been reviewed and merged
- ECS-3077 Apply style guide, tighten some sentences. #1130: the PR has been reviewed and merged
- ECS-3078 review certificates.md, the description of the certificate c… #1135: the PR has been reviewed and merged
- ECS-3079 Review simulation document, apply style guide, some suggesti… #1136: the PR has been reviewed and merged
- ECS-3111 Apply style guide, minor changes. #1143: the PR has been reviewed and merged
- ECS-3112 Review architecture.md, apply style guide. #1144: the PR has been reviewed and merged
- ECS-3115 Review client.md, apply IOG style guide. #1146: the PR has been reviewed and merged
-
Additionally, we have worked on the following issues:
- Create explorer page with registered signers#1097: a new PR for the updated explorer will be created shortly
- Stabilize snapshot archive production in aggregator#1140: we have groomed the issue
- Make mithril-client crate a library#1141: the issue was created and groomed
- Some end to end tests are flaky in the CI#1147: the issue has been created
-
Finally, we have discussed about the explorer for which many ideas have been raised lately. We think that we should probably use these ideas to design a v2. We will probably need support from UI designer for this
-
Today we have worked on the following PRs:
- Add snapshot archive verification #1138: the PR is ready to be reviewed and includes a fix for the bug Client fails to unpack some snapshot archive #1137
- Add network production runbooks for Aggregator #1086: the PR is almost ready to be reviewed, and should be merged shortly
- Implement prometheus monitor for end to end tests #1139: the draft PR has been created and will be ready for reviwe shortly
- ECS-3077 Apply style guide, tighten some sentences. #1130: the PR has been reviewed and will be merged shortly
- TW review of references.md #1134: the PR has been reviewed and will be merged shortly
- ECS-3078 review certificates.md, the description of the certificate c… #1135: the PR has been reviewed and will be merged shortly
- ECS-3079 Review simulation document, apply style guide, some suggesti… #1136: the PR has been reviewed and will be merged shortly
-
Also, we have created the issue Stabilize snapshot archive production in aggregator #1140 that will provide along term fix to the creation of corrupted snapshot archives
-
Today we have created the following issues:
-
Client fails to unpack some snapshot archive #1137: we have discovered a problem on the archives that are produced by the
release-mainnet
network. We have been investigating the problem: we are able to reproduce the problem locally and are trying to understand the origin of the corruption of the archive. We will keep investigating next week - Display a summary of signers before the full list #1133
-
Client fails to unpack some snapshot archive #1137: we have discovered a problem on the archives that are produced by the
-
We have also worked on the following PRs:
- Speedup node bootstrap after client download #1132: reviewed and merged
- ECS-3077 Apply style guide, tighten some sentences. #1130: ready to be reviewed
- TW review of references.md #1134: ready to be reviewed
- ECS-3078 review certificates.md, the description of the certificate c… #1135: ready to be reviewed
- ECS-3079 Review simulation document, apply style guide, some suggesti… #1136: weady to be reviewed
-
We had planned to create a new pre-release for the
2331
distribution, but we decide to postpone it during the investigation of the bug with the corrupted archives. We will probably create this new pre-release early next week, which will not impact the expected date of release -
Additionally, we have groomed the issues:
-
Finally, we have checked if KES keys needed to be rotated on the test networks, which was not the case
-
Today we have created a new pre-relase distribution
2331.0-pre
that we are currently testing and that we expect to be released early next week -
Additionally, we have worked on the following PRs:
- Ingest metrics/logs in Grafana #1128: the PR has been reviewed and merged, this closes issue Ingest mainnet metrics/logs in Grafana #1122
- Add signers registered route to aggregator #1129: the PR has been created, reviewed and merged 💪
- Speedup node bootstrap after client download #1132: the PR has been partially reviwed and should be merged shortly
- ECS-3077 Apply style guide, tighten some sentences. #1130: the PR has been created and partially reviewed. It should be merged shortly
-
We have also created the new issue Add a clean file to extracted database in client #1131: with this issue, the client will add a
clean
file to the extracted database folder, and thus allow the Cardano node to startup much rapidly by skipping the immutable files validation (which is not mandatory). Early tests have shown a drastic improvement in the startup time from more than1h
to less than5min
🥳 💪 -
Finally, we have worked with the Hydra team to prepare a workshop where Mithril andHydar will be showcased
-
Today we have worked on the following PRs:
- Aggregator Stress Test - Phase 1 #1062: we have paired on the PR and merged it. It closes the phase 1 of the issue Design & implement stress test tool for aggregator #991
- Simplify epoch type by implementing Deref & TryInto #1126: the PR has been reviewed and merged
- Ingest metrics/logs in Grafana #1128: the PR is ready to be reviewed
-
We have also worked on the following issues:
- Create explorer page with registered signers #1097: we have groomed the issue, and we have also started implementing the new route of the aggregator, and we will attempt to include it in the next distribution
- Record statistics about downloaded snapshot in aggregator #1127: we have created and groomed the issue
- Simplify logs on the Signer/Aggregator #1106: we have groomed the issue
- Use zstandard compression for snapshot archives #876: we have groomed the issue
- Signer can't sign with Invalid signature for party error#1125: we have closed the issue
-
Today we have worked on the following PRs:
- Protocol key for Multi and Genesis signature #1124: we have partially paired on this PR which has been reviewed and merged
- Update README #1118: the PR has been reviewed and merged. This closes the epic Release mainnet Mithril network #918
- TW review of mithril-aggregator.md #1117: the PR has been reviewed and merged
- TW review of mithril-signer.md #1120: the PR has been reviewed and merged
- TW review of mithril-client.md #1121: the PR has been reviewed and merged
- Getting started: capitalization edits #1119: the PR has been reviewed and merged
- Update current documentation #1123: the PR has been reviewed and merged
- Simplify epoch type by implementing Deref & TryInto #1126: the PR has been created and is ready to be reviewed
-
We have also worked on the following issues:
-
release-preprod network stopped producing certificates #1114: a quick fix has been implemented , and a long term fix (Cardano node upgrade to
8.1.2
) will be delivered with the next distribution -
Signer can't sign with Invalid signature for party error #1125: the issue was created following the report of a problem by a SPO on the
mainnet
. The problem was identified and a fix has been implemented. We are waiting for a confirmation that the fix works with the next snapshots produced by the network. We have also crated a new Troubleshooting label for issues of this type that will help us build a knowledge base - Ingest mainnet metrics/logs in Grafana #1122: a PR will be created shortly
-
release-preprod network stopped producing certificates #1114: a quick fix has been implemented , and a long term fix (Cardano node upgrade to
-
As expected, the
release-mainnet
has produced its first multi-signatures and certificates on themainnet
yesterday 🎉 💪 🚀 !!! -
We have noticed a bug on the
release-preprod
network which is no longer producing certificates as detailed in this bug issue release-preprod network stopped producing certificates #1114. The problem has been mitigated and 2 certificates have been produced for the epoch 85. However, we are still investigating some troubles with the Cradano nodes not synchronizing properly -
We have worked on the following PRs:
- Aggregator Stress Test #1062: we have mob programmed on the PR and made good progress on signing immutable files and verifying that the certificate & artifacts are produced. We'll keep working on it this week during another session
- Factorize hardcoded keys #1109: the PR was reviewed and merged
- Update Mainnet Beta Launch dev blog post #1113: The PR has been reviewed and merged
- TW review of mithril-aggregator.md #1117: the PR is ready to be reviewed and will be merged shortly
-
Additionally, we have created the following issues:
-
Today we have worked on the following PRs:
- Upgrade Cardano node to 8.1.2 #1092: the PR has been reviewed and merged and closes the issue Upgrade Cardano node to 8.1.2 #1090
- Common protocol key type for serialization of Stm types #1108: we paired and merged this PR
- Factorize hardcoded keys #1109: we paired on this PR which is ready to be reviewed
- Download last snapshot if latest is mentioned as digest in Snapshot download command #1110: we paired on this PR which is still in draft
-
We have created an issue related to a minor bug of the explorer The release-mainnet network does not show up in the explorer #1111
-
We have also noticed soem flakiness in the CI end to end tests. We will investigate further next week
-
Additionally, We have also discussed about a new feature that would allow warm-up of the cache used by the signers to compute the hash of the immutable files. This could happen during the 2 epochs period during which the signer is not eligible yet to sign
-
We have also checked that no KES keys needed to be rotated on the test SPOs that we run on the test networks
-
Today, we have mainly paired on the issue Refactor (de)serialization of crypto entities #668 during 2 separate sessions:
- We have added the new
ProtocolSingleSignature
implementation and replaced theHexEncode
type where needed - We have refactored the
types
module in thecrypto_helper
module of themithril-common
crate - We have started implementing a type factorization for elegantly wrapping the STM native types into new generic
ProtocolKey<T>
types. This will avoid a lot of boilerplate code and a good framework for refactoring all the other types of this refactoring - The PR single signature #1107 has been reviewed and merged
- We will keep working on this ticket next week
- We have added the new
-
We have also worked on these issues:
- Enhance Run a Mithril Signer node (SPO) guide #1055: the PR Enhance Run a Mithril Signer as an SPO guide #1071 has been reviewed and merged
-
Simplify logs on the Signer/Aggregator #1106: the issue has been created and labelled with a new
UX/DevX
label
-
Finally, we have prepared the sprint planning for the next iteration
-
Today we have worked on the following PRs:
- fix verification key (de)serialization #1088: the PR was reviewed and merged, and fixed a critical bug
- Aggregator Stress Test #1062: we paired on this PR and made good progress. We are now able to handle seamlessly 1000 signer registration in seconds. We'll keep
- TW review #1087: the PR was reviewed and merged
- Update Mainnet Beta Launch dev blog post #1084: the PR was reviewed and merged
- Enhance Mithril relay configuration #1089: the PR was reviewed and merged
- Remove legacy store adapters & fix prune of stake pool & epoch settings #1076: the PR was reviewed and merged
- Add sign sub-command in aggregator genesis command #1082: the PR was reviewed and merged
- Update dependencies #1093: the PR was reviewed and merged
- Enhance Run a Mithril Signer as an SPO guide #1071: the PR has been reviewed and is almost ready to be merged
- Upgrade Cardano node to 8.1.2 #1092: the PR has been reviewed and ready to be merged
-
We have also created the following issues:
- Upgrade Cardano node to 8.1.2 #1090
- Post deployment mainnet infrastructure #1091
- Make Multi Signer stateless in Aggregator #1094
- Provide progress information with --json option in Client #1095
- Expose Prometheus metrics for Mithril Signer/Relay/Aggregator #1096
- Create explorer page with registered signers #1097
- Design Signer Retirement mechanism #1098
- Document complete footprint of signer #1099
- Implement a resume download mechanism for client #1100
- Add a rollback workflow in CI for testing-preview #1101
- Get rid of unwrap/panic in database providers in aggregator #1102
- Add a non 404 status code on the aggregator endpoint #1103
- Resolve flaky test in the stm library on the CI #3853 #1104
-
Today, we have created the genesis certificate for the
release-mainnet
network 🥳 💪. We expect the first certificates to be produced at the end of the week -
We have closed the following issues:
-
And we have created the following issues:
-
Aggregator panics with new (de)serialization of ProtocolVerificationKey #1083: a critical bug that prevented
testing-preview
aggregator from working - Create Production Infrastructure Runbook #1085
-
Aggregator panics with new (de)serialization of ProtocolVerificationKey #1083: a critical bug that prevented
-
Additionally, we have worked on the following PRs:
- Aggregator Stress Test #1062: we paired on this PR and fixed the problem that prevented the load tester to work for more than 50 signers. We have optimized and refactored the code to have a cleaner bootstrap sequence. Also we need to fix a bug that blocks signature registrations when more than 256 signers are used. We will keep working on it tomorrow
- Enhance Run a Mithril Signer as an SPO guide #1071: the PR is pending review
- Remove legacy store adapters & fix prune of stake pool & epoch settings #1076: the PR is ready to be merged
- Add sign sub-command in aggregator genesis command #1082: the PR is ready to be merged
- Update Mainnet Beta Launch dev blog post #1084: the PR is ready to be merged
- Add network production runbooks for Aggregator #1086: a draft PR with the runbook written for creating the genesis certificate in production
- TW review #1087: the PR is ready to be merged
-
fix verification key (de)serialization #1088: the PR that should fix the crashing aggregator on
testing-preview
. Once this is merged, we will be able to merge all the other pending PRs - Enhance Mithril relay configuration #1089: the PR is ready to be reviewed
- Today we have worked on the following PRs:
- Aggregator Stress Test #1062: we have paired on this PR during the team session and we have completed 2 new steps in the stress test scenario
-
Ensemble/668/refacto crypto entities #1075: we have reviewed and merged the PR. Unfortunately, it created panics on the
testing-preview
which is now down. We try to fix the problem in order to avoid a regenesis of the network 🔥 - Bundle openssl with released binaries #1079: the PR was reviewed and merged, and attempts to fix the bug issue Shared library error in CI binaries #1073. We will check with some SPO to confirm that the problem is fixed on their end
- Remove legacy store adapters & fix prune of stake pool & epoch settings #1076: the PR was reviewed and will be merged shortly
- Add sign sub-command in aggregator genesis command #1082: the PR is pending approval and will be merged shortly
- nix: improve caching strategy to share deps among artifacts. #1069: the PR was reviewed and merged
- Enhance Run a Mithril Signer as an SPO guide #1071: the PR is still in draft and we will keep working on it
- Today, we have officially launched the Mithril Protocol’s Mainnet Beta 💪 🎉. The aggregator of the
release-mainnet
network is up and running and runs the newly releasedd2329.0
distribution. The first step is to get signer registrations before we can genesis its certificate chain. This is likely to occur as early next week. We have defined an expected timeline for the network to start producing certificates (as explained in this dev blog post):
-
We have talked about some scenario that could happen on the
mainnet
, such as having signers registered but not signing 2 epochs later. Depending on the protocol parameters and their shares in the total stakes registered, this could prevent the network to sign properly (specially when the number of signers registered is low). We all agreed that this must be considered as an edge case that is part of the risk of running the protocol on themainnet
.However, if this occurs, we will probably have to re-genesis the chain and/or update protocol parameters. This lead us to decide that we will work on the redaction of specific maintenance procedure that will be compiled in a Runbook. Also, we will work on designing a mechanism that facilitates the retirement of a signer from the network in a fashion close to what is done on the Cardano network -
Some SPO have reported a bug for which the issue Shared library error in CI binaries #1073 has been created. It appears that the problem can be easily fixed by embedding the openssl in the binary builds (with a configuration in the
Cargo.toml
). We will implement this fix and probably create a fix for the2329
distribution -
Additionally, we have worked on the following PRs:
- refacto crypto entities #1075: pairing on the PR that needs to be reviewed before being merged
- Remove legacy store adapters & fix prune of stake pool & epoch settings #1076: the PR was created and will be reviewed shortly
- Add release-mainnet configuration in documentation and explorer #1065: the PR was reviewed and merged
- Update current documentation #1072: the PR was reviewed and merged
- Add dev blog post for mainnet Beta launch #1074: the PR was reviewed and merged
-
Finally, we have verified if the KES keys of the SPOs of the Mithril networks should be rotated: this was not needed this week
-
Today we have paired on the following issues:
- Design & implement basic stress test tool for aggregator #991: we have made good progress and are now able to register signatures from simulated signers in the scenario implementation. We have noticed few problems with the number of signers (generation of the crypto materials) and with the handling of the signer registration that currently works only with a low runtime update frequency. We will keep working on this issue shortly
-
Refactor (de)serialization of crypto entities #668: we also have made good progress and are close to having a first running version of the PoC we are working on with the
ProtocolVerificationKey
type. We will keep working on it shortly
-
We have also worked on the following PRs:
- Fix crates versions not shown in release notes #1070: reviewed and merged
- Minor editing tweaks to 'Welcome' #1068: reviewed and merged
- Tech writing review #1067: reviewed and merged
- nix: improve caching strategy to share deps among artifacts. #1069: reviewed and merged
- Enhance Run a Mithril Signer as an SPO guide #1071: draft PR was created
-
Finally, we have monitored the
2329.0-pre
pre-release which is working as expected. The multi platform client test has been launched and was successful. We should be able to release it and open the betamainnet
network tomorrow 💪
-
Today, we have made two pairing sessions on the issue Refactor (de)serialization of crypto entities #668. We have tried 2 different approache:
- Using a custom
serde
attributewith
to use a specific for serializing aProtocolVerificationKey
asverification_key
instead of its serialized string version - And another that wraps the native STM
StmVerificationKeyPoP
in theProtocolVerificationKey
type that would be more than just an alias - Both approaches have advantages and drawbacks: we will keep working in an exploratory mode to find the optimal approach that will be then implemented on the other concerned types
- We have pushed our work on this ensemble/668/refacto_crypto_entities branch
- Using a custom
-
We have also created the pre-release for the new distribution
2329.0-pre
. It has been successfully deployed on thepre-release-preview
network. This is also the release candidate for the first Mithril distribution that runs on Cardanomainnet
that is scheduled to be launched in beta by end of week -
Finally, we have worked on the following PRs:
- Add mainnet verification keys & address in infrastructure #1063: the PR was reviewed and merged
- Add release-mainnet deployment to CD #1066: the PR was reviewed and merged
- Tech writing review #1064: the PR was reviewed and merged
-
Today, we have groomed the issue Refactor (de)serialization of crypto entities #668. We have decided to split it in 3 steps:
- Step 1: PoC on
ProtocolVerificationKey
type withJsonHex
(de)serialization only - Step 2: PoC on
ProtocolVerificationKey
type withJsonHex
andCborHex
(de)serializations (if it does not introduce too many complications) - Step 3: Apply new (de)serialization to all other crypto types
- Step 1: PoC on
-
We have also paired on the issue Design & implement basic stress test tool for aggregator #991:
- Finalized step 1: with the dynamic creation of a valid stake distribution, and used it in the cardano cli mock
- Finalized step 4: with the successful signer registration of
100
signers 💪 - Finalized step 5: with controlling the epoch from the mock cardano cli
- We have updated the draft PR Aggregator Stress Test #1062
- We will keep pairing on this issue in the following days
-
We have also worked on the followign PRs:
- Tech writing review #1061: the PR has been reviewed and merged, and the onboarding guide for SPO has been aligned with Cardano docs standards
- Add mainnet verification keys & address in infrastructure #1063: the PR is ready for review
- Add mainnet configuration in documentation #1065: the draft PR has been created and will be ready for review shortly
-
We have spent most of the day pairing on the issue Design & implement basic stress test tool for aggregator#991:
- We have consolidated the foundations of the stress tester in a separated binary directory
- We have implemented custom arguments (with working default values)
- The scenario execution is now cleaner and displays logs and loaders during execution
- We have worked on a general wait function for calls on aggregator REST API as it a recurrent need in the scenario
- We have discussed about how to compute the stake distribution for the generated signers: we have agreed that during the signer key registration preparation step, we will also generate the associated stake distribution in the expected JSON format. This stake distribution will be used as is by the mock cardano cli
- We have created the draft PR Aggregator Stress Test #1062
-
We have also worked on:
- Fixing new clippy warnings with the release of Rust
1.71.0
with the PR Upgrade Rust 1.71.0 #1060 which has been closed and merged - Preparing the
mainnet
infrastructure in the new GCP project. We will resume once we have enough rights to givemandatory roles to the service account
- Fixing new clippy warnings with the release of Rust
-
Today we have mostly paired on the issue Design & implement basic stress test tool for aggregator#991:
- We have fixed some problems when trying to run the load tester on devs computers
- We have groomed the issue after the first exploratory phase, and we have defined the final expectations for the first version of the stress test
- We will resume implementing the tool next week
-
We have also worked on the following PRs:
- Aggregator refactoring: services and dependencies container #1057: the PR has been reviewed and merged, this closes the issue Refactor aggregator dependency injection and services #1058
- Add run-only option in mithril-end-to-end test #1052: the PR has been reviwed and merged. This closes the issue Add a run-only option in end to end test #1048
-
Add min libc version to distribution release note #1056: the PR has been reviewed and merged, and it adds a clear mention of the supported
glibc
versions in the release notes in GitHub
-
Today, we have worked on these PRs:
- Add monitoring loki endpoint #1046: the PR has been closed and the loki endpoint has been added to the Grafan instance
- CI: Build linux binaries using ubuntu 20-04 and add vulnerabilities check #1043: the PR has been merged and this closes the issues Build static binaries in CI #874, Check vulnerabilities in CI #1037, SQLite compatibility in aggregator #837 and should also close the bug Debian package does not install cleanly on older ubuntu versions #834 💪
- Factorize crypto operation #1045: the PR has been reviewed and merged. This closes the issue Factorize protocol crypto operations #669
- Add SPO On-boarding Guide #1051: the PR has been reviewed and merged. The associated issue Prepare SPO on-boarding guide #1049 is now closed
- Add run-only option in mithril-end-to-end test #1052:we paired on this PR that will be merged shortly
-
We have also created the issue Enhance 'Run a Mithril Signer node (SPO)' guide #1055 in order to enhance the documentation of the setup of a signer node: we received feedback from some SPOs who were having troubles understanding the steps to accomplish with the setup
-
We have worked on the following PRs:
- fix flaky end-to-end tests #1050: the PR has been reviewed and merged and fixes the bug issue E2E tests are flaky in CI #1023 💪
- Add created_at field in Mithril Stake Distribution messages #1047: the PR has been reviewed and merged. It closes the issue Add created_at in Mithril Stake Distribution messages #1030
- CI: Build linux binaries using ubuntu 20-04 and add vulnerabilities check #1043: the PR has been reviewed and validated. It will be merged tomorrow
- Add monitoring loki endpoint #1046: the PR has been reviewed and is ready to be merged
- Factorize crypto operation #1045: the PR needs final review and will be merged shortly
- Add SPO On-boarding Guide #1051: the PR needs some fixes and will be ready to be merged tomorrow
-
The following issues have been created:
-
We have worked on the following PRs:
- check epoch when validating certificate chain #1033: the PR has been reviewed and merged. This closes the issue Aggregator does not detect certificate chain epoch gap #952
- Update Signer Deployment Models Firewall documentation #1042: the PR has been reviewed and merged. It closes the issues Add instructions to set firewall using iptables #1040 and Update ufw command to set firewall on Mithril Signer installation instructions #1041
- Add monitoring persistent storage #1039: the PR has been reviewed and merged, and it adds persistent storage for monitoring data
- Add monitoring loki endpoint #1046: a draft PR has been created in order to expose an external endpoint for gathering logs in Grafana
- CI: Build linux binaries using ubuntu 20-04 and add vulnerabilities check: this PR has been drafted and is related to the issues Build static binaries in CI #874 and Check vulnerabilities in CI #1037
-
We have also paired on the issue Factorize protocol crypto operations #669: we have created the PR Factorize crypto operation #1045 that will be reviewed and merged shortly 💪
-
We have worked on the following PRs:
- Fix QA issues #1034: reviewed and merged the PR. It closes the newly created issue Q&A followup fixes #1035
- Update dependencies #1036: reviewed and merged the PR. It is an attempt to fix some vulnerabilities that were triggered in GitHub dependabot alert. We have also created a new issue Check vulnerabilities in CI #1037 that will help us know what vulnerabilities are fixed inside a PR
- check epoch when validating certificate chain #1033: we have reviewed the PR which is almost ready to be merged (will be after fiew typos are fixed)
-
We have also team paired on the following issues:
- Factorize protocol crypto operations #669: we have almost finished implementing the single signer builder, after we completed tests on the multi signer builder. We have scheduled a last pairing session early next week
- Design & implement basic stress test tool for aggregator #991: we have completed a first load test on the signer registration with more than 100 signers. We will conitnue working on this PoC shortly
-
Finally, we have released the new
2327.0
(https://github.com/input-output-hk/mithril/releases/edit/2327.0) release 🎉, and we have updated the current version of the documentation with the PR Update current documentation #1038 which has been merged
-
We have worked on the following PRs:
- Fix documentation #1032: this PR has been reviewed and merged, and it fixes some mistakes in the documentation (especially a configuration error of the new Mithril relay that was reported by a SPO)
- Fix failing end to end test in Hydra CI #1031: this PR fixes a test that consistently failed only on the nix CI. It has been reviewed and merged
- Remove certificate hash from Artifact #1027: this PR has been reviewed and merged, it closes the issue Remove certificate hash from Artifact #932
-
We have kept working on the issues:
- Factorize protocol crypto operations #669: we paired on the issue, a PR will be available shortly (commits have been published on the branch https://github.com/input-output-hk/mithril/tree/ensemble/669/factorize-crypto-operation)
- Aggregator does not detect certificate chain epoch gap #952: a PR will be created shortly
- Design & implement basic stress test tool for aggregator #991: we paired on this issue and we will keep pairing tomorrow. We are still in an exploratory mode. We have committed on the branch https://github.com/input-output-hk/mithril/tree/ensemble/991-stress-test-aggregator
-
Additionally, we have monitored the pre-release of the distribution
2327.0-pre
: everything looks good, we will keep monitoring tomorrow and expect the release to occur by end of week) -
Finally, we have created the issue Add created_at in Mithril Stake Distribution messages #1030
-
We have worked on the following PRs:
- Add infrastructure monitoring #1026: reviewed and merged the PR, which closes the issue Add infrastructure monitoring #987
- Signer verification key discrepancy #1028: reviewed and merged the PR, which closes the bug issue testing-preview network does not create certificates #1015. We will keep monitoring that the problem does not occur again
- nix: increase cargo verbosity to avoid hitting max-silent-time #1029: reviewed and merged the PR that should fix the timeouts on some hydra ci builds when Rust compilation takes longer than usual
- Remove certificate hash from Artifact #1027: we have reviewed and worked on this PR. It should be merged shortly
-
We have also kept working on the issues:
- Factorize protocol crypto operations #669: we have continued pairing on the issue. We will continue shortly and create a PR shortly
- Aggregator does not detect certificate chain epoch gap #952: a PR will be created shortly
-
We have also created the new distribution pre-release
2327.0-pre
that we expect to release by end of week
- We have worked on the following issues:
- testing-preview network does not create certificates #1015: after investigation, it appears that this problem that occurs sporadically is due to the current implementation of the verification key storer. We are working on a fix and a PR should be created tomorrow
- Add infrastructure monitoring #987: the prometheus endpoint is now able to scrape metrics from Cardano nodes. We are currently implementing logs gathering with promtail and loki. The draft PR has been updated and it should be ready to be reviewed tomorrow
- Remove certificate hash from Artifact #932: a PR has been created, but we need to do some refactoring on the message adapters to avoid using Serialize/DeSerialize traits when it is not mandatory. It should be ready for review tomorrow
-
Deploy mainnet infrastructure #988: we have started to prepare the new production project on GCP for the
mainnet
aggregator - We have also started preparing the next distribution: we have made a test on a dev network to make sure that the re-computation of the hashes of the certificate chain is working properly on real networks data. This is the case: this will avoid to re-genesis the certificate chain. We will continue preparing the distribution tomorrow